El documento resume varios modelos de procesos de desarrollo de software, incluyendo modelos iterativos e incrementales, el modelo en espiral, modelos evolutivos, el modelo incremental y modelos ágiles. Describe las características clave de cada modelo y algunas de sus ventajas y desventajas. También explica brevemente algunas metodologías ágiles populares como la programación extrema y el desarrollo de software adaptativo.
2. 2
DESARROLLO ITERATIVO E
INCREMENTAL
Iterativo: cada vez re-visitamos las etapas del modelo en
cascada, rehacemos, refinamos y extendemos lo
hecho.
Incremental: regularmente integramos los avances para
generar una versión con sentido para el cliente.
3. MODELO ESPIRAL:
• Puede considerarse como un meta modelo
de proceso.
• Aparece el análisis de riesgo.
• Se divide en un número de actividades
estructurales.
• En el modelo de Boehm aparecen 4 regiones
de tareas: Planificación, Análisis de riesgos,
Ingeniería, Evaluación del cliente.
• El avance se realiza desde el centro de la
espiral hacia el exterior.
MODELOS EVOLUTIVOS
Son modelos que se adaptan a la evolución que sufren los
requisitos del sistema en función del tiempo
Es un modelo de proceso de software evolutivo,
que proporciona el potencial para el desarrollo
rápido de versiones incrementales del software.
4. MODELO INCREMENTAL
Modelo de desarrollo concurrente
Desarrollo evolutivo
Se puede expresar de manera esquematizada.
Las actividades llevan procesos concurrentes.
Es aplicable a todo tipo de desarrollo de software.
Es un modulo aplicable para cliente soñador.
Esta dirigido por las necesidades del usuario.
Es aplicable al cliente servidor.
Se evitan proyectos largos y se
entrega “algo de valor” a los
usuarios con cierta frecuencia.
El usuario se involucre más.
Difícil de evaluar el costo total.
Difícil de aplicar a los sistemas
transaccionales que tienden a ser
integrados y a operar como un
todo.
Requiere gestores
experimentados.
Los errores en los requisitos se
detectan tarde.
El resultado puede ser muy
positivo.
5. MODELO DE PROCESO AGIL
Los procesos ágiles constituyen un nuevo enfoque en el desarrollo de
software cuyas principales características son:
Menor énfasis en el análisis, diseño y documentación
Equipos pequeños
Desarrollo incremental
Programación (planificación temporal) en cajas de tiempo
Supervivencia en un entorno caótico.
6. TIPOS DE METODOLOGIA
• Algunos ejemplos de metodología ágil :
• Programación extrema (ejemplo mas exitosos de metodologías agiles)
• Scrum
• Crystal
• Evolutionary Project Management (Evo)
• Feature Driven Development (FDD)
• Adaptive Software Developmen(ASD)
• Lean Development (LD) y Lean Software Development (LSD)
• Proceso Unificado de Desarrollo Software
7. • PROGRAMACIÓN EXTREMA :
Es el desarrollo de software basado en el modelo incremental está
indicado para equipos de tamaño mediano o pequeño requisitos
imprecisos y cambiantes.
CARACTERÍSTICAS:
El juego de la planificación
Versiones pequeñas
Programación en parejas
Propiedad colectiva
Metáfora
Diseño sencillo
Hacer pruebas
8. • DESARROLLO DE SOFTWARE ADAPTIVO
Es basado en la colaboración y orientado al desarrollo de sistemas
complejos.
Fases de ciclo de vida:
ESPECULACIÓN
-Inicio del proyecto
-Planificación del ciclo adaptativo: enunciado, restricciones y requisitos básicos
-Plan de lanzamiento: definición de un conjunto de ciclos (incrementos)
COLABORACIÓN
-Construir la funcionalidad definida en la fase anterior
-Uso de técnicas JAD (Joint Application Development) y trabajo colaborativo
APRENDIZAJE
-Revisión de calidad al final de cada ciclo
-Aprendizaje