Modelo de Desarrollo de Cascadas
Visión de conjunto:
El modelo de desarrollo de la cascada se lanzó en la década de 1970. Es un marco para el desarrollo de software en el que el desarrollo procede secuencialmente a través de una serie de fases, comenzando con los requisitos del negocio, el análisis de los requisitos del software y la planificación para desarrollar el producto, la versión y el mantenimiento del software.
En este modelo, cada fase tiene entregables específicos, después de completar una fase / etapa comenzará la siguiente. La salida de una etapa se ingresa para la siguiente etapa.
Existen varias variantes de este modelo, y cada una cita etiquetas ligeramente diferentes para las distintas etapas. En general, sin embargo, se puede considerar que el modelo tiene seis fases distintas, que se describen a continuación:
- ¿Cuáles son los KPI estándar para medir la calidad del producto y la eficiencia del equipo?
- ¿Cómo puedo saber si un hombre está trabajando en una empresa de TI basada en servicios o en una empresa de TI basada en productos?
- Tecnología: ¿Los valores decrecientes de las acciones tecnológicas, como Linkedin o Tableau, indican que la 'burbuja tecnológica' estalla?
- Si escribir programas que se ejecutan en múltiples núcleos se llama programación paralela, ¿cómo se llaman los programas de escritura que lanzan múltiples hilos?
- ¿Qué será de los ingenieros de software una vez que las computadoras aprendan a codificarse?
a) Recopilación de requisitos:
Este primer paso también es el más importante, porque implica recopilar información sobre lo que el cliente necesita y definir, en los términos más claros posibles, el problema que se espera que resuelva el producto.
b) Requisitos del sistema:
En esta fase, los requisitos empresariales se convierten en requisitos de software.
c) Diseño:
En esta fase, se puede producir un diseño global y detallado basado en los requisitos de software.
d) Codificación:
Este paso consiste en construir el producto según las especificaciones de diseño desarrolladas en el paso anterior. Normalmente, este paso lo realiza un equipo de desarrollo formado por programadores, diseñadores de interfaces y otros especialistas, que utilizan herramientas como compiladores, depuradores, intérpretes y editores de medios. El resultado de este paso es uno o más componentes del producto, construidos de acuerdo con un estándar de codificación predefinido y depurados, probados e integrados para satisfacer los requisitos de la arquitectura del sistema.
e) Prueba:
En esta etapa, el sistema será probado por los probadores, si encuentran algún desajuste, informan defectos. Los desarrolladores / programadores corrigen los defectos y luego los probadores cierran los defectos realizando pruebas de confirmación (pruebas de regresión).
f) Lanzamiento y mantenimiento:
El equipo de lanzamiento (compuesto por unos pocos desarrolladores, evaluadores y personal de soporte técnico, etc.) instala el software en el entorno del Cliente y considera los siguientes factores;
Instalación correcta y completa
Gestión de usuarios
Gerencia de servicios
Convivencia con otro software
Manejo de dispositivos de entrada y salida
Manejo de dispositivos de almacenamiento secundario.
Etc …
El equipo de mantenimiento procesa los problemas del cliente en función de los acuerdos de servicio.
3 tipos de mantenimiento de software:
a) Modificaciones
b) migración
c) Retiro
Ventajas del modelo de cascada:
i) Simple y fácil de usar
ii) Fácil de administrar debido a la rigidez del modelo: cada fase tiene entregables específicos y un proceso de revisión.
iii) Las fases se procesan y se completan una a la vez.
iv) Funciona bien para proyectos más pequeños donde los requisitos se entienden muy bien.
Desventajas del modelo de cascada:
i) No se produce ningún software que funcione hasta el final del ciclo de vida
ii) Gran cantidad de riesgo e incertidumbre
iii) Modelo deficiente para proyectos complejos y orientados a objetos.
iv) Modelo deficiente para proyectos largos y en curso
v) Modelo deficiente donde los requisitos tienen un riesgo de cambio moderado a alto.
Modelo de desarrollo ágil
El término ágil significa ‘moverse rápidamente’. El proceso ágil en sí mismo es un proceso de desarrollo de software realizado por pequeños equipos, en un corto período de tiempo, y que involucra a usuarios del sistema y desarrolladores. Este proceso ágil es un enfoque iterativo en el que la satisfacción del cliente es la máxima prioridad ya que el cliente tiene una participación directa en la evaluación del software. Un enfoque ágil se centra en la adaptabilidad y el tiempo de respuesta a los requisitos cambiantes.
Visión de conjunto
La definición para el desarrollo de software ágil evolucionó a mediados de la década de 1990. Ayuda en la planificación adaptativa, el desarrollo iterativo y el time boxing. Es un marco teórico que promueve las interacciones previstas a lo largo del ciclo de desarrollo.
Fases modelo ágiles
El proceso ágil sigue el ciclo de vida de desarrollo de software que incluye la recopilación de requisitos, análisis, diseño, codificación, prueba y entrega software parcialmente implementado y espera los comentarios de los clientes. En todo el proceso, la satisfacción del cliente es la máxima prioridad con un tiempo de desarrollo más rápido.
El proceso ágil requiere menos planificación y divide las tareas en pequeños incrementos. Este proceso está destinado a proyectos a corto plazo con un esfuerzo de trabajo en equipo que sigue el ciclo de vida de desarrollo de software. El ciclo de vida del desarrollo de software incluye las siguientes fases
1.Recopilación de requisitos,
2.Análisis
3.Diseño,
4 codificación,
5.prueba
6.Mantenimiento.
La participación de la administración del equipo de software con los clientes reduce los riesgos asociados con el software. Este proceso ágil es un proceso iterativo en el que se pueden realizar cambios de acuerdo con la satisfacción del cliente.
El modelo de ciclo de vida de desarrollo del sistema ágil comienza con la obtención inicial de requisitos para conceptualizar el sistema. Una vez que se forma el concepto del sistema, los requisitos se estiman y priorizan para planificar las iteraciones de desarrollo. Dentro de cada iteración, los requisitos continúan evolucionando y se utilizan en breves sesiones de tormenta de modelos para diseñar la funcionalidad requerida para cumplir con los requisitos asignados a la iteración. Cuando se desarrolla / modifica el modelo del sistema, la codificación se inicia / continúa utilizando un enfoque basado en pruebas. Una vez que la funcionalidad para la iteración se prueba con éxito, se realiza la refactorización. La refactorización es una técnica disciplinada para alterar la estructura de una base de código existente sin alterar la funcionalidad. Cuando se completa la refactorización y se confirma la funcionalidad, el código se implementa internamente, completando la iteración.
Si los planes incluyen implementar el código más allá de la iteración de desarrollo, el código se implementa externamente. Eventualmente, todas las iteraciones se completan, lo que resulta en un sistema con funcionalidad completa que es aceptado por los interesados porque cumple con los requisitos asignados.
Existen varias metodologías a través de las cuales podemos implementar proyectos ágiles. Los métodos ágiles se centran en diferentes aspectos del ciclo de vida de desarrollo de software. Algunos se centran en las prácticas (programación extrema, programación de pares), mientras que otros se centran en gestionar los proyectos de software (el enfoque scrum).
Las tres metodologías más utilizadas en la industria son
1. Programación extrema (XP).
2. Scrum.
3. Desarrollo dirigido por características (FDD).
1. Programación extrema (XP): XP es el método más exitoso para desarrollar software ágil debido a su enfoque en la satisfacción del cliente. XP requiere la máxima interacción del cliente para desarrollar el software. Divide todo el ciclo de vida de desarrollo de software en varios ciclos cortos de desarrollo. Da la bienvenida e incorpora los cambios o requisitos de los clientes en cualquier fase del ciclo de vida del desarrollo.
2. Scrum: Scrum es otro método popular de desarrollo ágil a través del cual la productividad se vuelve muy alta. Básicamente se basa en un proceso de desarrollo de software incremental. En el método scrum, todo el ciclo de desarrollo se divide en una serie de iteraciones donde cada iteración se llama sprint. La duración máxima de un sprint es de 30 días.
3. Desarrollo dirigido por funciones (FDD): FDD es uno de los métodos de desarrollo ágil. La ventaja clave de este método es diseñar el dominio del software que se producirá antes del desarrollo.
Ventajas del modelo ágil
• Adaptable al entorno cambiante.
• Agile ayuda a acelerar las fases SDLC y evita los pasos del proceso que agregan poco valor al proyecto.
• Involucra a los interesados continuamente para que los nuevos requisitos se recopilen más rápido y no haya margen para adivinar los equipos.
• Ahorra costos, tiempo y esfuerzos al seguir la entrega de trabajo incremental iterativo y por lo tanto identificar desviaciones temprano.
• Menos documentación.
• Proporciona el resultado final de una mayor calidad del software entregado y un cliente altamente satisfecho.
Desventaja del modelo ágil
• Tiempo y pérdida de recursos debido al cambio constante de requisitos.
• Más útil para la administración que el desarrollador.
• Solo los desarrolladores senior están en una mejor posición para tomar las decisiones necesarias para el tipo de desarrollo ágil.
• Una vez que los equipos se hacen más grandes, las metodologías ágiles comienzan a fallar, ya que no se adaptan a equipos grandes, o los equipos se extienden por geografías.
• Si los proyectos son grandes, se hace difícil juzgar los esfuerzos y el tiempo requerido para el proyecto en el ciclo de vida de desarrollo de software.
——————————–
Artículos Relacionados:
Modelo de cascada
Modelo V
Modelo espiral
Modelo prototipo