1. Engenharia de Software II
Paradigmas de Engenharia de Software
Prof. César França
FASETE, Engenharia de Software II, 2008.1 Prof. César França
2. Engenharia
• Métodos
• Ferramentas
• Procedimentos
FASETE, Engenharia de Software II, 2008.1 Prof. César França
3. Desenvolvimento Clássico
(Cascata / Waterfall)
FASETE, Engenharia de Software II, 2008.1 Prof. César França
4. Levantamento de
Requisitos
• Análise de requisitos engloba todas as tarefas que lidam com investigação,
definição e escopo de novos sistemas ou alterações. Análise de requisitos
é uma parte importante do processo de projeto de sistemas, na qual o
engenheiro de requisitos e o analista de negócio, juntamente com
engenheiro de sistema ou desenvolvedor de software, identificam as
necessidades ou requisitos de um cliente. Uma vez que os requisitos do
sistema tenha sido identificados, os projetistas de sistemas estarão
preparados para projetar a solução.
• Entrevistas com Stakeholder
• Workshops
• Lista de requisitos: estilo contrato formal
• Objetivos Mensuráveis
• Protótipos
FASETE, Engenharia de Software II, 2008.1 Prof. César França
5. Análise de Requisitos
• Análise de Requisitos é o estudo das características que o
sistema deverá ter para atender às necessidades e
expectativas do cliente.
• É o Entendimento do Problema
• Cada funcionalidade demandada pelo cliente deve ser
analisada para verificar os possíveis impactos no
desenvolvimento das demais funcionalidades do sistema, e
verificado em conjunto com a equipe de desenvolvimento
se as necessidades tecnológicas para a sua implementação
estão disponíveis
FASETE, Engenharia de Software II, 2008.1 Prof. César França
6. Projeto
• É a parte da engenharia de software que se encarrega de
transformar os resultados da Análise de Requerimentos em
um documento ou conjunto de documentos capazes de
serem interpretados diretamente pelo programador.
• Arquitetura de Software
• Design Patterns (Padrões de Projeto)
• Refatoração
FASETE, Engenharia de Software II, 2008.1 Prof. César França
7. Implementação
• Corresponde à codificação, ou tradução dos
requisitos para uma linguagem legível pelas
máquinas.
• Se o projeto for executado detalhadamente, a
codificação pode ser feita mecanicamente, e até
mesmo automatizada.
FASETE, Engenharia de Software II, 2008.1 Prof. César França
8. Testes
• O objetivo, por paradoxal que pareça, é encontrar defeitos
nos produtos, para que estes possam ser corrigidos pela
equipe de programadores, antes da entrega final.
• Testes Caixa-Branca ou Caixa-Preta
• Testes Unitários, de Integração, de Aceitação, de Produção e de Regressão
Processo Simplificado
• Descobrir a existência do bug
• Isolar o código que causa o bug
• Identificar a causa do bug
• Determinar uma correção para o bug
• Aplicar a correção e testar a correção
FASETE, Engenharia de Software II, 2008.1 Prof. César França
9. Implantação
• Passagem do software para a produção.
• Liberação
• Instalação
• Ativação/Desativação
• Risco: Integração com Sistemas Legados!!!
FASETE, Engenharia de Software II, 2008.1 Prof. César França
10. Desenvolvimento Clássico
(Cascata / Waterfall)
FASETE, Engenharia de Software II, 2008.1 Prof. César França
11. Custo da Mudança
Custo
Tempo
FASETE, Engenharia de Software II, 2008.1 Prof. César França
12. Prototipação
• Processo que capacita o desenvolvedor a
criar um modelo do software que será
implementado.
• Storyboarding
• Protótipo em papel
• Mágico de Oz
• Máquina de Cenários
• Prototipagem Rápida
• Prototipagem Evolutiva
FASETE, Engenharia de Software II, 2008.1 Prof. César França
13. Prototipação
• Pontos Positivos
– Requisitos adequados
– Cliente visualiza a construção
• Pontos Negativos
– Difícil manutenção
– Baixo re-uso
– Riscos de projeto
– Cliente achar que o projeto está pronto!
FASETE, Engenharia de Software II, 2008.1 Prof. César França
15. Prototipação
• Pontos Positivos
– Desenvolvimento evolutivo
– Projeto componentizado
• Pontos Negativos
– Custo da mudança
– Refactoring
FASETE, Engenharia de Software II, 2008.1 Prof. César França
16. Modelo Espiral
Requisitos Engenharia
Implementação
Avaliação
FASETE, Engenharia de Software II, 2008.1 Prof. César França
17. Modelo Espiral
• Pontos Positivos
– Desenvolvimento Evolutivo
– Mudança planejada
– Redução de Riscos
• Pontos Negativos
– Difícil adoção dos clientes
– Avaliação de Riscos delicada
– Imprevisão de riscos grandes: mudança cara!
FASETE, Engenharia de Software II, 2008.1 Prof. César França
18. Outros “Paradigmas”
• Linguagens de 4ª Geração
• RAD – Rapid Application Development
FASETE, Engenharia de Software II, 2008.1 Prof. César França
19. Qual o melhor?
• Desenvolvimento Tradicional
• Prototipagem
• Iterativo
• Espiral
• ...
DEPENDE!!!
FASETE, Engenharia de Software II, 2008.1 Prof. César França
20. Disponível em...
http://es2.cesarfranca.com
Prof. César França
FASETE, Engenharia de Software II, 2008.1 Prof. César França