presentacion ciclos de vida s.i
DESCRIPTION
aaaTRANSCRIPT
Procesos de desarrolloModelo Construir y corregir (Build-and-fix)CascadaPrototipo rápidoIncrementalProgramación Extrema (XP)EspiralOrientados a objetos Comparación entre los ciclos de vidaConclusiones
Procesos de desarrollo del Software (Ciclos de vida del software)
Bibliografía
Schach, Stephen. “Classical and Object-Oriented Software Engineering, with UML”. McGraw Hill, 2002, 5a edición.
Fin de la presentación
Procesos de desarrollo del Software (Ciclos de vida del software)
Modelos del Ciclo de Vida del Software
Modelo del ciclo de vida, antes conocido como modelo del proceso de desarrollo del software
Los pasos por los cuales progresa el producto– Fase de requerimientos– Fase de especificaciones– Fase de diseño– Fase de implementación– Fase de integración– Fase de mantenimiento– Retiro
Modelo Build and Fix
Problemas– No especificaciones– No diseño
Totalmente insatisfactorio
Requiere de un modelo del ciclo de vida
– Planificación– Fases– Metas
Cascada
Caracterizada por– Retroalimentación– Dirigida por documentación
Ventajas– Documentación– Más fácil mantenimiento
Desventajas– Especificaciones
Documentos pueden ser ambiguos Retroalimentación tardía Requerimientos mal entendidos
Prototipo Rápido
Modelo lineal “Rápido” Garantizar entendimiento de
requerimientos desde el inicio Desventajas:
– Puede crear la impresión de que el producto final puede generarse tan rápido como el prototipo
– El equipo puede tener la tentación de reusar el prototipo (código y diseño de baja calidad)
Tres puntos clave
No se convierte en el producto final. El prototipo por hacerse rápido NO SE REUTILIZA, se genera un producto nuevo desde cero en las siguientes fases
El prototipo rápido podría reemplazar la fase de especificaciones pero NUNCA la de diseño.
Comparación:– Cascada – intenta tener el producto correcto en una primera vez– Prototipo rápido – cambios frecuentes, después desecharlo
Modelos de Cascada y de Prototipo rápido
Cascada– Muchós éxitos– Problemas con las necesidades del cliente
Prototipo rápido– No muy probado– Tiene sus propios problemas
Solución– Prototipo rápido para la fase de requerimientos– Cascada para el resto del ciclo de vida
Modelo incremental
Dividir el proyecto en builds
Modelo Incremental (cont)
Modelos de Cascada, prototipo rápido– Producto completo operacional sólo hasta el final
Modelo incremental– Se tiene una porción del producto de calidad operando en semanas
Menos traumático Rápido retorno de la inversión Requiere de una arquitectura abierta, se puedan integrar las porciones
que se van generando a pesar de requerimientos no estáticos. Se usan variaciones de este ciclo de vida en los ciclos orientados a
objetos.
Modelo Incremental (cont)
Problemas– Peligro de caer en construir y corregir (Build-and-fix)– Si no se tiene una arquitectura definida desde un inicio problemas
para integrar y de mantenimiento
Modelo Incremental (cont)
Una versión más riesgosa no considera se entiendan los requerimientos más importantes y se tenga una visión entera del proyecto, sino ir avanzando en los requerimientos en cada build— las piezas podrían no coincidir!
– Peligro de codificar un poco, probar un poco CABTAB (code a bit test a bit)
Programación Extrema (Xtreme Programming)
Nueva metodología algo controversial Dirigida por historias (stories) o requerimientos que el
cliente desea. Estima la duración y costo de cada historia Selecciona historias para el siguiente build Cada build está dividido en tareas. Los casos de prueba para cada tarea se establecen
primero. Programación en parejas. Continua integración de las tareas.
Características novedosas de XP
Las computadores se ponen en el centro de un gran cuarto divididas por cubículos.
Representantes del cliente siempre están presentes. No pueden trabajar tiempos extras dos semanas
consecutivas. Refactorización
Evaluación de XP
XP ha tenido algunos éxitos Bueno cuando los requerimientos son vagos o cambiantes. Muy pronto para evaluarse
Modelo de espiral
Forma simplificada– Modelo de cascada más análisis
de riesgo A cada fase le precede
– Búsqueda de alternativas– Análisis dse riesgo
Después de cada fase:– Evaluación– Planeación de la siguiente fase
Simplified Spiral Model
Si los riesgos no pueden resolverse el proyecto termina inmediatamente
Análisis del Modelo de Espiral
Fuerzas– Fácil juzgar cuánto probar– No hay distinción entre desarrollo y mantenimiento.
Debilidades– Sólo para software de gran escala– Sólo para uso interno (in-house), es decir el equipo
desarrollador es del mismo cliente.
Modelos de ciclos de vida Orientados a Objetos
Necesidad de iteración dentro y entre las fases– Modelo de fuente– Proceso Unificado (Unified software development process -
UP-)
Todos incorporan alguna forma de – Iteración– Paralelistmo– Desarrollo incremental
Peligro– CABTAB (code a bit test a bit)
Fountain Model
Características:– Paralelisto (parte de una fase
ocurre al mismo tiempo que otra)
Permite iteracioens Ciclo de mantenimiento más
corto
P re lim in a ry
Ite ra tio n (s )ite r.
# 1
ite r.
# 2
ite r.
# n
ite r.
#n + 1
ite r.
# n +2
ite r.
# m
ite r.
#m +1
Inception Elaboration Construction TransitionPhases
Core Workflows
An iteration in theelaboration phase
Requirements
Design
Implementation
Test
Analysis
*Nota: esta diapositiva fue agregada a la presentación original.
Conclusiones
Diferentes modelos de ciclos de vida Cada uno sus fuerzas Cada uno con sus debilidades Criterio para decidir cuál modelo incluye:
– La organización– Sus directivos– Habilidades de los empleados– Naturaleza del producto– Tamaño del proyecto– Variabilidad de los requerimientos
Mejor sugerencia:– Mezclar y ajustar el modelo de ciclo de vida