Originalmente proposto por Barry Boehm, é um modelo de processo de software evolucionário que acopla a natureza iterativa da prototipação com os aspectos sistemáticos e controlados do modelo cascata. Fornece potencial para o rápido desenvolvimento de versões cada vez mais completas do software. Esta é a definição do modelo de desenvolvimento de software: