Ingeniería de Software I Plan de iteraciones RUP 1 Proceso Iterativo e Incremental El ciclo de vida iterativo se basa en la evolución de prototipos ejecutables que se muestran a los usuarios y clientes (miniproyectos) En el ciclo de vida iterativo a cada iteración se reproduce el ciclo de vida en cascada a menor escala Los objetivos de una iteración se establecen en función de la evaluación de las iteraciones precedentes Proceso Iterativo e Incremental Las actividades se encadenan en una mini-cascada con un alcance limitado por los objetivos de la iteración Req. Análisis Diseño Imple. n veces Pruebas e Integración Despliegue 2 Proceso Iterativo e Incremental Cada iteración comprende: Planificar la iteración (estudio de riesgos) Análisis de los Casos de Uso y escenarios Diseño de opciones arquitectónicas Codificación y pruebas. La integración del nuevo código con el existente de iteraciones anteriores se hace gradualmente durante la construcción Proceso Iterativo e Incremental Cada iteración comprende: Evaluación de la entrega ejecutable (evaluación del prototipo en función de las pruebas y de los criterios definidos) Preparación de la entrega (documentación e instalación del prototipo) Cada una de las cuatro fases termina con hito principal. 3 Plan de iteraciones El número de iteraciones planeado para cada fase depende, básicamente de la complejidad del sistema propuesto. Un proyecto simple puede realizarse con una sola iteración por fase. Plan de iteraciones (Proyecto complejo) Fase de Inicio: una iteración, principalmente dedicada a definir el ámbito del sistema Fase de elaboración: dos iteraciones, la primera para esbozar la arquitectura y la segunda para completar la línea base de la arquitectura 4 Plan de iteraciones Fase de construcción: dos iteraciones, para asegurar que los incrementos resultantes funcionan satisfactoriamente Fase de transición: una iteración Fases, Base Line, Versión, Release ciclo de desarrollo base line (release asociada a un hito) versión (subconjunto de artefactos estable y ejecutable) ciclo de evolución release (producto al final de una iteración, lanzado para su puesta en producción) 5 Base Line Conjunto de artefactos revisados y aprobados que constituyen una base convenida para la evolución y desarrollo adicional y que se puede cambiar solamente a través de la administración de cambios. Asegurarse qué subsistemas, cuándo alcanzan un nivel especifico de la madurez, son la línea base para que esté disponible para el release (“liberación”), o la reutilización en iteraciones subsecuentes del proyecto y/o otros proyectos. Base Line Se considera como candidato para una Línea Base el conjunto de archivos y directorios bajo control de versión que son desarrollados, integrados y puestos juntos en un release. Una línea base se crea al final de cada iteración 6 Versiones Identifican el estado de un elemento de configuración o una configuración en un punto definido en el tiempo Conjunto de artefactos relativamente completo y consistente –que incluye posiblemente una construcción- entregado a un usuario interno o externo; Versiones La mayoría de los programas grandes se desarrollan en release evolutivos. Un release podría estar en uso del cliente, mientras que otro está en prueba, y el tercero todavía está en el desarrollo. Si se encuentran problemas en cualquiera de las versiones, los arreglos necesitan ser propagados entre ellas. La confusión puede acrecentarse conduciendo a arreglos costosos y retrabajo a menos de que los cambios sean cuidadosamente controlados y supervisados. 7 Release Es una versión que se ha puesto disponible a los usuarios. La frecuencia y la formalidad de los releases son descritos en el plan del CM (Configuration Management ). El grado de la formalidad es claramente mucho más alto para un producto que es liberado a un cliente, que el que es generado para la estructura o la revisión siguiente de la iteración. Release Regularmente está asociado a un baseline de una configuración 8 Esfuerzo y dedicación por Fases en RUP Tiempo Dedicado Inicio Elaboración 10 % 30 % Construcción Transición 50 % 10% Si la duración fuera de 7 meses (28 semanas) Inicio Elaboración Construcción Transición Tiempo Dedicado 10 % 30 % 50 % 10% Semanas 2.8 8.4 14 2.8 9 Distribución de Recursos por Fases en RUP Cómo planear las iteraciones del Sistema de Inscripción Consultar Historial Academi co Mantener informaci on Materias Inscribi rse en cursos Estudi ante Mantener informacion Profesor Login Profesor Ofi cial de regi stro Mantener la informaci on del Estudiante Registrar cursos impartidos Cierre de Inscripcion Capturar calificaciones Sistema de Cobros 10 Ejemplo: Plan Iteraciones Sistema de Inscripción Fase No. Iteraciones Duración Fase de Inicio 1 3 semanas Fase de Elaboración 2 8 semanas Fase de Construcción 3 14 semanas Fase de Transición 2 3 semanas Ejemplo Release: Sistema de Inscripción Este proyecto se planea ejecutar a través de 2-4 releases. Release 1 deberá contener un mínimo de funcionalidades básicas: Release 2 deberá incluir: Login Registrar cursos impartidos Mantener información materias Mantener a la información del estudiante Mantener a la información del profesor Capturar de calificaciones de los estudiantes Consultar historial Inscribirse en cursos La funcionalidad del Release 3 aun no ha sido determinada. Sólo se anticipa que este release podría contener requerimientos adicionales a la funcionalidad existente. El reemplazamiento del Sistema de cobros y del Catálogo de Cursos está planeado para el release 4 en el 2007. 11 Detalle de las iteraciones Fase Iteración Descripción Milestone Inicio Iteración preliminar Definir el modelo de negocio, los productos de requerimientos, el plan de desarrollo de software. Revisión del modelo de negocio Elaboración Iteración E1 – Desarrollo del prototipo de la arquitectura Análisis y diseño para todos los casos de uso del Release 1 (R1). Análisis y Diseño de todos los casos de alto riesgo del release 2 (R2) Prototipo de la arquitectura Iteración E2 – Desarrollo del prototipo de la arquitectura Análisis y Diseño de todos los casos de uso restantes del release 2 (R2) Prototipo de la arquitectura Detalle de las iteraciones Fase Iteración Descripción Construcción Iteración C1– Desarrollo R1 Beta Implementar y probar todos los casos de uso para liberar la versión Beta R1 Iteración C2 – Desarrollo del R1 Implementar y probar los casos de uso restantes del R1, arreglar los defectos de la versión Beta, e incorporar los cambios. Desarrollar el Release del sistema R1. 12 Detalle de las iteraciones Fase Transición Iteración Descripción Iteración C3 – Desarrollo R2 Diseño, implementación y prueba de los casos de uso del R2. Incorporar nuevos requerimientos y defectos de R1. Desarrollar el Release del sistema R2. Iteración T1– R1 Paquetes, distribución e instalación del R1 Release. Iteración T2 – R2 Paquetes, distribución e instalación del R2. Referencias El Proceso Unificado de Desarrollo de Software, Ivar Jacobson, Grady Booch, James Rumbaugh RUP 2001 UML y Patrones, Craig Larman 13