de Software
Material produzido com base em SOMMERVILLE (2007), com contribuies de Pressman (2011).
Processo de Software
Abordagem de Pressman
Modelo Cascata
Definio de
requisitos
Projeto de sistemas
e de software
Implementao e
teste de unidades
Integrao e
teste de sistemas
Operao e
manuteno
Abordagem de Sommerville
Fases do Modelo Cascata
1. Anlise e definio de requisitos
(especificao de requisitos)
As funes, as restries e os
objetivos do sistema so estabelecidos
por meio da consulta aos usurios do
sistema
Em seguida, so definidos em detalhes e
servem como uma especificao do sistema
Abordagem de Sommerville
Fases do Modelo Cascata
2. Projeto de sistemas e de software
Agrupa os requisitos em sistemas de hardware ou de
software
Estabelece uma arquitetura do sistema geral
Abordagem de Sommerville
Fases do Modelo Cascata
5. Operao e Manuteno
Abordagem de Sommerville
Modelo Cascata
Verso
Especificao inicial
Verses
Descrio
Desenvolvimento intermedirias
do esboo
Verso
Validao final
Modelo Evolucionrio
Vantagens:
* A abordagem evolucionria do desenvolvimento de
software, muitas vezes, mais eficaz do que a
abordagem em cascata, no sentido de produzir
sistemas que atendam s necessidades imediatas dos
clientes
Problemas:
* Como os softwares so desenvolvidos
rapidamente, no vivel produzir documentos
que reflitam cada verso do sistema
* Os softwares frequentemente so mal
estruturados a mudana constante tende a
corromper a estrutura do software
* Incorporar modificaes torna-se cada vez mais
difcil e oneroso
Engenharia de Software Baseada
em Componentes
Especificao de Requisitos
comparvel com outros processos, como por
exemplo, o modelo cascata
Vantagens
Reduz a quantidade de software a ser
desenvolvida, reduzindo custos e
riscos
Geralmente propicia a entrega mais
rpida do software
Engenharia de Software Baseada
em Componentes
Problemas
As adequaes nos requisitos so
inevitveis, e isso pode resultar em um
software que no atenda s reais
necessidades dos usurios
O controle sobre a evoluo do software se
perde, uma vez que novas verses dos
componentes reutilizveis no esto sob o
controle da organizao que utiliza esses
componentes
Processos Iterativos
Desenvolvimento Incremental
Desenvolvimento em Espiral
Processos Iterativos
Incremental vs. Espiral uma metfora
Incremental
Espiral
Modelo Incremental
Proposta de Pressman
Modelo Incremental
Outro ponto de vista: http://blog.anascimento.net/category/gerenciamento
Proposta de Pressman
Modelo Incremental
Proposta de Pressman
Desenvolvimento Incremental
Validar
Sistema incompleto Sistema
Final
Desenvolvimento Incremental
Vantagens
Problemas
Os incrementos devem ser relativamente
pequenos, e cada incremento deve produzir
alguma funcionalidade para o software
Pode, portanto, ser difcil mapear os
requisitos dos usurios dentro de
incrementos de tamanho correto
Desenvolvimento Incremental
1. Definio de objetivos
So definidos os objetivos
especficos para essa fase do
projeto
So identificados os riscos
do projeto e, dependendo dos
riscos podero ser planejadas
estratgias alternativas
Desenvolvimento em Espiral
Avaliao e reduo
de riscos
Desenvolvimento em Espiral
3. Desenvolvimento e validao
Depois da avaliao dos riscos,
escolhido um modelo de desenvolvimento
para o software
Por exemplo, se forem dominantes os
riscos relacionados interface com o
usurio, pode ser utilizado o modelo de
desenvolvimento evolucionrio
(prototipao)
Desenvolvimento em Espiral
Desenvolvimento
e
validao
Desenvolvimento em Espiral
4. Planejamento
O projeto revisto e tomada a deciso
sobre continuar com o prximo loop da
espiral
Se a deciso for continuar, sero
traados os planos para a prxima fase do
projeto
Desenvolvimento em Espiral
Planejamento
Desenvolvimento em Espiral
Especificao
Projeto
Implementao
Validao
Evoluo
Abordagem de Sommerville
Especificao de Software
Mtodos de Projeto
Projeto estruturado
Projeto orientado a objetos
Projeto e Implementao de
Software
Codificao
Costuma ser individualizada, sem regras e
dependente da criatividade e competncia
pessoal
Teste x Depurao
Teste estabelece a existncia de defeitos
Depurao localiza e corrige esses defeitos
Validao de Software
Processo de teste
1. Teste de unidade componentes individuais
2. Teste de mdulo coleo de componentes
3. Teste de subsistema conjunto de mdulos
integrados
4. Teste de sistema integrao dos
subsistemas
5. Teste de aceitao o software testado
com os dados fornecidos pelo usurio, no
lugar dos testes simulados
Evoluo de Software
Manuteno de software
o processo de modificar o software desenvolvido
depois que o mesmo colocado em operao
pode acontecer motivado por identificao de
erros no software ou por novos requisitos
Sugesto de consulta/leitura:
http://julianakolb.com/category/engenharia-de-
software/sumario-engenharia-de-software/
Vdeos sugeridos
Aula 2 - Engenharia de Software (Processo de
desenvolvimento de software)
-> aulas desenvolvidas por alunos
Parte 01 - www.youtube.com/watch?v=igeU6B5GmIU
Parte 02 - www.youtube.com/watch?v=0fRv6o3aakw