El modelo espiral es un modelo evolutivo de desarrollo de software que combina las características iterativas de los prototipos con las del modelo en cascada. Se caracteriza por un enfoque cíclico que reduce el riesgo a medida que se implementa e incrementa el sistema de forma gradual, y por puntos de fijación para garantizar el compromiso del usuario. El modelo evalúa alternativas, riesgos y aprendizajes después de cada iteración para planificar la siguiente.