La Ingeniería de software, se vale y establece de una serie de modelos que establecen y muestran las
distintas etapas y estados por lo que pasa un producto software, desde su concepción inicial, pasando
por su desarrollo, puesta en marcha y posterior mantenimiento, hasta la retirada del producto. A estos
modelos se les denomina «modelos de ciclo de vida del software». El primer modelo concebido fue el de
Royce, más comunmente conocido como
modelo establece que las diversas actividades que se van realizando al desarrollar un producto software
se suceden de forma lineal.
Boehm, autor de diversos artículos de ingeniería del software; modelos de estimación de esfuerzo y
tiempo que se consume en hacer productos software; y Modelos de Ciclo de Vida; ideó y promulgó un
modelo desde un enfoque distinto al tradicional en Cascada: El Modelo Evolutivo Espiral. Su Modelo de
Ciclo de Vida en Espiral tiene en cuenta fuertemente el
software. Para ello, se comienza mirando las posibles alternativas de desarrollo, se opta por la de riesgo
más asumible y se hace un ciclo de la espiral. Si el cliente quiere seguir haciendo mejoras en el software,
se vuelve a evaluar las distintas nuevas alternativas y riesgos y se realiza otra vuelta de la espiral, así
hasta que llegue un momento en el que el producto software desarrollado sea aceptado y no necesite
seguir mejorándose con otro nuevo ciclo.
Este modelo fue propuesto por Boehm en 1988. Básicamente consiste en una serie de ciclos que se
repiten en forma de espiral, comenzando desde el centro. Se suele interpretar como que dentro de cada
ciclo de la espiral se sigue un Modelo Cascada, pero no necesariamente debe ser así. El Espiral puede
verse como un modelo evolutivo que conjuga la naturaleza iterativa del modelo MCP con los aspectos
controlados y sistemáticos del Modelo Cascada, con el agregado de gestión de riegos.