5 ciclos de vida del software(fixed)

23
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)

Upload: rockrlos

Post on 07-Jul-2015

4.837 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 5   ciclos de vida del software(fixed)

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)

Page 2: 5   ciclos de vida del software(fixed)

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

Page 3: 5   ciclos de vida del software(fixed)

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

Page 4: 5   ciclos de vida del software(fixed)

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

Page 5: 5   ciclos de vida del software(fixed)

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)

Page 6: 5   ciclos de vida del software(fixed)

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

Page 7: 5   ciclos de vida del software(fixed)

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

Page 8: 5   ciclos de vida del software(fixed)

Procesos de desarrollo del Software (Ciclos de vida del software)

Modelo incremental

• Dividir el proyecto en builds

Page 9: 5   ciclos de vida del software(fixed)

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.

Page 10: 5   ciclos de vida del software(fixed)

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

Page 11: 5   ciclos de vida del software(fixed)

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)

Page 12: 5   ciclos de vida del software(fixed)

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.

Page 13: 5   ciclos de vida del software(fixed)

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

Page 14: 5   ciclos de vida del software(fixed)

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

Page 15: 5   ciclos de vida del software(fixed)

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

Page 16: 5   ciclos de vida del software(fixed)

Procesos de desarrollo del Software (Ciclos de vida del software)

Simplified Spiral Model

• Si los riesgos no pueden resolverse el proyecto termina inmediatamente

Page 17: 5   ciclos de vida del software(fixed)

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.

Page 18: 5   ciclos de vida del software(fixed)

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)

Page 19: 5   ciclos de vida del software(fixed)

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

Page 20: 5   ciclos de vida del software(fixed)

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.

Page 21: 5   ciclos de vida del software(fixed)

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

Page 22: 5   ciclos de vida del software(fixed)

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.

Page 23: 5   ciclos de vida del software(fixed)

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)