Mostrando entradas con la etiqueta ciclo. Mostrar todas las entradas
Mostrando entradas con la etiqueta ciclo. Mostrar todas las entradas

viernes, 3 de abril de 2009

Modelos de Ciclo de Vida


Figura 1. Modelo de ciclo de vida en cascada
Fuente: http://www.manycomics.com/recursos/documentos/se/code_and_fix.pdf





Figura 2. Modelo de ciclo de vida espiral
Fuente: http://es.wikipedia.org/wiki/Desarrollo_en_espiral


Las principales diferencias entre distintos modelos de ciclo de vida están en:
El alcance del ciclo dependiendo de hasta dónde llegue el proyecto correspondiente. Un proyecto puede comprender un simple estudio de viabilidad del desarrollo de un producto, o su desarrollo completo o, llevando la cosa al extremo, toda la historia del producto con su desarrollo, fabricación, y modificaciones posteriores hasta su retirada del mercado.
Las características (contenidos) de las fases en que dividen el ciclo. Esto puede depender del propio tema al que se refiere el proyecto (no son lo mismo las tareas que deben realizarse para proyectar un avión que un puente), o de la organización (interés de reflejar en la división en fases aspectos de la división interna o externa del trabajo).
La estructura de la sucesión de las fases que puede ser lineal, con prototipado, o en espiral. A continuación se presentan los modelos de ciclo de vida más usados en el medio:



Modelo Cascada

Este es el más básico de todos los modelos, y sirve como bloque de construcción para los demás modelos de ciclo de vida. La visión del modelo cascada del desarrollo de software es muy simple; dice que el desarrollo de software puede ser a través de una secuencia simple de fases. Cada fase tiene un conjunto de metas bien definidas, y las actividades dentro de una fase contribuye a la satisfacción de metas de esa fase o quizás a una subsecuencia de metas de la fase. Las flechas muestran el flujo de información entre las fases. La flecha de avance muestra el flujo normal. Las flechas hacia atrás representan la retroalimentación.
El modelo de ciclo de vida cascada, captura algunos principios básicos:



  • Planear un proyecto antes de embarcarse en él.

  • Definir el comportamiento externo deseado del sistema antes de diseñar su arquitectura interna.

  • Documentar los resultados de cada actividad.

  • Diseñar un sistema antes de codificarlo.

  • Testear un sistema después de construirlo.

En la figura 1 es posible observar el aspecto gráfico de este modelo de ciclo de vida


Modelo Espiral


El modelo espiral de los procesos software es un modelo del ciclo de meta-vida. En este modelo, el esfuerzo de desarrollo es iterativo. Tan pronto como uno completa un esfuerzo de desarrollo, otro comienza. Además, en cada desarrollo ejecutado, puedes seguir estos cuatros pasos:
Determinar qué quieres lograr.
Determinar las rutas alternativas que puedes tomar para lograr estas metas. Por cada una, analizar los riesgos y resultados finales, y seleccionar la mejor.
Seguir la alternativa seleccionada en el paso 2.
Establecer qué tienes terminado.

La dimensión radial en la figura refleja costos acumulativos incurridos en el proyecto.
Observemos un escenario particular. Digamos que en este proyecto, nosotros viajaremos a resolver un conjunto particular de problemas del cliente. Durante el primer viaje alrededor de la espiral, analizamos la situación y determinamos que los mayores riesgos son la interfaz del usuario. Después de un cuidadoso análisis de las formas alternativas de direccionar esto (por ejemplo, construir un sistema y esperar lo mejor, escribir una especificación de requerimientos y esperar que el cliente lo entienda, y construir un prototipo), determinamos que el mejor curso de acción es construir un prototipo.
Lo realizamos. Luego proveemos el prototipo al cliente quien nos provee con retroalimentación útil. Ahora, comenzamos el segundo viaje alrededor de la espiral. Este tiempo decidimos que el mayor riesgo es ese miedo a que muchos nuevos requerimientos comiencen a aparecer sólo después de que el sistema sea desplegado. Analicemos las rutas alternativas, y decidimos que la mejor aproximación es construir un incremento del sistema que satisfaga sólo los requerimientos mejor entendidos. Hagámoslo ya. Después del despliegue, el cliente nos provee de retroalimentación que dirá si estamos correctos con esos requerimientos, pero 50 nuevos requerimientos ahora se originarán en las cabezas de los clientes. Y el tercer viaje alrededor de la espiral comienza.
El modelo espiral captura algunos principios básicos:

  • Decidir qué problema se quiere resolver antes de viajar a resolverlo.
    Examinar tus múltiples alternativas de acción y elegir una de las más convenientes.


  • Evaluar qué tienes hecho y qué tienes que haber aprendido después de hacer algo.

  • No ser tan ingenuo para pensar que el sistema que estás construyendo será "EL" sistema que el cliente necesita, y

  • Conocer (comprender) los niveles de riesgo, que tendrás que tolerar.
    El modelo espiral no es una alternativa del modelo cascada, ellos son completamente compatible.
En la figura 2 es posible observar un resumen gráfico del modelo de ciclo de vida espiral

Enlaces de ampliación del tema:
http://es.wikipedia.org/wiki/Desarrollo_en_espiral
http://www.getec.etsit.upm.es/docencia/gproyectos/planificacion/cvida.htm

Actividad planteada:
Elabore un comparativo entre los modelos de ciclo de vida vistos indicando sus ventajas y desventajas

Ciclo del Proyecto


Figura 3. Elementos presentes en un ciclo de vida
Fuente:
http://www.getec.etsit.upm.es/docencia/gproyectos/planificacion/cvida.htm

Todo proyecto de ingeniería tiene unos fines ligados a la obtención de un producto, proceso o servicio que es necesario generar a través de diversas actividades. Algunas de estas actividades pueden agruparse en fases porque globalmente contribuyen a obtener un producto intermedio, necesario para continuar hacia el producto final y facilitar la gestión del proyecto. Al conjunto de las fases empleadas se le denomina “ciclo de vida”.

Sin embargo, la forma de agrupar las actividades, los objetivos de cada fase, los tipos de productos intermedios que se generan, etc. pueden ser muy diferentes dependiendo del tipo de producto o proceso a generar y de las tecnologías empleadas.

La complejidad de las relaciones entre las distintas actividades crece exponencialmente con el tamaño, con lo que rápidamente se haría inabordable si no fuera por la vieja táctica de “divide y vencerás”. De esta forma la división de los proyectos en fases sucesivas es un primer paso para la reducción de su complejidad, tratándose de escoger las partes de manera que sus relaciones entre sí sean lo más simples posibles.

La definición de un ciclo de vida facilita el control sobre los tiempos en que es necesario aplicar recursos de todo tipo (personal, equipos, suministros, etc.) al proyecto. Si el proyecto incluye subcontratación de partes a otras organizaciones, el control del trabajo subcontratado se facilita en la medida en que esas partes encajen bien en la estructura de las fases. El control de calidad también se ve facilitado si la separación entre fases se hace corresponder con puntos en los que ésta deba verificarse (mediante comprobaciones sobre los productos parciales obtenidos).

De la misma forma, la práctica acumulada en el diseño de modelos de ciclo de vida para situaciones muy diversas permite que nos beneficiemos de la experiencia adquirida utilizando el enfoque que mejor de adapte a nuestros requerimientos.
ELEMENTOS DEL CICLO DE VIDA


Un ciclo de vida para un proyecto se compone de fases sucesivas compuestas por tareas planificables. Según el modelo de ciclo de vida, la sucesión de fases puede ampliarse con bucles de realimentación, de manera que lo que conceptualmente se considera una misma fase se pueda ejecutar más de una vez a lo largo de un proyecto, recibiendo en cada pasada de ejecución aportaciones de los resultados intermedios que se van produciendo (realimentación).

En la figura 3 es posible observar los diferentes elementos de un ciclo de vida:

Se recomiendan los siguientes enlaces para ampliar el tema:
Actividad planteada:
Defina el ciclo de vida que usted aplicaría si le piden fabricar un producto software. Identifique cada uno de los elementos enunciados en la figura 3