Está en la página 1de 6

MODELO CASCADA

En Ingeniería de software el desarrollo en cascada, también llamado modelo en cascada, es el enfoque metodológico que ordena rigurosamente las etapas del proceso para el desarrollo de software, de tal forma que el inicio de cada etapa debe esperar a la finalización de la etapa anterior.1 Un ejemplo de una metodología de desarrollo en cascada es: 1. 2. 3. 4. 5. 6. 7. Análisis de requisitos. Diseño del Sistema. Diseño del Programa. Codificación. Pruebas. Implantación. Mantenimiento.

De esta forma, cualquier error de diseño detectado en la etapa de prueba conduce necesariamente al rediseño y nueva programación del código afectado, aumentando los costos del desarrollo. La palabra cascada sugiere, mediante la metáfora de la fuerza de la gravedad, el esfuerzo necesario para introducir un cambio en las fases más avanzadas de un proyecto. Si bien ha sido ampliamente criticado desde el ámbito académico y la industria, sigue siendo el paradigma más seguido al día de hoy. El "modelo cascada" sin modificar. El progreso fluye de arriba hacia abajo, como una cascada. Análisis de requisitos En esta fase se analizan las necesidades de los usuarios finales del software para determinar qué objetivos debe cubrir. De esta fase surge una memoria llamada SRD (documento de especificación de requisitos), que contiene la especificación completa de lo que debe hacer el sistema sin entrar en detalles internos. Es importante señalar que en esta etapa se debe consensuar todo lo que se requiere del sistema y será aquello lo que seguirá en las siguientes etapas, no pudiéndose requerir nuevos resultados a mitad del proceso de elaboración del software.

Diseño del Sistema Descompone y organiza el sistema en elementos que puedan elaborarse por separado, aprovechando las ventajas del desarrollo en equipo. Como resultado surge el SDD (Documento de Diseño del Software), que contiene la descripción de la estructura relacional global del sistema y la especificación de lo que debe hacer cada una de sus partes, así como la manera en que se combinan unas con otras.

Dependiendo del lenguaje de programación y su versión se crean las bibliotecas y componentes reutilizables dentro del mismo proyecto para hacer que la programación sea un proceso mucho más rápido. haciendo uso de prototipos así como de pruebas y ensayos para corregir errores. ya programados. usando los programas adecuados y no se debe utilizar muchos recursos. El primero de ellos tiene como objetivo definir la estructura de la solución (una vez que la fase de análisis ha descrito el problema) identificando grandes módulos (conjuntos de funciones que van a estar asociadas) y sus relaciones. El segundo define los algoritmos empleados y la organización del código para comenzar la implementación. Esto permite que al mismo tiempo el desarrollador entienda mejor lo que se debe hacer y el cliente vea resultados a corto plazo. antes de ser entregado al usuario final. El prototipo debe ser construido en poco tiempo. Codificación Es la fase en donde se implementa el código fuente. Modelo de prototipos El Modelo de prototipos. gracias a ésta se refinan los requisitos del software que se desarrollará. diseño rápido Construcción del Prototipo Desarrollo. Este diseño conduce a la construcción de un prototipo. Diseño del Programa Es la fase en donde se realizan los algoritmos necesarios para el cumplimiento de los requerimientos del usuario así como también los análisis necesarios para saber que herramientas usar en la etapa de Codificación. El diseño rápido se centra en una representación de aquellos aspectos del software que serán visibles para el cliente o el usuario final. La interacción ocurre cuando el prototipo se ajusta para satisfacer las necesidades del cliente. pertenece a los modelos de desarrollo evolutivo.Es conveniente distinguir entre diseño de alto nivel o arquitectónico y diseño detallado. se ensamblan para componer el sistema y se comprueba que funciona correctamente y que cumple con los requisitos. Pruebas Los elementos. el cual es evaluado por el cliente para una retroalimentación. Etapas     Plan rápido Modelado. entrega y retroalimentación . en Ingeniería de software. Con ello se define la arquitectura de la solución elegida.

También ofrece un mejor enfoque cuando el responsable del desarrollo del software está inseguro de la eficacia de un algoritmo. la calidad del software puede ayudar como una meta propia en la integración en el desarrollo del producto. especialmente en el caso de sistema complejos de gran escala. para evaluar cómo identificar y eliminar el riesgo. de la adaptabilidad de un sistema operativo o de la forma que debería tomar la interacción humano-máquina. el modelo en espiral tiene algunas limitaciones. Comunicación Ventajas   Este modelo es útil cuando el cliente conoce los objetivos generales para el software. haciendo hincapié en las condiciones de las opciones y limitaciones para facilitar la reutilización de software. Sin embargo. pero dando énfasis en un área que para muchos no jugó el papel que requiere en otros modelos: un análisis iterativo y concienzudo de los riesgos. pero no identifica los requisitos detallados de entrada. no debería utilizarse este modelo. Este modelo fue creado en 1988 por Barry Boehm. entre las que destacan: 1. . crear planes con el propósito de identificar los objetivos del software. procesamiento o salida. seleccionados para implementar el programa y clarificar las restricciones en el desarrollo del software. 2. por lo cual este modelo se utiliza frecuentemente en desarrollo interno de software a gran escala. 3. Modelo de espiral con énfasis en los riesgos. combinando algunos aspectos clave de las metodologías del modelo de cascada y del desarrollo rápido de aplicaciones. La espiral se visualiza como un proceso que pasa a través de algunas iteraciones con el diagrama de los cuatro cuadrantes representativos de las siguientes actividades: 1. y por lo tanto requiere de clientes que acepten este análisis y actúen en consecuencia. la implementación del proyecto: implementación del desarrollo del software y su pertinente verificación. 2. El énfasis se sitúa en el análisis de riesgo. Para ello es necesaria confianza en los desarrolladores así como la predisposición a gastar más para solventar los temas. Si la implementación del riesgo de análisis afectará de forma esencial los beneficios del proyecto. Análisis de riesgos: una evaluación analítica de programas seleccionados. Modelo de espiral La principal características del modelo en espiral es la gestión de riesgos de forma periódica en el ciclo de desarrollo.

se evalúan los resultados y se inicia el diseño de la siguiente fase. El primer paso (intencionalmente incompleto) por los pasos puede ocurrir en un día o en una semana. Hay muchas variantes de los procesos ágiles:  En el caso de la programación extrema (XP).3. El diseño lo realizan los propios desarrolladores del código. Desarrollo ágil El desarrollo ágil de software utiliza un desarrollo iterativo como base para abogar por un punto de vista más ligero y más centrado en las personas que en el caso de las soluciones tradicionales. En primer lugar. El diseño y la arquitectura emergen a partir de la refactorización del código. y si fuera necesario incluyendo la fabricación de un prototipo. las fases se realizan en pasos muy cortos (o "continuos") con respecto al anterior. El sistema. pero funcional se despliega para su demostración a los usuarios (al menos uno de los cuales pertenece al equipo de desarrollo). en lugar de los meses o años de cada paso completo en el modelo en cascada. Si es imposible descartar algunos riesgos. Desarrollo iterativo e incremental El desarrollo iterativo recomienda la construcción de secciones reducidas de software que irán ganando en tamaño para facilitar así la detección de problemas de importancia antes de que sea demasiado tarde. Después se programa el código. Llegado este punto. los profesionales comienzan a escribir las pruebas para la siguiente parte del sistema de más importancia. que será completo cuando todas las pruebas se superan sin errores. el cliente ha de decidir si es conveniente terminar el proyecto o seguir adelante ignorando los riesgos. se crean pruebas automatizadas para proveer metas concretas al desarrollo. como principal mecanismo de control. incompleto. y los desarrolladores ya no sabrían cómo mejorar el conjunto de pruebas necesario. Los procesos iterativos pueden ayudar a desvelar metas del diseño en el caso de clientes que no saben cómo definir lo que quieren. Los desarrolladores de software han de buscar de forma explícita riesgos y analizarlos de forma exhaustiva para que este modelo funcione. Los procesos ágiles utilizan retroalimentación en lugar de planificación. y se da después de programar. . La primera fase es la búsqueda de un plan para conseguir los objetivos con las limitaciones del proyecto para así buscar y eliminar todos los riesgos potenciales por medio de un cuidadoso análisis. La retroalimentación se canaliza por medio de pruebas periódicas y frecuentes versiones del software. Por último.

por lo que se aconsejable introducir una versión funcional limitada de alguna forma para aliviar las presiones competitivas. existen sub-etapas (o tareas). Los requisitos del usuario y del producto suelen cambiar conforme se desarrolla el mismo. más o menos atractivas según sea la aplicación requerida y sus requisitos. Entre los más conocidos se puede mencionar: modelo en cascada o secuencial. pero esto es en un contexto ideal que rara vez . Modelos evolutivos El software evoluciona con el tiempo. durante la fase de operación. aunque no estén bien definidos a nivel detalle. donde los requisitos centrales son conocidos de antemano. modelo espiral. De los antedichos hay a su vez algunas variantes o alternativas. permiten desarrollar versiones cada vez más completas y complejas. El modelo de proceso o modelo de ciclo de vida utilizado para el desarrollo. con requisitos bien conocidos y definidos desde el inicio.6también define la coordinación entre ellas. define el orden de las tareas o actividades involucradas. Los evolutivos son modelos iterativos. modelo iterativo incremental. en que simplemente se pregunta al cliente qué necesita y él proporciona la información para continuar. se plantea como estático. El Modelo Espiral previo (clásico) sugiere la comunicación con el cliente para fijar los requisitos. En esas u otras situaciones similares los desarrolladores necesitan modelos de progreso que estén diseñados para acomodarse a una evolución temporal o progresiva. incluso evolucionar más allá. Modelo espiral Win & Win Una variante interesante del Modelo Espiral previamente es el «Modelo espiral Win-Win» (Barry Boehm). y su enlace y realimentación. En el modelo cascada y cascada realimentado no se tiene demasiado en cuenta la naturaleza evolutiva del software . Las fechas de mercado y la competencia hacen que no sea posible esperar a poner en el mercado un producto absolutamente completo. hasta llegar al objetivo final deseado. Los modelos «iterativo incremental» y «espiral» (entre otros) son dos de los más conocidos y utilizados del tipo evolutivo.Modelos de proceso o ciclo de vida Para cada una de las fases o etapas listadas en el ítem anterior.

que ayudan a establecer la completitud de un ciclo de la espiral. Identificación del sistema o subsistemas clave de los directivos (*) (saber qué quieren). y proporcionan hitos de decisión antes de continuar el proyecto de desarrollo del software. que tiene éxito cuando ambas partes ganan».ocurre. se definen las siguientes actividades: 1. «Es así que la obtención de requisitos requiere una negociación. . etc. Las mejores negociaciones se fuerzan en obtener «Victoria & Victoria» (Win & Win). es decir que el cliente gane obteniendo el producto que lo satisfaga. se negocia coste frente a funcionalidad. calidad. El modelo Win-Win define un conjunto de actividades de negociación al principio de cada paso alrededor de la espiral. Determinación de «condiciones de victoria» de los directivos (saber qué necesitan y los satisface) 3. y el desarrollador también gane consiguiendo presupuesto y fecha de entrega realista. El modelo Win & Win hace énfasis en la negociación inicial. también introduce 3 hitos en el proceso llamados «puntos de fijación». que puede ser premiado por la organización si tiene éxito o criticado si no. Negociación de las condiciones «victoria» de los directivos para obtener condiciones «Victoria & Victoria» (negociar para que ambos ganen). este modelo requiere fuertes habilidades de negociación. 2. rendimiento. Normalmente cliente y desarrollador entran en una negociación. (*) Directivo: Cliente escogido con interés directo en el producto. Evidentemente.