ENGENHARIA
DE SOFTWARE

Os softwares auxiliam na eliminação de erros humanos e aumentam a eficácia e a produtividade em vários processos. Estudar engenharia de software capacita você a utilizar as principais teorias, técnicas e ferramentas para a produção e desenvolvimento de softwares.

Engenharia

Software

A ciência, a arte e a profissão de adquirir e de aplicar os conhecimentos matemáticos, técnicos e científicos na criação, aperfeiçoamento e implementação de utilidades.

Conjunto de programas e instruções desenvolvidos para controlar algo! O software diz respeito aos programas que fazem com que o hardware funcione, como os aplicativos sistemas operacionais

"Cada vez mais a sociedade, nós, nos tornamos dependentes dos softwares. Temos de ser capazes de produzir softwares confiáveis de modo rápido e econômico."

"A importância da Engenharia de Software está nas boas práticas que asseguram que o software tenha uma contribuição positiva em nossa vida."

1950-1960
1ª Era
Aplicações científicas e de engenharia

1960-1970
2ª Era
Aplicações comerciais em grande porte (BD)

1970-1980
3ª Era
Aplicativos pessoais em microcomputadores

1980-1990
4ª Era
Aplicativos com Interfaces Gráficas

1990 - 2000
5ª Era
Software Distribuídos, Internet e Intranets

2000 - ???
6ª Era
Computação Móvel e Ubíqua, Manifesto Ágil

Inteligência Artificial?
Chatbot com inteligência artificial.

Computação Espacial?
Integrar os espaços físico e digital a partir de um sistema que atende a comandos de voz, gestos e olhos.

Crise do Software

Período de dificuldades no desenvolvimento de software frente ao rápido crescimento da demanda por softwares, da complexidade dos problemas a serem resolvidos e da inexistência de técnicas estabelecidas para o desenvolvimento de software que funcionassem adequadamente.

Orçamentos elevados e cronogramas longos

Baixa qualidade dos softwares desenvolvidos

Insatisfação de clientes e usuários finais

Softwares difíceis de manter e evoluir (alta complexidade)

O termo Engenharia de Software tornou-se conhecido após uma conferência em 1968, quando as dificuldades e armadilhas de projetar sistemas complexos foram discutidas francamente.

A criação da Engenharia de Software surgiu numa tentativa de contornar a crise do software e dar um tratamento de engenharia (mais sistemático e controlado) ao desenvolvimento de software (complexos ou não).

Infelizmente, muitas organizações ainda enfrentam problemas de imaturidade. Segundo Sommerville (2011), os sintomas de empresas imaturas incluem: processos de software improvisados durante o projeto, falta de rigor no cumprimento dos processos especificados e prazos e orçamentos excedidos devido a estimativas não baseadas em dados reais.

Solução para a crise de software

mudança de paradigma sobre o que é desenvolver software e como deve ser feito; especificação, desenvolvimento, validação e evolução do software.

utilização de técnicas, ferramentas e processos sistematizados para produzir software; treinamento e educação

Facilidade de manutenção, eficiência, confiança e usabilidade

Características de um Bom Software

A norma ISO/IEC 9126 define as seguintes características

usabilidade (é fácil de usar?), confiabilidade (é imune a falhas?), funcionalidade (satisfaz as necessidades?), eficiência (é rápido e "enxuto"?), manutenibilidade (é fácil de modificar?) e portabilidade (é fácil de usar em outro ambiente?).

Os desafios da Engenharia de Software incluem: o desafio da heterogeneidade, o desafio da entrega e o desafio da confiança.

Alguns marcos importantes na Engenharia de Software incluem: o desenvolvimento das várias áreas da ES entre 1980 e 2000, o 1º Simpósio Brasileiro de Engenharia de Software em 1987, a criação da UML em 1997, o manifesto ágil em 2001, o foco em processos ágeis a partir de 2002, a 39ª International Conference on Software Engineering em 2017, e a 15ª edição do CBSoft em 2024.