introdução à engenharia de software wolley w. silva [email protected]
TRANSCRIPT
![Page 2: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/2.jpg)
Objetivo
• Entender o que é Engenharia de Software e qual a sua importância;
![Page 3: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/3.jpg)
Os Softwares então em todos os lugares!
![Page 4: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/4.jpg)
Introdução : O que é um software?
• Instruções (programa de computador) que, quando executadas, fornecem características, funções e desempenho desejados;
• Estruturas de dados que possibilitam aos programas manipular informações adequadamente;
• E informações que descrevem a operação e uso dos programas;
![Page 5: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/5.jpg)
Introdução: A crise do Software
• O termo “crise do software” vem sendo usado na indústria de software desde 1968, quando pela primeira vez se reconheceu as dificuldades no setor.– Projetos com orçamento estourado;– Projetos entregues fora do prazo;– Software com baixa qualidade;– Software que não atingem os requisitos;– Projetos ingerenciaveis e difícil de manter;
![Page 6: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/6.jpg)
Introdução : A natureza do software
1. Software é desenvolvido ou passa por um processo de engenharia; não é fabricado no sentido clássico;
2. Software não “se desgasta”, mas se deteriora; 3. A maioria dos software são construídos de
forma personalidade (sob encomenda);
Pressman, 2011
![Page 7: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/7.jpg)
Introdução : A natureza do software
1. Software é desenvolvido ou passa por um processo de engenharia; não é fabricado no sentido clássico;
Produção em Serie,Atividade repetitiva
Não se faz duas vezes o mesmo software,Paga-se pela engenharia.
![Page 8: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/8.jpg)
Introdução : A natureza do software
2. Software não “se desgasta”, mas se deteriora;
Hardware com o tempo Se desgasta fisicamente Com o tempo deixa de atender as
necessidadesDo usuário
![Page 9: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/9.jpg)
Introdução : A natureza do software
3. A maioria dos software são construídos de forma personalidade (sob encomenda);
![Page 10: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/10.jpg)
Engenharia de Software
• Sommerville, 2011– É uma disciplina de engenharia cujo foco está em
todos os aspectos da produção de software, desde os estágios iniciais da especificação do sistema até sua manutenção, quando o sistema já está sendo utilizado.
![Page 11: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/11.jpg)
Engenharia de Software
Camadas da engenharia de software. Pressman, 2011
![Page 12: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/12.jpg)
Processo
• Define uma metodologia que deve ser estabelecida para a entrega efetiva de um produto de software;
• A base para o controle do gerenciamento de projetos;
• Define os artefatos a serem produzidos: modelos, documentação, relatórios, etc...
![Page 13: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/13.jpg)
Processo
• Processo evolucionário• Processo incremental• Processo espiral
Processo cascata
![Page 14: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/14.jpg)
Métodos
• Os métodos envolvem uma ampla gama de tarefas, que incluem: – Comunicação,– Análise de requisitos,– Modelagem de projeto,– Construção de programa,– Testes – Suporte
![Page 15: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/15.jpg)
Métodos
• Método Estruturado• Método Orientado a Objetos• Métodos Ágeis– Scrum– XP
![Page 16: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/16.jpg)
Ferramentas
• Fornecem suporte automatizado ou semiautomatizado para o processo e para os métodos.– Ambientes de Modelagem – Ambientes de Programação – IDEs (Integrated
Development Environment)
![Page 17: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/17.jpg)
Qualidade de Software
• O software que satisfaz os requisitos solicitados pelo usuário.
• Deve ser fácil de manter, ter boa performance, ser confiável e fácil de usar.
![Page 18: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/18.jpg)
Aplicações da Engenharia
• Não existe técnicas e métodos universais na engenharia de software adequados a todos os ambientes e todas as empresas.
• Existem muitos tipos diferentes de aplicações.
![Page 19: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/19.jpg)
Aplicações da Engenharia
• Aplicações stand-alone– Executadas em computador local. Ex. Pacote Office.
• Aplicações Web– Múltiplos usuários. Ex. Internet Banking
• Aplicações de controle embarcados– Controle de dispositivos de hardware. Ex. microcontroladores
• Sistemas de processamento em Lote– Processam grande quantidade de dados. Ex. Sistemas de
cobrança e de pagamentos.• Entre outros....
![Page 20: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/20.jpg)
Fundamentos da Engenharia de Software
• Apesar de diferentes aplicações, existem fundamentos que se aplicam a todos os tipos de sistemas de software.
![Page 21: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/21.jpg)
Fundamentos da Engenharia de Software
• Desenvolvidos em um processo gerenciado e compreendido.– Ter ideia clara do que será produzido e quando estará finalizado.
• Confiança e desempenho.– Se comportar conforme o esperado, sem falhas e estar disponível.
• Gerenciar a especificação e os requisitos (o que o software deve fazer).– Saber o que os clientes e usuários esperam e gerenciar suas
expectativas.• Possibilitar o reuso.
– Reutilizar o sistema já desenvolvido, em vez de escrever um novo
![Page 22: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br](https://reader036.vdocuments.mx/reader036/viewer/2022062700/552fc15f497959413d8e8019/html5/thumbnails/22.jpg)
Conclusão
• A engenharia de software engloba processos, métodos e ferramentas que possibilitam a construção de um sistema complexo dentro do prazo e com qualidade.