Análisis comparativo de distintos ciclos de vida del software



La ingeniería de software se define con cinco actividades estructurales: comunicación, planeación, modelado, construcción y despliegue. Donde le acompaña las actividades sombrilla como: seguimiento y control del proyecto, administración de riesgo, aseguramiento de calidad, etc. Y cada actividad consta de unas series de tareas.

La manera en que están organizadas estas actividades estructurales se llama flujo de proceso. Que son lo siguiente:

Flujo de proceso lineal.


Flujo de proceso iterativo.

Flujo de proceso evolutivo.

Flujo de proceso paralelo.


Modelos de ciclo de vida

Modelo de proceso prescriptivo (o tradicional)

Fue creado para poner orden en el desarrollo del software.
 Prescribe un conjunto de elementos y flujo de actividades.

Modelo de proceso secuencial

  • Sigue un flujo de proceso lineal. 
  • Requerimientos definidos y bien comprendidos desde el comienzo.
  • Ideal para adaptaciones (o mejoras) a sistemas existentes.
  •  No se dispone de una versión funcional del software hasta que finalice el proceso.
  • Genera pausas en el proceso por tener que esperar a que termine la fase anterior. “Estados de bloqueo”.
  •  Difícil de usar para trabajos acelerados y con constantes cambios de los recursos (tecnología, personal, necesidades, etc.)
  •  Ejemplo: modelo de la cascada y modelado en V.
 

Modelo de proceso incremental

  • Sigue una combinación del flujo de proceso lineal y de paralelo.
  • Produce software en incrementos.
  • El software puede mejorar o cambiar en el siguiente incremento, dependiendo de la evaluación del cliente.
  • Es útil cuando el tiempo para la entrega es corto y no hay mucho personal para la implementación completa del software.
  • Los incrementos se planean para administrar riesgos técnicos.
  • Se usa en los modelos de proceso ágil (o la mayoría de ellos).
 

Modelo de proceso evolutivo

  • Ideal para software que evoluciona con el tiempo.
  • Permite desarrollar versiones más completas del software por cada iteración.
  • Ideal para cuando el cliente no conoce en detalle que es lo que quiere que haga el software.
  • Creación de prototipos  como forma de recaudar requisitos y direccionar del desarrollo del software.
  • Al evolucionar el producto directamente desde un prototipo, no se considera la calidad del software.
  •  Ejemplo: modelo espiral.
 

Modelo de proceso concurrente

  • Describe las múltiples actividades del software ocurriendo simultáneamente.
  • Ideal para manejar cambios en el proceso de desarrollo.
  • Se guía está por las necesidades del usuario, las decisiones de la gestión y los resultados de las revisiones., no por tiempo. [mc]
  • Proporciona el ‘estado actual’ del software, mediante la red de procesos.

 

Modelos especializados

          Fue creado para ingeniería de software especializado.

Modelo basado en componente

  • Tiene características del modelo espiral, tiene enfoque evolutivo y es incremental.
  • Este modelo hace posible la reutilización del software.
  • De a poco disminuye el tiempo en el desarrollo y el costo del software.
  • Utiliza estructura de datos estandartes, prototipos de interfaz y arquitecturas de programas.
 

Modelo de métodos formales

  • Elimina muchos problemas difíciles, mediante la utilización de análisis matemático.
  • En el desarrollo utilizan métodos formales. [mf]
  • Ideal para software que necesita mucha calidad, en el tema de seguridad.
  • Ideal para software con mucho riesgo.
  • Muy costoso en aplicarlo (hablando en tiempo y dinero).
  • Se requiere mucha capacitación para utilizarla.
  • No hay forma de comunicar con los clientes no-técnicos.
 

Proceso unificado

  •  “Impulsado por caso de uso, centrado en la arquitectura, iterativo e incremental”
  • También se sigue el flujo de proceso paralelo.
  •  Se adapta al tipo de proyecto del software.

Conclusión

Los modelos de ciclo de vida son herramientas útiles al desarrollo del software. Y como herramienta, no hay una que solucione todos los problemas. Todas tienen ventajas, desventajas y el por qué fue creada. Como las fórmulas de las integrales del cálculo infinitesimal, hay que saber elegir cual modelo de ciclo de vida es la ideal para el trabajo.

Bibliografía

Pressman, Roger S.; Ingeniería del Software – Un enfoque moderno -; Mc Graw Hill; Séptima Edición; 2010

Enlaces interesantes


Comentarios

Entradas populares de este blog

Oraciones después del rosario de las Ocho

ISO/IEC 29119 Estándar de Prueba de Software