É sabido que não existe uma “bala de prata” para resolver qualquer problema de software, ou seja, uma metodologia, tecnologia ou técnica de gerenciamento única que consiga melhorar a produtividade do desenvolvimento e a confiabilidade de todos os produtos de software, independente da sua aplicação. Entretanto, podemos definir um portfólio de soluções, cujos elementos componentes seriam utilizados e adaptadas de acordo com o problema a ser enfrentado.
Esta observação nos leva à constatação de que não existe um ciclo de vida padrão para o desenvolvimento de sistemas, sendo que a escolha da melhor opção deve ser realizada a partir das características do projeto de software que será implementado.
São cinco os principais modelos de ciclo de vida de desenvolvimento de software:
A seguir veremos em detalhes cada um desses modelos.