Introdução a Engenharia de Software

Olá pessoal me chamo Lucas Oliveira, estou iniciando uma sequência de artigos sobre Engenharia de Software.

A ideia é fazer mais com menos como manda a Engenharia de Software, ou seja, tentar simplificar o máximo os conceitos que estão ao redor da Engenharia de Software, espero verdadeiramente que este conteúdo possa ajudá-lo de alguma forma.

O que é Engenharia de Software?

É uma área da computação voltada para à especificação, desenvolvimento, manutenção e criação de sistemas de software, com a aplicação de tecnologias e práticas de gerencia de projetos e outras disciplinas, visando organização e produtividade.

Objetivo da Engenharia de Software?

Buscar na engenharia as bases ou formas de como construir o software, ou seja, busca a resolução de problemas práticos e soluções que sejam economicamente viáveis.

O que se estuda na Engenharia de Software?

Os fundamentos para a engenharia de software envolvem o uso de modelos abstratos e precisos que permitem ao engenheiro especificar, projetar, implementar e manter sistemas de software, avaliando e garantindo suas qualidades.

Linguagens de Programação:

  • C++;
  • PHP;
  • Python;
  • JavaScript;
  • Java;
  • Delphi.

Banco de Dados:

  • MySQL;
  • SQLite;
  • Oracle;
  • MariaDB;
  • PostgreSQL.

Ferramentas CASE:

  • Azure DevOps;
  • GitHub;
  • StartUML;
  • Eclipse;
  • Microsoft Word;
  • Astah Community.

Plataformas:

  • Uma arquiteturas de Hardware (SmartTV, SmartPhones, SmartWatchs e Computadores convencionais)
  • Um Sistema Operacional (Windows, Linux e IOS)

Bibliotecas:

É uma coleção de subprogramas que auxilia no desenvolvimento do software. São partes prontas que podem ser integrada em um sistema.

Exemplo de biblioteca:

  • Meios de pagamentos;
  • Serviços de redes sociais.

Padrões:

  • Organizacionais;
  • Desenvolvimento (MVC, MVVC, SOAP e REST);
  • Projetos (PMBOCK, PX, Kanban e Scrum).

Modelos de Processos:

  • Cascata;
  • Espiral;
  • RAD;
  • CMMI.

Qualidade de Software:

Tem o objetivo de garantir a qualidade do software através da definição e normalização de processos de desenvolvimento.