El modelo de desarrollo en espiral es actualmente uno de los más
conocidos y fue propuesto por Boehm. El ciclo de desarrollo
se representa como una espiral, en lugar de una
serie de actividades sucesivas con retrospectiva de una actividad a otra.
Cada ciclo de desarrollo se divide en cuatro fases:
· Definición de
objetivos: se definen los objetivos. Se definen las restricciones del proceso y
del producto. Se realiza un diseño detallado del plan administrativo. Se identifican
los riesgos y se elaboran estrategias alternativas dependiendo de estos.
· Evaluación y
reducción de riesgos: se realiza un análisis detallado de cada riesgo
identificado. Pueden desarrollarse prototipos para disminuir
el riesgo de requisitos dudosos. Se llevan a cabo los pasos para reducir
los riesgos.
· Desarrollo y
validación: se escoge el modelo de desarrollo después de
la evaluación del riesgo. El modelo que se utilizará (cascada, sistemas formales, evolutivo,
etc.) depende del riesgo identificado para esa fase. Así si por
ejemplo si los riesgos en la interfaz de usuario son
dominantes, un modelo de desarrollo apropiado podría ser la construcción de
prototipos evolutivos. Si lo riesgos de protección son la principal
consideración, un desarrollo basado en transformaciones formales podría ser el
más apropiado.
· Planificación: se determina
si continuar con otro ciclo. Se planea la siguiente
fase del proyecto.
Este modelo a diferencia de los otros
toma en consideración explícitamente el riesgo, esta es una
actividad importante en la administración del proyecto.
El ciclo de vida inicia con la definición de los objetivos.
De acuerdo a las restricciones se determinan distintas
alternativas. Se identifican los riesgos al sopesar los
objetivos contra las alternativas. Se evalúan los riesgos con actividades como análisis
detallado, simulación, prototipos, etc. Se desarrolla un poco el sistema.
Se planifica la siguiente fase.
El desarrollo en espiral es un modelo de ciclo
de vida del software definido por primera vez por Barry Boehm en
1988, utilizado generalmente en la Ingeniería de software.
Las actividades de este modelo se conforman en una espiral, en
la que cada bucle o iteración representa un conjunto de
actividades. Las actividades no están fijadas a priori, sino
que las siguientes se eligen en función del análisis de riesgo, comenzando
por el bucle interior.
Introducción
La Ingeniería de software, se vale y establece a partir 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 comúnmente conocido como desarrollo en
cascada o desarrollo lineal secuencial. Este 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 riesgo que aparece a la hora de desarrollar 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 (Modelo de prototipos) con los aspectos
controlados y sistemáticos del Modelo Cascada, con el agregado de
gestión de riegos.
En cada vuelta o iteración hay que tener en cuenta
Los Objetivos: que necesidad debe cubrir el producto.
Alternativas: las diferentes formas de conseguir los objetivos de
forma exitosa, desde diferentes puntos de vista como pueden ser:
- Características:
experiencia del personal, requisitos a cumplir, etc.
- Formas
de gestión del sistema.
- Riesgo
asumido con cada alternativa.
Desarrollar y Verificar: programar y probar el software.
Si el resultado no es el adecuado o se necesita implementar mejoras o
funcionalidades
Se planificaran los siguientes pasos y se comienza un nuevo ciclo de la
espiral. La espiral tiene una forma de caracola y se dice que
mantiene dos dimensiones, la radial y la angular:
- Angular: indica
el avance del proyecto del software dentro de un ciclo.
- Radial: indica
el aumento del coste del proyecto, ya que con cada nueva iteración se pasa
más tiempo desarrollando.
Este sistema es muy utilizado en proyectos
grandes y complejos como puede ser, por ejemplo,
la creación de un Sistema Operativo.
Al ser un modelo de Ciclo de Vida orientado a la gestión de
riesgo se dice que uno de los aspectos fundamentales de su
éxito radica en que el equipo que lo aplique tenga la necesaria experiencia
y habilidad para detectar y catalogar correctamente los riesgos.
Mecanismos de control
ü La dimensión radial mide el coste.
ü La dimensión angular mide el grado de
avance del proyecto.
Variaciones del Modelo En Espiral
ü Modelo en Espiral Típico de seis
regiones.
ü Modelo en espiral WIN WIN.
Ventajas
El análisis del riesgo se hace de forma explícita y clara. Une los
mejores elementos de los restantes modelos.
- Reduce
riesgos del proyecto
- Incorpora
objetivos de calidad
- Integra
el desarrollo con el mantenimiento, etc.
Además es posible tener en cuenta mejoras y nuevos requerimientos sin
romper con la metodología, ya que este ciclo de vida no es rígido ni estático.
Desventajas
- Genera mucho
tiempo en el desarrollo del sistema
- Modelo costoso
- Requiere
experiencia en la identificación de riesgos
Inconvenientes
Planificar un proyecto con esta metodología es a menudo imposible,
debido a la incertidumbre en el número de iteraciones que serán necesarias. En
este contexto la evaluación de riesgos es de la mayor importancia y,
para grandes proyectos, dicha evaluación requiere la intervención de
profesionales de gran experiencia.
El IEEE clasifica al desarrollo en espiral como modelo no
operativo en sus clasificaciones de MCV.
Modelo espiral Win & Win
Una variante interesante del Modelo Espiral previamente visto es el
«Modelo espiral Win-Win (Barry Boehm). El Modelo Espiral previo (clásico) sugiere
la comunicación con el cliente para fijar los requisitos,
en que simplemente se pregunta al cliente qué necesita y él proporciona
la información para continuar; pero esto es en un contexto ideal
que rara vez ocurre. Normalmente cliente y desarrollador entran en
una negociación, se negocia coste frente a funcionalidad, rendimiento, calidad,
etc.
«Es así que la obtención de requisitos requiere una
negociación, que tiene éxito cuando ambas partes ganan».
Las mejores negociaciones se fuerzan en obtener «Victoria &
Victoria» (Win & Win), es decir que
el cliente gane obteniendo el producto que lo satisfaga, y el desarrollador
también gane consiguiendo presupuesto y fecha de entrega realista.
Evidentemente, este modelo requiere fuertes habilidades de negociación.
El modelo Win-Win define un conjunto de actividades de negociación al
principio de cada paso alrededor de la espiral; se definen las siguientes
actividades:
1.
Identificación del sistema o subsistemas clave de los directivos (*)
(saber qué quieren).
2.
Determinación de «condiciones de victoria» de los directivos (saber qué
necesitan y los satisface)
3.
Negociación de las condiciones «victoria» de los directivos para obtener
condiciones «Victoria & Victoria» (negociar para que ambos ganen).
(*) Directivo: Cliente escogido con interés directo en el producto, que
puede ser premiado por la organización si tiene éxito o criticado si no.
El modelo Win & Win hace énfasis en la negociación inicial, también
introduce 3 hitos en el proceso llamados «puntos de fijación», que ayudan a
establecer la completitud de un ciclo de la espiral, y proporcionan hitos de
decisión antes de continuar el proyecto de desarrollo del software.
PARADIGMA DEL MODELO ESPIRAL
Es un modelo de proceso de software evolutivo. En el modelo espiral, el
software se desarrolla en una serie de versiones increméntales. Durante las
primeras iteraciones. La versión incremental podría ser un modelo en papel o un
prototipo. Durante las últimas iteraciones, se producen versiones cada vez más
completas de ingeniería del sistema.
CARACTERÍSTICAS:
- Es
un modelo evolutivo que combina el modelo clásico con el diseño de
prototipos.
- Incluye
la etapa de análisis de riesgos.
- Es
ideal para crear productos con diferentes versiones mejoradas como se hace
con los softwares modernos de microcomputadoras.
- La
ingeniería puede desarrollarse a través del ciclo de vida clásico o el de
construcción de prototipos.
- Este
es el enfoque más realista actualmente.
El modelo en espiral se divide en un número de actividades
estructurales, también llamadas regiones de tareas.
Generalmente, existen entre tres y seis regiones de tareas.
Comunicación con el cliente: las tareas requeridas para establecer
comunicación entre el desarrollador y el cliente.
Planificación: las tareas requeridas para definir recursos, el tiempo y otras
informaciones relacionadas con el proyecto. Son todos los
requerimientos.
Análisis de riesgos: las tareas requeridas para evaluar riesgos
técnicos y otras informaciones relacionadas con el proyecto.
Ingeniería: las tareas requeridas para construir una
o más representaciones de la aplicación.
Construcción y adaptación: las tareas requeridas para
construir, probar, instalar y proporcionar soporte al usuario.
Evaluación el cliente: las tareas requeridas para
obtener la reacción del cliente según la evaluación de las representaciones del
software creadas durante la etapa de ingeniería e implementación durante la
etapa de instalación.
No hay comentarios:
Publicar un comentario