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
Codifica-Remenda Também conhecido como build-and-fix. Especificação (???) Produto
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
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
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 Espiral Análise dos Riscos Ativação Avaliaçã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
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
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.