Modelo de Ciclo de Vida de Software
Cascata: Modelo mais antigo e o mais amplamente usado na engenharia de software, modelado em função do ciclo da engenharia convencional. Requer uma abordagem sistemática e seqüencial ao desenvolvimento de software, Adequado em situações nas quais os requisitos são bem entendidos e o gerente do projeto confia na capacidade da equipe de desenvolver utilizando o processo. Como vantagem oferece uma maneira de tornar o processo mais visível e mais detalhado facilitando o planejamento e cada passo serve como uma base aprovada e documentada para o passo seguinte, e como desvantagens, os projetos reais raramente seguem o fluxo seqüencial e os requisitos se alteram durante o projeto, Requisitos devem ser estabelecidos de maneira completa correta e clara no início de um projeto e a aplicação deve ser entendida pelo desenvolvedor desde o início do projeto
Prototipação: O objetivo é entender os requisitos do usuário, possibilita que o desenvolvedor crie um modelo (protótipo) do software que deve ser construído, podendo ser no papel ou executável. Suas vantagens são baseadas na contribuição que os protótipos trazem para melhorar a especificação dos requisitos, e também parte dos protótipos podem ser usadas no desenvolvimento final do sistema, em suas desvantagens aparecem os custos elevados e o atraso para o desenvolvimento, o que torna em muitos casos inviáveis.
Espiral: Modelo de ciclo de vida evolutivo que combina a natureza evolutiva da prototipação ao modelo seqüencial linear. O software é desenvolvido em uma série de versões incrementais, cada vez mais completas, Foi criado visando abranger as melhores características do modelo clássico e da prototipagem, é dividido em quatro fases e essas fases são repetidas varias vezes, são elas: Avaliação do cliente, engenharia, analise de riscos e planejamento. Suas vantagens são: possibilidade de melhorar o sistema a cada interação e diminui a manutenção. E suas desvantagens são: modelo