4.1.4.- Modelo espiral
El modelo espiral fue propuesto inicialmente por Barry Boehm. Es un modelo evolutivo que conjuga
la naturaleza iterativa del modelo MCP con los
aspectos controlados y sistemáticos del Modelo Cascada. Proporciona potencial
para desarrollo rápido de versiones incrementales. En el modelo Espiral el
software se construye en una serie de versiones incrementales. En las primeras
iteraciones la versión incremental podría ser un modelo en papel o bien un
prototipo. En las últimas iteraciones se producen versiones cada vez más
completas del sistema diseñado.6 10
El modelo se divide en un número de Actividades de marco de trabajo,
llamadas «regiones de tareas». En general existen entre tres y seis
regiones de tareas (hay variantes del modelo). En la Figura 6 se muestra el
esquema de un Modelo Espiral con 6 regiones. En este caso se explica una
variante del modelo original de Boehm, expuesto en su tratado de 1988; en 1998
expuso un tratado más reciente.

Fig. 6 - Modelo espiral para el ciclo de vida del software.
Las regiones definidas en el modelo de la figura son:
- Región 1 - Tareas requeridas para establecer la comunicación entre
el cliente y el desarrollador.
- Región 2 - Tareas inherentes a la definición de los recursos,
tiempo y otra información relacionada con el proyecto.
- Región 3 - Tareas necesarias para evaluar los riesgos técnicos y de
gestión del proyecto.
- Región 4 - Tareas para construir una o más representaciones
de la aplicación software.
- Región 5 - Tareas para construir la aplicación, instalarla,
probarla y proporcionar soporte al usuario o cliente (Ej. documentación y
práctica).
- Región 6 - Tareas para obtener la reacción del cliente, según la
evaluación de lo creado e instalado en los ciclos anteriores.
Las actividades enunciadas para el marco de trabajo son generales y se
aplican a cualquier proyecto, grande, mediano o pequeño, complejo o no. Las
regiones que definen esas actividades comprenden un «conjunto de tareas» del
trabajo: ese conjunto sí se debe adaptar a las características del proyecto en
particular a emprender. Nótese que lo listado en los ítems de 1 a 6 son
conjuntos de tareas, algunas de las ellas normalmente dependen del proyecto o
desarrollo en si.
Proyectos pequeños requieren baja cantidad de tareas y también de
formalidad. En proyectos mayores o críticos cada región de tareas contiene
labores de más alto nivel de formalidad. En cualquier caso se aplican
actividades de protección (por ejemplo, gestión de configuración del software,
garantía de calidad, etc.).
Al inicio del ciclo, o proceso evolutivo, el equipo de ingeniería gira
alrededor del espiral (metafóricamente hablando) comenzando por el centro
(marcado con ๑ en la Figura 6) y en el sentido indicado; el primer circuito de la
espiral puede producir el desarrollo de una especificación del producto; los pasos siguientes
podrían generar un prototipo y progresivamente
versiones más sofisticadas del software.
Cada paso por la región de planificación provoca ajustes en el plan del
proyecto; el coste y planificación se realimentan en función de la evaluación
del cliente. El gestor de proyectos debe ajustar el número de iteraciones
requeridas para completar el desarrollo.
El modelo espiral puede ir adaptándose y aplicarse a lo largo de todo el
Ciclo de vida del
software (en el modelo clásico, o cascada, el proceso termina a la
entrega del software).
Una visión alternativa del modelo puede observarse examinando el «eje de
punto de entrada de proyectos». Cada uno de los circulitos (๏) fijados a lo largo del eje representan puntos de arranque de los
distintos proyectos (relacionados); a saber:
- Un proyecto de «desarrollo de conceptos» comienza al inicio de la
espiral, hace múltiples iteraciones hasta que se completa, es la zona
marcada con verde.
- Si lo anterior se va a desarrollar como producto real, se inicia
otro proyecto: «Desarrollo de nuevo Producto». Que evolucionará con
iteraciones hasta culminar; es la zona marcada en color azul.
- Eventual y análogamente se generarán proyectos de «mejoras de
productos» y de «mantenimiento de productos», con las iteraciones necesarias
en cada área (zonas roja y gris, respectivamente).
Cuando la espiral se caracteriza de esta forma, está operativa hasta
que el software se retira, eventualmente puede estar inactiva (el proceso),
pero cuando se produce un cambio el proceso arranca nuevamente en el punto de
entrada apropiado (por ejemplo, en «mejora del producto»).
El modelo espiral da un enfoque realista, que evoluciona igual que el
software;11 se adapta muy bien
para desarrollos a gran escala.
El Espiral utiliza el MCP para
reducir riesgos y permite aplicarlo en cualquier etapa de la evolución.
Mantiene el enfoque clásico (cascada) pero incorpora un marco de trabajo
iterativo que refleja mejor la realidad.
Este modelo requiere considerar riesgos técnicos en todas las
etapas del proyecto; aplicado adecuadamente debe reducirlos antes de que sean
un verdadero problema.
El Modelo evolutivo como el Espiral es particularmente apto para el
desarrollo de Sistemas Operativos (complejos); también en sistemas de altos
riesgos o críticos (Ej. navegadores y controladores aeronáuticos) y en todos
aquellos en que sea necesaria una fuerte gestión del proyecto y sus riesgos,
técnicos o de gestión.
Desventajas importantes:
- Requiere mucha experiencia y habilidad para la evaluación de los
riesgos, lo cual es requisito para el éxito del proyecto.
- Es difícil convencer a los grandes clientes que se podrá controlar
este enfoque evolutivo.
Este modelo no se ha usado tanto, como el Cascada (Incremental) o MCP, por lo
que no se tiene bien medida su eficacia, es un paradigma relativamente nuevo y
difícil de implementar y controlar.