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.