Engenharia de Software MSc. Cláudia Jovo Gune – 2023 1-Introdução à Engenharia de Software
“Reflexão em torno da aula passada”
Conteúdos 1.2 - Importância da Engenharia de Software; 1.3 - Evolução da Eng. Software; 1.4 - Histórico da Eng. Software.
2 MSc. Cláudia Jovo Gune – 2023 ES Curso de Informática cijovo@gmail.com
Perguntas de Reflexão Pergunta de Reflexão 1: Qual é a importância de compreender os conceitos básicos de software, como categorias, componentes e características, na prática da Engenharia de Software? Como esse conhecimento pode influenciar a qualidade e o sucesso de um projeto de desenvolvimento de software?
Pergunta de Reflexão 2: Ao considerar a abordagem em camadas da Engenharia de Software
(ferramentas, métodos, processos e foco na qualidade), como cada uma dessas camadas contribui para a criação de software de alta qualidade? Como a interação entre essas camadas pode influenciar a eficácia e a eficiência do desenvolvimento de software?
3 MSc. Cláudia Jovo Gune – 2023 ES Curso de Informática cijovo@gmail.com
Perguntas de Reflexão Pergunta de Reflexão 3: Ao explorar as categorias de software, desde os genéricos até os personalizados, como as organizações podem tomar decisões informadas sobre a escolha entre usar um software genérico disponível no mercado ou investir em um software personalizado para atender às necessidades específicas? Quais são os benefícios e desafios associados a cada abordagem?
4 MSc. Cláudia Jovo Gune – 2023 ES Curso de Informática cijovo@gmail.com
1.2 - Importância da Engenharia de Software A Engenharia de Software é importante por uma série de razões que abrangem desde a eficiência na criação de sistemas de software até a garantia de qualidade e confiabilidade desses sistemas. Aqui estão algumas das principais razões pelas quais a Engenharia de Software é considerada tão crucial:
1. Qualidade do Software: A ES define práticas e padrões que garantem a criação
de software de alta qualidade, funcional e confiável. Isso ajuda a evitar erros, bugs e falhas que poderiam afectar negativamente os utilizadores e a reputação da empresa.
5 MSc. Cláudia Jovo Gune – 2023 ES Curso de Informática cijovo@gmail.com
1.2 - Importância da Engenharia de Software (cont…)
2. Economia de Recursos: Ao seguir processos e metodologias bem definidos, a
ES ajuda a otimizar o uso de recursos, reduzindo custos relacionados a retrabalho, correções e manutenção.
3. Atendimento a Requisitos: A Engenharia de Software enfatiza a importância de
definir e compreender os requisitos do software. Isso garante que o software atenda às expectativas dos utilizadores e da organização, evitando mal-entendidos e desvios no desenvolvimento.
6 MSc. Cláudia Jovo Gune – 2023 ES Curso de Informática cijovo@gmail.com
1.2 - Importância da Engenharia de Software (cont…)
4. Controle de Riscos: A abordagem sistemática da ES permite a identificação e
mitigação de riscos durante o desenvolvimento. Isso reduz a probabilidade de problemas graves e ajuda a tomar decisões informadas.
5. Agilidade e Flexibilidade: Metodologias ágeis, que são parte da Engenharia de
Software, permitem adaptação rápida a mudanças nos requisitos e nas demandas do mercado, permitindo que as empresas se mantenham competitivas.
7 MSc. Cláudia Jovo Gune – 2023 ES Curso de Informática cijovo@gmail.com
1.2 - Importância da Engenharia de Software (cont…)
6. Colaboração Eficaz: A Engenharia de Software promove a colaboração entre
equipes de desenvolvimento, permitindo que elas trabalhem de maneira harmoniosa e produtiva.
7. Satisfação do Cliente: Com software bem projectado e funcional, a Engenharia
de Software contribui para a satisfação dos clientes, melhorando a experiência do utilizador e a reputação da empresa.
8 MSc. Cláudia Jovo Gune – 2023 ES Curso de Informática cijovo@gmail.com
1.3 - Evolução da Eng. Software a) Década de 1960 - Primeiros Passos: ❖ A ES começou a ser formalizada como uma disciplina na década de 1960, à medida que os sistemas de software se tornavam mais complexos e desafiadores de gerir. ❖ O termo "Engenharia de Software" foi cunhado por volta de 1968 pela NATO. ❖ Modelos de desenvolvimento em cascata foram introduzidos, representando uma abordagem sequencial e linear para o desenvolvimento de software.
9 MSc. Cláudia Jovo Gune – 2023 ES Curso de Informática cijovo@gmail.com
1.3 - Evolução da Eng. Software (cont..)
b) Década de 1970 - Surgimento de Metodologias:
❖ Surgiram as primeiras metodologias de desenvolvimento de software. ❖ A linguagem de programação C foi criada por Dennis Ritchie, tornando-se uma ferramenta crucial para o desenvolvimento de software.
c) Década de 1980 - Abordagens de Qualidade:
❖ O foco começou a se expandir para a qualidade do software, levando ao desenvolvimento de práticas de ES voltadas para garantia de qualidade. ❖ Surgiram as primeiras metodologias ágeis, como o Extreme Programming (XP), que enfatizava a colaboração e a adaptação contínua. 10 MSc. Cláudia Jovo Gune – 2023 ES Curso de Informática cijovo@gmail.com 1.3 - Evolução da Eng. Software (cont..)
d) Década de 1990 - Paradigmas Orientados a Objectos:
❖ Os paradigmas orientados a objectos ganharam destaque, com linguagens como Java e C++ se tornando populares. ❖ Modelagem UML (Unified Modeling Language) ganhou reconhecimento como uma forma padronizada de representar designs de software. e) Década de 2000 - Crescimento da Agilidade: ❖ As metodologias ágeis, como Scrum e Kanban, ganharam grande aceitação, enfatizando a colaboração, iteração e entrega incremental. ❖ A computação em nuvem e a virtualização trouxeram novas possibilidades para o desenvolvimento e implantação de software. 11 MSc. Cláudia Jovo Gune – 2023 ES Curso de Informática cijovo@gmail.com 1.3 - Evolução da Eng. Software (cont..)
f) Década de 2010 - DevOps e Além:
❖ Surgiu o movimento DevOps, focando na integração e colaboração entre equipes de desenvolvimento e operações. ❖ A inteligência artificial e a aprendizagem de máquina começaram a ser aplicadas no desenvolvimento de software, melhorando a automação e a tomada de decisões.
g) Década de 2020 - Continuidade e Inovação:
❖ A ES continua a se adaptar às mudanças tecnológicas, com foco crescente na automação, segurança cibernética, qualidade de código e entrega contínua. 12 MSc. Cláudia Jovo Gune – 2023 ES Curso de Informática cijovo@gmail.com 1.4 - Histórico da Eng. Software A história da ES irá nos fornecer uma perspectiva retrospectiva dos eventos passados e dos marcos que definiram a disciplina, enquanto a evolução da ES descreveu-nos o processo contínuo de transformação e aprimoramento que a disciplina continua a passar. Ambos os conceitos são importantes para compreender a trajectória e o estado actual da Engenharia de Software.
13 MSc. Cláudia Jovo Gune – 2023 ES Curso de Informática cijovo@gmail.com
1.4 - Histórico da Eng. Software(cont..) i) Década de 1940 - 1950: ❖ Nesta década, surgiram os primeiros computadores electrônicos durante a Segunda Guerra Mundial, impulsionando a necessidade de programação de software. No entanto, a programação era feita directamente em linguagem de máquina, exigindo um conhecimento profundo da arquitectura do computador.
❖ A falta de métodos estruturados levou a códigos extensos e complexos.
14 MSc. Cláudia Jovo Gune – 2023 ES Curso de Informática cijovo@gmail.com
1.4 - Histórico da Eng. Software(cont..) ii) Década de 1960: ❖ Nesta década, com o aumento da complexidade dos sistemas de software, surgiu a necessidade de abordagens mais estruturadas. Foi nesse contexto que o termo "Engenharia de Software" surgiu, destacando a importância de aplicar princípios de engenharia ao desenvolvimento de software.
❖ A programação estruturada, proposta por Edsger Dijkstra, introduziu a ideia de
utilizar estruturas de controle para melhorar a legibilidade e a manutenção do código.
15 MSc. Cláudia Jovo Gune – 2023 ES Curso de Informática cijovo@gmail.com
1.4 - Histórico da Eng. Software(cont..) iii) Década de 1970: ❖ Nesta década, surgiram abordagens mais formais para o desenvolvimento de software. O modelo em cascata, proposto por Winston W. Royce, introduziu a ideia de fases sequenciais de desenvolvimento.
❖ Também foi nessa década que surgiram as metodologias de desenvolvimento
estruturado, que se concentravam na decomposição do sistema em partes menores e gerenciáveis.
16 MSc. Cláudia Jovo Gune – 2023 ES Curso de Informática cijovo@gmail.com
1.4 - Histórico da Eng. Software(cont..) iv) Década de 1980: ❖ Nesta década, a programação orientada a objectos começou a ganhar destaque, com linguagens como C++ e Smalltalk.
❖ Além disso, nessa época, as metodologias ágeis começaram a ser desenvolvidas,
com destaque para o método Scrum, que enfatiza a colaboração, a adaptação e a entrega incremental.
17 MSc. Cláudia Jovo Gune – 2023 ES Curso de Informática cijovo@gmail.com
1.4 - Histórico da Eng. Software(cont..) v) Década de 1990: ❖ Nos anos 90, a UML foi introduzida como uma forma padronizada de representar designs de software.
❖ A computação em rede e a ascensão da internet também trouxeram novos
desafios para o desenvolvimento de software, levando a um foco maior na segurança e na escalabilidade.
18 MSc. Cláudia Jovo Gune – 2023 ES Curso de Informática cijovo@gmail.com
1.4 - Histórico da Eng. Software(cont..) vi) Década de 2000 - Presente: ❖ A partir dos anos 2000, a ES continuou a evoluir com o advento da computação em nuvem, da virtualização e da automação.
❖ A metodologia DevOps emergiu, enfatizando a colaboração entre equipes de
desenvolvimento e operações para melhorar a entrega de software.
❖ A inteligência artificial e a aprendizagem de máquina também começaram a ser
aplicadas no processo de desenvolvimento.
19 MSc. Cláudia Jovo Gune – 2023 ES Curso de Informática cijovo@gmail.com
1.4 - Histórico da Eng. Software(cont..)
Nota: A história da Engenharia de Software reflete a jornada de transformação da
programação manual e desestruturada para as práticas modernas de desenvolvimento de software, incluindo abordagens ágeis, modelagem visual, testes automatizados e a busca constante por melhorias na qualidade e eficiência dos sistemas de software.
20 MSc. Cláudia Jovo Gune – 2023 ES Curso de Informática cijovo@gmail.com