modelos de ciclo de vida puc-minas. bibliografia paula-filho, wilson de pádua. engenharia de...
TRANSCRIPT
Modelos de Ciclo de Vida
PUC-Minas
Bibliografia PAULA-FILHO, Wilson de Pádua.
Engenharia de software: fundamentos, métodos e padrões. 2ª. ed., Rio de Janeiro: LTC - Livros Técnicos e Científicos, c2003, capítulo 2.
Transparências do professor Wilson de Pádua Paula Filho, autor do livro Engenharia de software: fundamentos, métodos e padrões.
Ciclo de Vida Conjunto da história de um software;
desde a percepção de sua necessidade; até sua retirada de operação.
Determina o caráter temporal do software; começando antes de seu projeto de
desenvolvimento; e terminando após o esgotamento de
seu uso.
Ciclo de Vida
Especificação(???)
Produto
Codifica-Remenda Também conhecido como build-and-fix.
Codifica-Remenda
Provavelmente o mais usado; não exige sofisticação técnica
ou gerencial; alto risco; impossível de gerir; não permite assumir
compromissos confiáveis.
Em Cascata
Requisitos
Análise
Desenho
Implementação
Testes
Em Cascata
Subprocessos executados em estrita seqüência: pontos de controle bem definidos;
facilitam gestão. Teoricamente, confiável e
utilizável; em projetos de qualquer escala.
Interpretado literalmente: é rígido e burocrático.
Em Cascata Exige requisitos “congelados”. Exige perfeccionismo na
execução dos subprocessos; não são permitidos erros.
Baixa visibilidade para o cliente; que só recebe o resultado final
do projeto.
Em Cascata com Realimentação
Requisitos
Análise
Desenho
Implementação
Testes
Em Cascata com Realimentação Expansão do modelo em cascata;
considerando que, na prática, é sempre necessário permitir que, em subprocessos posteriores;
haja revisão e alteração dos subprocessos anteriores.
Subprocessos executados em seqüência: permitindo que o material de um
subprocesso anterior seja revisto ou alterado.
Pontos de controle bem definidos; facilitam a gestão.
Em EspiralAnálise dos Riscos
Ativação
Desenvolvimento
Planejamento da Próxima Iteração
Avaliação
Em Espiral
O produto é desenvolvido em iterações.
Cada nova iteração corresponde a uma volta na espiral.
Os problemas identificados em uma iteração; são utilizados para alimentar a
próxima.
Em Espiral Permite construir produtos em prazos
curtos. Novas características são adicionadas
à medida que o problema é entendido; favorecendo para que as verdadeiras
necessidades apareçam. É um modelo complexo;
requer gestão sofisticada para ser previsível e confiável.
Requer desenho robusto; para evitar que a estrutura do produto se
degrade.
Prototipagem Evolutiva
Planejamentoda Iteração
Análise
Desenho
ImplementaçãoTestes
Requisitos
Avaliação daIteração
ProjetoTerminado
Novaiteração
Prototipagem Evolutiva Ao invés de desenvolver o produto
completo, desenvolve-se versões provisórias; chamadas de protótipos.
Os protótipos cobrem cada vez mais requisitos; até atingir o produto desejado.
Funciona bem: em projetos com alta volatilidade de
requisitos; em projetos onde o cliente é relutante
em se comprometer com os requisitos.
Prototipagem Evolutiva Permite que requisitos sejam
definidos progressivamente; evitando a construção com requisitos
mal-levantados. Alta flexibilidade e visibilidade para
os clientes. Não se é possível saber de antemão
quando um produto aceitável estará pronto.
Requer gestão sofisticada para ser previsível e confiável.
Entrega Evolutiva
Desenhodetalhado
Testes
Implementação
Avaliação daIteração
ProjetoTerminado
Novaiteração
Requisitos
Análise
Arquitetura
Entrega Evolutiva Em pontos bem definidos;
usuários podem avaliar partes do produto; fornecendo realimentação quanto às
decisões tomadas. Funciona bem em projetos em que o
núcleo de requisitos não varia a partir do feedback do usuário.
Facilita o acompanhamento dos projetos; por parte de gerentes e de clientes.
Entrega Evolutiva
A arquitetura do sistema é chave: deve ser robusta; deve permanecer íntegra;
ao longo das liberações.
Entrega Evolutiva
Diferença para o ciclo de vida prototipagem evolutiva: prototipagem evolutiva enfatiza
aspectos visuais do sistema; entrega evolutiva enfatiza as
funcionalidades centrais do sistema que são improváveis de serem alteradas pelo feedback do usuário.
Modelos de Ciclo de Vida Importante:
como diversos conceitos da Engenharia de Software, a terminologia entre diversos autores é conflitante.
O importante é entender os conceitos.