El modelo cascada (waterfall),
propuesto por Royce en 1970, fue derivado de modelos de actividades de
ingeniería con el fin de establecer algo de orden en el desarrollo de grandes
productos de software. Consiste en diferentes etapas, las cuales son procesadas
en una manera lineal. Comparado con otros modelos de desarrollo de software es
más rígido y mejor administrable. El modelo cascada es un modelo muy importante
y ha sido la base de muchos otros modelos, sin embargo, para muchos proyectos
modernos, ha quedado un poco desactualizado.
Descripción del modelo
El modelo cascada es un modelo de ingeniería diseñado para ser aplicado en el
desarrollo de software. La idea principal es la siguiente: existen diferentes
etapas de desarrollo, la salida de la primera etapa “fluye” hacia la segunda
etapa y esta salida “fluye” hacia la tercera y así sucesivamente.
Existen generalmente cinco etapas en este modelo de
desarrollo de software:
§ Análisis y definición de
requerimientos: en
esta etapa, se establecen los requerimientos del producto que se desea
desarrollar. Éstos consisten usualmente en los servicios que debe proveer,
limitaciones y metas del software. Una vez que se ha establecido esto, los
requerimientos deben ser definidos en una manera apropiada para ser útiles en
la siguiente etapa. Esta etapa incluye también un estudio de la factibilidad y
viabilidad del proyecto con el fin de determinar la conveniencia de la puesta
en marcha del proceso de desarrollo. Puede ser tomada como la concepción de un
producto de software y ser vista como el comienzo del ciclo de vida.
§ Diseño del sistema: el diseño del software es un
proceso multipaso que se centra en cuatro atributos diferentes de los
programas: estructura de datos, arquitectura del software, detalle del proceso
y caracterización de las interfases. El proceso de diseño representa los
requerimientos en una forma que permita la codificación del producto (además de
una evaluación de la calidad previa a la etapa de codificación). Al igual que
los requerimientos, el diseño es documentado y se convierte en parte del
producto de software.
§ Implementación: esta es la etapa en la cual son
creados los programas. Si el diseño posee un nivel de detalle alto, la etapa de
codificación puede implementarse mecánicamente. A menudo suele incluirse un
testeo unitario en esta etapa, es decir, las unidades de código producidas son
evaluadas individualmente antes de pasar a la etapa de integración y testeo
global.
§ Testeo del sistema: una vez concluida la
codificación, comienza el testeo del programa. El proceso de testeo se centra
en dos puntos principales: las lógicas internas del software; y las
funcionalidades externas, es decir, se solucionan errores de “comportamiento”
del software y se asegura que las entradas definidas producen resultados reales
que coinciden con los requerimientos especificados.
§ Mantenimiento: esta etapa consiste en la
corrección de errores que no fueron previamente detectados, mejoras funcionales
y de performance, y otros tipos de soporte. La etapa de mantenimiento es parte
del ciclo de vida del producto de software y no pertenece estrictamente al
desarrollo. Sin embargo, mejoras y correcciones pueden ser consideradas como
parte del desarrollo.
Estas son las etapas principales.
También existen sub-etapas, dentro de cada etapa, pero éstas difieren mucho de
un proyecto a otro. También es posible que ciertos proyectos de software
requieran la incorporación de una etapa extra o la separación de una etapa en
otras dos. Sin embargo, todas estas variaciones al modelo cascada poseen el
mismo concepto básico: la idea de que una etapa provee salidas que serán usadas
como las entradas de la siguiente etapa (un flujo lineal entre las etapas). Por
lo tanto, el progreso del proceso de desarrollo de un producto de software,
usando el modelo cascada, es simple de conocer y controlar.
Existen actividades que son
llevadas a cabo en cada una de las etapas del desarrollo del software. Éstas
son documentación, verificación y administración. La documentación es
intrínseca al modelo cascada puesto que la mayoría de las salidas que arrojan
las etapas son documentos.
Problemas con el Modelo Cascada
El ciclo de vida
clásico es el paradigma más viejo y el más ampliamente usado en la ingeniería
del software. Sin embargo, su aplicabilidad en muchos campos ha sido
cuestionada. Entre los problemas que aparecen cuando se aplica el modelo
cascada están:
·
Los
proyectos raramente siguen el flujo secuencial que el modelo propone. La
iteración siempre es necesaria y está presente, creando problemas en la
aplicación del modelo.
·
A
menudo es difícil para el cliente poder especificar todos los requerimientos
explícitamente. El modelo de vida del software clásico requiere esto y presenta
problemas acomodando la incertidumbre natural que existe al principio de
cualquier proyecto.
·
El
cliente debe ser paciente. Una versión funcional del sistema no estará
disponible hasta tarde en la duración del desarrollo. Cualquier error o
malentendido, si no es detectado hasta que el programa funcionando es revisado,
puede ser desastroso.
Cada uno de
estos problemas es real. Sin embargo, el modelo clásico del ciclo de vida del
software tiene un lugar bien definido e importante en los trabajos de
ingeniería del software. Provee un patrón dentro del cual encajan métodos para
el análisis, diseño, codificación y mantenimiento.
Aplicación
El modelo
cascada se aplica bien en situaciones en las que el software es simple y en las
que el dominio de requerimientos es bien conocido, la tecnología usada en el
desarrollo es accesible y los recursos están disponibles.
BANCO DE PREGUNTAS
¿En qué consiste el modelo en cascada?
Indica uno de los problemas que tiene la aplicación del modelo en cascada
Enumere y defina las cinco etapas del modelo en cascada
No hay comentarios:
Publicar un comentario