View
4.845
Download
3
Category
Preview:
Citation preview
Administración de Proyectos de desarrollo de Software
Ciclo de vida de un proyecto
Enfoque moderno
Procesos de desarrollo• Modelo Construir y corregir (Build-and-fix)• Cascada• Prototipo rápido• Incremental• Programación Extrema (XP)• Espiral• Orientados a objetos • Comparación entre los ciclos de vida• Conclusiones
Procesos de desarrollo del Software (Ciclos de vida del software)
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
Procesos de desarrollo del Software (Ciclos de vida del software)
Modelo Build and Fix
• Problemas– No especificaciones– No diseño
• Totalmente insatisfactorio
• Requiere de un modelo del ciclo de vida– Planificación– Fases– Metas
Procesos de desarrollo del Software (Ciclos de vida del software)
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
Procesos de desarrollo del Software (Ciclos de vida del software)
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)
Procesos de desarrollo del Software (Ciclos de vida del software)
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
Procesos de desarrollo del Software (Ciclos de vida del software)
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
Procesos de desarrollo del Software (Ciclos de vida del software)
Modelo incremental
• Dividir el proyecto en builds
Procesos de desarrollo del Software (Ciclos de vida del software)
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.
Procesos de desarrollo del Software (Ciclos de vida del software)
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
Procesos de desarrollo del Software (Ciclos de vida del software)
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)
Procesos de desarrollo del Software (Ciclos de vida del software)
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.
Procesos de desarrollo del Software (Ciclos de vida del software)
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
Procesos de desarrollo del Software (Ciclos de vida del software)
Evaluación de XP
• XP ha tenido algunos éxitos• Bueno cuando los requerimientos son vagos o cambiantes. • Muy pronto para evaluarse
Procesos de desarrollo del Software (Ciclos de vida del software)
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
Procesos de desarrollo del Software (Ciclos de vida del software)
Simplified Spiral Model
• Si los riesgos no pueden resolverse el proyecto termina inmediatamente
Procesos de desarrollo del Software (Ciclos de vida del software)
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.
Procesos de desarrollo del Software (Ciclos de vida del software)
Modelos de ciclos de vida Orientados a Objetos
• Necesidad de iteración dentro y entre las fases– Modelo de fuente– Round-trip gestalt– 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)
Procesos de desarrollo del Software (Ciclos de vida del software)
Fountain Model
• Características:– Paralelisto (parte de una fase
ocurre al mismo tiempo que otra)
• Permite iteracioens• Ciclo de mantenimiento más corto
Procesos de desarrollo del Software (Ciclos de vida del software)
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.
Procesos de desarrollo del Software (Ciclos de vida del software)
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
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.
Administración de Proyectos de desarrollo de Software
Ciclo de vida de un proyecto
Enfoque moderno
Fin de la presentación
Continúe en la siguiente actividad
Procesos de desarrollo del Software (Ciclos de vida del software)
Recommended