Modelo de cascada
El modelo de cascada muestra un proceso donde los desarrolladores han de seguir las siguientes fases de forma sucesiva:- Especificación de requisitos
- Diseño del software
- Construcción
o Implementación del software
- Integración
- Pruebas (o validación)
- Despliegue (o instalación)
- Mantenimiento
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. Este modelo fue creado en 1988 por Barry Boehm, combinando algunos aspectos clave de las metodologías del modelo de cascada y del desarrollo rápido de aplicaciones, 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, especialmente en el caso de sistema complejos de gran escala.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:
- crear
planes con el propósito de identificar los objetivos del software,seleccionados
para implementar el programa y clarificar las restricciones en el
desarrollo del software;
- Análisis
de riesgos: una evaluación analítica de programas seleccionados, para
evaluar como identificar y eliminar el riesgo;
- la
implementación del proyecto: implementación del desarrollo del software y
su pertinente verificación;
- El
énfasis se sitúa en el análisis de riesgo, y por lo tanto requiere de clientes
que acepten este análisis y actúen en consecuencia. Para ello es necesaria
confianza en los desarrolladores así como la predisposición a gastar más
para solventar los temas, por lo cual este modelo se utiliza
frecuentemente en desarrollo interno de software a gran escala.
- Si la
implementación del riesgo de análisis afectará de forma esencial los
beneficios del proyecto, no debería utilizarse este modelo.
- Los
desarrolladores de software han de buscar de forma explícita riesgos y
analizarlos de forma exhaustiva para que este modelo funcione.
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. 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.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. Los procesos ágiles utilizan retroalimentación en lugar de planificación, como principal mecanismo de control. La retroalimentación se canaliza por medio de pruebas periódicas y frecuentes versiones del software.Hay muchas variantes de los procesos ágiles:
- En el caso de la programación extrema (XP), las fases se realizan en pasos muy cortos (o "continuos") con respecto al anterior. El primer paso (intencionalmente incompleto) por los pasos puede ocurrir en un día o en una semana, en lugar de los meses o años de cada paso completo en el modelo en cascada. En primer lugar, se crean pruebas automatizadas para proveer metas concretas al desarrollo. Después se programa el código, que será completo cuando todas las pruebas se superan sin errores, y los desarrolladores ya no sabrían como mejorar el conjunto de pruebas necesario. El diseño y la arquitectura emergen a partir de la refactorización del código, y se da después de programar. El diseño lo realizan los propios desarrolladores del código. El sistema, incompleto, pero funcional se despliega para su demostración a los usuarios (al menos uno de los cuales pertenece al equipo de desarrollo). Llegado este punto, los profesionales comienzan a escribir las pruebas para la siguiente parte del sistema de más importancia.
No hay comentarios:
Publicar un comentario