stringtranslate.com

modelo espiral

Modelo espiral (Boehm, 1988). Una serie de conceptos erróneos surgen de simplificaciones excesivas en este diagrama de amplia circulación (hay algunos errores en este diagrama). [1]

El modelo en espiral es un modelo de proceso de desarrollo de software basado en riesgos . Basado en los patrones de riesgo únicos de un proyecto determinado, el modelo en espiral guía a un equipo para adoptar elementos de uno o más modelos de procesos, como la creación de prototipos incrementales , en cascada o evolutivos .

Historia

Este modelo fue descrito por primera vez por Barry Boehm en su artículo de 1986, "Un modelo en espiral de desarrollo y mejora de software". [2] En 1988, Boehm publicó un artículo similar [3] dirigido a una audiencia más amplia. Estos artículos presentan un diagrama que se ha reproducido en muchas publicaciones posteriores que analizan el modelo en espiral.

Estos primeros artículos utilizan el término "modelo de proceso" para referirse al modelo en espiral, así como a enfoques incrementales, en cascada, de creación de prototipos y otros. Sin embargo, la característica combinación impulsada por el riesgo del modelo en espiral de características de otros modelos de procesos ya está presente:

El subconjunto de pasos del modelo en espiral basado en riesgos permite que el modelo se adapte a cualquier combinación apropiada de enfoque orientado a especificaciones, orientado a prototipos, orientado a simulación, orientado a transformación automática u otro enfoque para el desarrollo de software. [3]

En publicaciones posteriores, [1] Boehm describe el modelo en espiral como un "generador de modelos de procesos", donde las elecciones basadas en los riesgos de un proyecto generan un modelo de proceso apropiado para el proyecto. Por lo tanto, los modelos incremental, en cascada, de creación de prototipos y otros modelos de procesos son casos especiales del modelo en espiral que se ajustan a los patrones de riesgo de ciertos proyectos.

Boehm también identifica una serie de conceptos erróneos que surgen de simplificaciones excesivas en el diagrama del modelo espiral original. Dice que los más peligrosos de estos conceptos erróneos son:

Si bien estos conceptos erróneos pueden ajustarse a los patrones de riesgo de algunos proyectos, no son ciertos para la mayoría de los proyectos.

En un informe del Consejo Nacional de Investigación [4], este modelo se amplió para incluir riesgos relacionados con los usuarios humanos.

Para distinguirlos mejor de los "peligrosos imitadores de espirales", Boehm enumera seis características comunes a todas las aplicaciones auténticas del modelo de espiral. [ cita necesaria ]

Las seis invariantes del modelo espiral.

Las aplicaciones auténticas del modelo en espiral están impulsadas por ciclos que siempre muestran seis características. Boehm ilustra cada uno con un ejemplo de una "peligrosa espiral parecida" que viola la invariante. [1]

Definir artefactos al mismo tiempo

La definición secuencial de los artefactos clave de un proyecto a menudo aumenta la posibilidad de desarrollar un sistema que cumpla con las "condiciones ganadoras" de las partes interesadas (objetivos y limitaciones).

Esta invariante excluye procesos de “espiral peligrosa” que utilizan una secuencia de pasos incrementales en cascada en entornos donde los supuestos subyacentes del modelo en cascada no se aplican. Boehm enumera estos supuestos de la siguiente manera:

  1. Los requisitos se conocen antes de su implementación.
  2. Los requisitos no tienen implicaciones de alto riesgo no resueltas, como riesgos debidos al costo, cronograma, desempeño, seguridad, interfaces de usuario, impactos organizacionales, etc.
  3. La naturaleza de los requisitos no cambiará mucho durante el desarrollo o la evolución.
  4. Los requisitos son compatibles con las expectativas de todas las partes interesadas clave del sistema, incluidos usuarios, clientes, desarrolladores, mantenedores e inversores.
  5. Se comprende bien la arquitectura adecuada para implementar los requisitos.
  6. Hay suficiente tiempo calendario para proceder de forma secuencial.

En situaciones donde estos supuestos sí se aplican, es un riesgo del proyecto no especificar los requisitos y proceder de manera secuencial. El modelo en cascada se convierte así en un caso especial del modelo en espiral impulsado por el riesgo.

Realizar cuatro actividades básicas en cada ciclo.

Esta invariante identifica las cuatro actividades que deben ocurrir en cada ciclo del modelo en espiral:

  1. Considere las condiciones de victoria de todas las partes interesadas críticas para el éxito.
  2. Identificar y evaluar enfoques alternativos para satisfacer las condiciones ganadoras.
  3. Identificar y resolver los riesgos que se derivan del(los) enfoque(s) seleccionado(s).
  4. Obtenga la aprobación de todas las partes interesadas críticas para el éxito, además del compromiso para continuar con el siguiente ciclo.

Los ciclos de proyectos que omiten o interrumpen cualquiera de estas actividades corren el riesgo de desperdiciar esfuerzos al buscar opciones que son inaceptables para las partes interesadas clave o que son demasiado arriesgadas.

Algunos procesos que parecen "espirales peligrosas" violan esta invariante al excluir a partes interesadas clave de ciertas fases o ciclos secuenciales. Por ejemplo, es posible que no se invite a los administradores y mantenedores del sistema a participar en la definición y el desarrollo del sistema. Como resultado, el sistema corre el riesgo de no satisfacer sus condiciones de victoria.

El riesgo determina el nivel de esfuerzo.

Para cualquier actividad del proyecto (por ejemplo, análisis de requisitos, diseño, creación de prototipos, pruebas), el equipo del proyecto debe decidir cuánto esfuerzo es suficiente. En auténticos ciclos de procesos en espiral, estas decisiones se toman minimizando el riesgo general.

Por ejemplo, invertir tiempo adicional en probar un producto de software a menudo reduce el riesgo de que el mercado rechace un producto de mala calidad. Sin embargo, un tiempo de prueba adicional podría aumentar el riesgo debido a la entrada temprana de un competidor al mercado. Desde la perspectiva del modelo en espiral, las pruebas deben realizarse hasta que se minimice el riesgo total, y nada más. [ cita necesaria ]

Las "peligrosas imitaciones de espirales" que violan esta invariante incluyen procesos evolutivos que ignoran el riesgo debido a problemas de escalabilidad y procesos incrementales que invierten mucho en una arquitectura técnica que debe rediseñarse o reemplazarse para adaptarse a futuros incrementos del producto.

El riesgo determina el grado de detalle.

Para cualquier artefacto del proyecto (por ejemplo, especificación de requisitos, documento de diseño, plan de prueba), el equipo del proyecto debe decidir cuánto detalle es suficiente. En auténticos ciclos de procesos en espiral, estas decisiones se toman minimizando el riesgo general.

Considerando la especificación de requisitos como ejemplo, el proyecto debe especificar con precisión aquellas características en las que se reduce el riesgo mediante una especificación precisa (por ejemplo, interfaces entre hardware y software, interfaces entre contratistas principales y subcontratistas). Por el contrario, el proyecto no debe especificar con precisión aquellas características donde una especificación precisa aumenta el riesgo (por ejemplo, diseños de pantalla gráfica, el comportamiento de componentes disponibles en el mercado).

Utilice hitos de puntos de anclaje

La descripción original de Boehm del modelo en espiral no incluía ningún hito del proceso. En refinamientos posteriores, introduce tres hitos de puntos de anclaje que sirven como indicadores de progreso y puntos de compromiso. Estos hitos de los puntos de anclaje pueden caracterizarse por preguntas clave.

  1. Objetivos del ciclo de vida. ¿Existe una definición suficiente de un enfoque técnico y de gestión para satisfacer las condiciones de victoria de todos? Si las partes interesadas están de acuerdo en que la respuesta es "Sí", entonces el proyecto ha superado este hito de LCO. De lo contrario, el proyecto puede abandonarse o las partes interesadas pueden comprometerse a otro ciclo para intentar llegar al "Sí".
  2. Arquitectura del ciclo de vida. ¿Existe una definición suficiente del enfoque preferido para satisfacer las condiciones de victoria de todos y se eliminan o mitigan todos los riesgos importantes? Si las partes interesadas están de acuerdo en que la respuesta es "Sí", entonces el proyecto ha superado este hito del ACV. De lo contrario, el proyecto puede abandonarse o las partes interesadas pueden comprometerse a otro ciclo para intentar llegar al "Sí".
  3. Capacidad operativa inicial. ¿Existe suficiente preparación del software, el sitio, los usuarios, los operadores y los mantenedores para satisfacer las condiciones ganadoras de todos al iniciar el sistema? Si las partes interesadas coinciden en que la respuesta es "Sí", entonces el proyecto ha superado el hito del COI y se lanza. De lo contrario, el proyecto puede abandonarse o las partes interesadas pueden comprometerse a otro ciclo para intentar llegar al "Sí".

Las "peligrosas imitaciones de espirales" que violan esta invariante incluyen procesos evolutivos e incrementales que comprometen importantes recursos para implementar una solución con una arquitectura mal definida. [ se necesita aclaración ]

Los tres hitos del punto de anclaje encajan fácilmente en el Proceso Unificado Racional (RUP), con LCO marcando el límite entre las fases de Inicio y Elaboración de RUP, LCA marcando el límite entre las fases de Elaboración y Construcción, y IOC marcando el límite entre las fases de Construcción y Transición.

Centrarse en el sistema y su ciclo de vida.

Esta invariante resalta la importancia del sistema general y las preocupaciones a largo plazo que abarcan todo su ciclo de vida. Excluye las "peligrosas imitaciones en espiral" que se centran demasiado en el desarrollo inicial del código de software. Estos procesos pueden resultar de seguir enfoques publicados para el análisis y diseño de software estructurado o orientado a objetos, descuidando otros aspectos de las necesidades del proceso del proyecto.

Referencias

  1. ^ abc Boehm, B (julio de 2000). "Desarrollo en espiral: experiencia, principios y perfeccionamientos" (PDF) . Reporte especial . Instituto de Ingeniería de Software. CMU/SEI-2000-SR-008.
  2. ^ Boehm, B (agosto de 1986). "Un modelo en espiral de desarrollo y mejora de software". Notas de ingeniería de software de ACM SIGSOFT . 11 (4): 14-24. doi :10.1145/12944.12948. S2CID  207165409.
  3. ^ ab Boehm, B (mayo de 1988). "Un modelo en espiral de desarrollo y mejora de software" (PDF) . Computadora IEEE . 21 (5): 61–72. doi :10.1109/2.59. S2CID  1781829.Archivado el 6 de marzo de 2023 en Wayback Machine .
  4. ^ Banco de iglesia, RW; Mavor, AS, eds. (2007). Integración del sistema humano en el proceso de desarrollo del sistema: una nueva mirada. Washington, DC: Prensa de la Academia Nacional. ISBN 978-0-309-10720-4.