martes, 3 de junio de 2008

Proceso de creación de software: Sus modelos...

Para cada una las fases o etapas listadas en el ítem anterior, existen sub-etapas (o tareas). El Modelo de Proceso o Modelo de Ciclo de Vida utilizado para el desarrollo define el orden para las tareas o actividades involucradas, también definen la coordinación entre ellas, enlace y realimentación entre las mencionadas etapas. Entre los más conocidos se puede mencionar: Modelo en Cascada o secuencial, Modelo Espiral, Modelo Iterativo Incremental. De los antedichos hay a su vez algunas variantes o alternativas, más o menos atractivas según sea la aplicación requerida y sus requisitos.
Modelo Cascada
El
Modelo en cascada puro (conocido también como secuencial) difícilmente se utilice tal cual, pues esto implicaría un previo y absoluto conocimiento de los requisitos, la no volatilidad de los mismos (o rigidéz) y etapas subsiguientes libres de errores; ello sólo podría ser aplicable a escasos y pequeños desarrollos de sistemas. En estas circunstancias, el paso de una etapa a otra de las mencionadas sería sin retorno, por ejemplo pasar del Diseño a la Codificación implicaría un diseño exacto y sin errores ni probable modificación o evolución: "codifique lo diseñado que no habrán en absoluto variantes ni errores". Esto es utópico; ya que intríncecamente el software es de carácter evolutivo, cambiante y difícilmente libre de errores, tanto durante su desarrolllo como durante su vida operativa. Un cambio durante la ejecución de una etapa en este modelo puro podría implicar reinciar todo el ciclo completo, lo cual redundaría en altos costos de tiempo y desarrollo.
Sin embargo, el modelo cascada en algunas de sus variantes es uno de los más utilizados, por su eficacia y simplicidad, más que nada en software de pequeño y algunos de mediano porte; pero nunca (o muy rara vez) se lo usa en su forma pura, como se dijo anteriormente. En lugar de ello, siempre se produce alguna
realimentación entre etapas, que no es completamente predecible ni rígida; esto da oportunidad al desarrollo de productos software en los cuales hay ciertas incertezas, cambios o evoluciones durante el ciclo de vida. Así por ejemplo, una vez capturados (elicitados) y especificados los requisitos (primera etapa) se puede pasar a un análisis y diseño del sistema, pero durante esta última fase lo más probable es que se deban realizar ajustes en los requisitos (aunque sean mínimos), ya sea por fallas detectadas, ambiguedades o bien por que los propios requisitos han cambiado o evolucionado; con lo cual se debe retornar a la primera o previa etapa, reajustarlos y luego continuar nuevamente con el diseño; esto último se conoce como realimentación. Lo normal en el modelo cascada será entonces la aplicación del mismo con sus etapas realimentadas de alguna forma, permitiendo retroceder de una a la anterior (e incluso salto a varias anteriores) si es requerido.
De esta manera se obtiene un "Modelo Cascada Realimentado", que puede ser esquematizado como lo ilustra la figura.



Fig. - Modelo Cascada Realimentado para el Ciclo de Vida
Lo dicho es, a grandes rasgos, la forma y utilización de este modelo, uno de los más usados y populares. El modelo Cascada Realimentado resulta muy atractivo, hasta ideal, si el proyecto presenta alta rigidéz (pocos o ningún cambio, no evolutivo) y los requisitos están muy bien especificados.
Hay más variantes similares al modelo: refino de etapas (más estapas, menores y más específicas) e incluso mostrar menos etapas de las indicadas, aunque en tal caso la faltante estará dentro de alguna otra. El orden de esas fases indicadas en el ítem previo es el lógico y adecuado, pero adviértase, como se dijo, que normalmente habrá realimentación hacia atrás.
Modelo Iterativo Incremental
Modelo Espiral


No hay comentarios: