UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte)



Documentos relacionados
Ejercicio Guiado de Análisis y Diseño Orientado a Objetos. Ejemplo: CAJERO AUTOMÁTICO

El Proceso Unificado de Desarrollo de Software

PROCESO UNIFICADO CAPTURA DE REQUISITOS

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar

El proceso unificado en pocas palabras

OMG UML 2.0 Marcando un hito en el desarrollo de software Resumen Keywords Historia del Surgimiento

ANÁLISIS Y DISEÑO DE SISTEMAS DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN

Gestión y Desarrollo de Requisitos en Proyectos Software

Plan de estudios ISTQB: Nivel Fundamentos

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

COPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE

Sistemas de Información II. Introducción al Proceso Unificado de Desarrollo de Software. Autor: Ing. Silverio Bonilla 1

6 Anexos: 6.1 Definición de Rup:

Objetivo Las personas que realicen el curso aprenderán a:

Ingeniería de Software: Parte 2

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

Primer avance de proyecto de software para la gestión de inscripciones en cursos

Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL

Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática

Metodología básica de gestión de proyectos. Octubre de 2003

El Proceso Unificado Rational para el Desarrollo de Software.

DCU Diagramas de casos de uso

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

Elementos requeridos para crearlos (ejemplo: el compilador)

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Metodologías de Desarrollo de Sistemas de Información

I. T. en Informática de Sistemas. Facultad de Informática

DESARROLLO DE SOFTWARE DEFINICIÓN GENERAL DEL PROCESO GABY LORENA GUERRERO LEYDI ROCIO ERAZO PABLO FELIPE MIRANDA WALTER ALEXIS ANTE

INGENIERÍA DEL SOFTWARE I Práctica 4 Interacciones

Patrones de software y refactorización de código

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Modelado Avanzado con Casos de Uso. Diseño de Software Avanzado Departamento de Informática

Ingeniería de Software I

Ingeniería del Software. Diseño. Diseño en el PUD. Diseño de software. Patrones arquitectónicos. Diseño Orientado a Objetos en UML

Entidad Formadora: Plan Local De Formación Convocatoria 2010


Administración de proyectos. Organizar, planificar y programar los proyectos de software

Ing. Norman Vargas Chévez Facultad de Electrotecnia y Computación Universidad Nacional de Ingeniería norman.vargas@uni.edu.

PRU. Fundamento Institucional. Objetivos. Alcance

Resumen obtenido de: Roger S. Pressman, Ingeniería de Software. Un enfoque práctico, quinta edición, Introducción al Diseño de Software

UML, ejemplo sencillo sobre Modelado de un Proyecto

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado

DIAGRAMA DE CLASES EN UML

Los requisitos de un Sistema de Información

PUD: Proceso de Desarrollo Unificado

Anteproyecto Fin de Carrera

Gestión de Configuración del Software

INFORME Nº1 PROPUESTA METODOLÓGICA Y PLAN DE TRABAJO DESARROLLO DE UN SISTEMA INTEGRADO DE GESTIÓN PARA EL GOBIERNO REGIONAL DE ATACAMA

Fundamentos de Ingeniería del Software. Capítulo 3. Análisis de Requisitos Introducción a los casos de uso

Planificación de Sistemas de Información

PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO...

Planificación de Sistemas de Información

Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

Desarrollo de un Sistema de Gestión de Proyectos mediante el framework GWT

ITZOFT, una metodología de desarrollo de sistemas basada en el Proceso Unificado de Rational. Resumen

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre

Mantenimiento de Sistemas de Información

2.- Diseño del comportamiento: Diagrama de actividades. Mª Antonia Zapata

Ejemplo de desarrollo software empleando UML

Propuesta Matriz de Actividades para un Ciclo de Vida de Explotación de Datos

Ejemplo de Análisis Orientado a Objetos ATMs

DISEÑO DE FUNCIONES (TRATAMIENTOS)

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática

Análisis del Sistema de Información

DISEÑO DE COMPONENTES DE SOFTWARE *

Unidad III. Planificación del proyecto de software

Índice.

Implantación y Aceptación del Sistema

Planificación, Gestión y Desarrollo de Proyectos

SISTEMA DE ESPECIICACION DE REQUERIMIENTOS

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0

Metodología Orientada a Objetos Clave Maestría en Sistemas Computacionales

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Unidad VI: Supervisión y Revisión del proyecto

SINAUTO. (Captura Requirimientos) GRUPO 03

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.1 UML: Introducción

PLAN DE MEJORAS. Herramienta de trabajo. Agencia Nacional de Evaluación de la Calidad y Acreditación

TEMA 7: DIAGRAMAS EN UML

Fundamentos del diseño 3ª edición (2002)

Operación 8 Claves para la ISO

El Proceso Unificado de Desarrollo de Software

Capitulo III. Diseño del Sistema.

Planificación, Administración n de Bases de Datos. Bases de Datos. Ciclo de Vida de los Sistemas de Información. Crisis del Software.

Arquitectura de Aplicaciones

Testing. Tipos, Planificación y Ejecución de Pruebas

Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos:

INGENIERÍA DE SOFTWARE CICLOS DE VIDA Y METODOLOGIAS

Syllabus.

Diseño de Sistemas Universidad CAECE Año 2005

Gestión de la Configuración

Figure 7-1: Phase A: Architecture Vision

Estándares para planes de calidad de software. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008

5. Gestión de la Configuración del Software (GCS)

EXÁMEN DE VALIDACIÓN DE COMPETENCIAS PROFESIONALES DE PARADIGMAS DE DESARROLLO DE SOFTWARE

Área Académica: Sistemas Computacionales. Profesor: I.S.C. Guadalupe Hernández Coca

Unidad 9. Implementación. M.C. Martín Olguín

Ingeniería de Software. Pruebas

INGENIERÍA DEL SOFTWARE I Tema 8. Contexto y Requisitos del Sistema (en desarrollo OO)

rg.o El l c i c c i l c o l o de d vi v d i a d a cm a l@ rza e de d u n u n si s s i t s e t ma m a de d in i f n or o ma m c a i c ó i n ó b

Transcripción:

UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) The unified software development process, Ivar Jacobson, Grade Booch, James Rumbaug, Ed. Addison Wesley, 1999 El proceso unificado de desarrollo, Ivar Jacobson, Grade Booch, James Rumbaug, Ed. Addison Wesley, 1999 Ingeniería del Software 1

Un ejemplo: el Proceso Unificado Características del Proceso Unificado Flujos de trabajo fundamentales Iteración genérica Planificar Gestionar los riesgos Recursos Evaluar Ingeniería del Software 2

Un ejemplo: el Proceso Unificado Características del Proceso Unificado UML Basado en casos de uso Centrado en la arquitectura Iterativo-Incremental Modelos del proceso Flujos de trabajo fundamentales Iteración genérica Planificar Gestionar los riesgos Recursos Evaluar Ingeniería del Software 3

El Proceso Unificado (UP) Unificación de tres metodologías de desarrollo basadas en el paradigma orientado a objetos. OOSE: Object Oriented Software Engineering (Casos de Uso) Jacobson, I. Booch (Diseño) Booch, G. OMT: Object Modeling Technique (Análisis) Rumbaugh, J. Ingeniería del Software 4

El Proceso Unificado (UP) Es más que un proceso de desarrollo software un marco de trabajo que puede especializarse Basado en componentes conectados a través de interfaces Utiliza UML - Unified Modeling Language Dirigido por casos de uso Centrado en la arquitectura Iterativo e incremental Ingeniería del Software 5

UML UML es un lenguaje de modelado Permite la construcción de distintos modelos Diagramas de Clase, Diagramas de Casos de Uso, etc. Es autodescriptivo porque puede especificarse por medio de un diagrama de clases de UML. Bloques de construcción: Elementos: bloques básicos Relaciones: ligan los elementos Diagramas: agrupan colecciones de elementos ligados, aportando un significado adicional Ingeniería del Software 6

UML - Elementos y relaciones Elementos: Estructurales: Clases, Casos de Uso, Comportamiento: Interacción, Estados... Agrupación: Paquetes Anotación: Notas Relaciones: Dependencia (Relación de Uso) Asociación (Relación estructural) Generalización (Representación de la herencia.) Realización Ingeniería del Software 7

UML - Diagramas Ofrecen distintas perspectivas de una abstracción de la realidad Un mismo elemento puede aparecer en distintos diagramas En el modelo de un sistema no hay motivo para que aparezcan obligatoriamente todos los elementos. Estáticos(estructura) D. de Clases D. de Objetos D. de Componentes D. de Despliegue Dinámicos(comportamiento) Casos de Uso Secuencia Colaboración Estados Actividades Interacción Ingeniería del Software 8

Diagrama de clases Motor Piloto Vendedor de billetes 1..4 1..2 1 1 Avión * 1 * Vuelo 1 * * Reserva { disjunta, completa } * Avión militar Avión comercial 1 Línea aérea { disjunta, completa } Avión de carga Avión de pasajeros Ingeniería del Software 9

Diagramas de Componentes Interfaz de Terminal Comment Control y Análisis Comment Gestión de Cuentas Comment Rutinas de Coneccion Comment Acceso a BD Comment Ingeniería del Software 10

Diagramas de Despliegue Servidor Central Acceso a BD Control y Análisis Comment Comment Rutinas de Coneccion Comment Terminal de Consulta Rutinas de Coneccion Comment Interfaz de Terminal Comment Punto de Venta Rutinas de Coneccion Comment Gestión de Cuentas Comment Interfaz de Terminal Comment Ingeniería del Software 11

Diagrama de casos de uso V enta Normal Cliente Venta en Rebajas Vendedor V enta en Oferta Ingeniería del Software 12

Diagrama de estados Esperando t arjeta tarjeta int ro ducida Leyendo tarjeta Esperando PIN Recogiendo tarjeta [ > 3 intentos ] PIN introducido( PIN ) Validando PIN [ correcto ] [ incorrec to ] Es perando opción Ingre sando ingreso( importe ) transferencia( cuenta, importe ) reintegro( importe ) Transferencia Reintegrando [ Not OK ] [ OK ] Expulsando dinero dinero retirado Expulsar Ingeniería del Software tarjeta 13

Diagrama de colaboración 5: cuenta dest ino 3: cantidad 1: transferencia 6: t rans ferencia (cuenta, cantidad) 11: OK : Cliente del banco : Interfaz de cajero : Transacción 2: teclee cant idad 4: teclee cuenta destino 12: transferencia realizada 8: OK 7: reintegro (cantidad) 9: ingreso (cantidad) 10: OK c uentaorigen : Cuenta c uentades tino : Cuenta Ingeniería del Software 14

Diagramas de Secuencia : Socio : Encargado : Libro : Ficha socio : Ficha libro : Préstamo Coger libro Solicitar préstam o Verificar situación socio Sit uación socio ok Verificar situación libro Situación libro ok Introducir préstamo Aut orizar prést amo Ingeniería del Software 15

Diagramas de actividad Pasajero Vendedor Airline Solicitar pasaje Verificar existencia vuelo Dar detalles vuelo Seleccionar vuelo Informar alternativas y precios Solicitar pago Reservar plazas Pagar pasaje Confirmar plaza reservada Emitir billete Ingeniería del Software 16

Dirigido por casos de uso Usuario: alguien o algo. Una interacción con el usuario es un caso de uso. Un caso de uso: Es una función del sistema que da al usuario un resultado útil. Captura los requisitos funcionales. Qué debe hacer el sistema para cada usuario? Modelo de casos de uso. Conducen el proceso de desarrollo: Modelos de diseño e implementación. Pruebas. Se desarrollan y evolucionan junto a la arquitectura del sistema. Ingeniería del Software 17

Centrado en la arquitectura Edificio: estructura, servicios, electricidad, fontanería,... Agrupa aspectos estructurales y dinámicos significativos Influencias: plataforma (BBDD, SO, protocolo de comunicación,...), aspectos legales, componentes reusables disponibles, requisitos no funcionales,... Es una vista del diseño completo que hace visibles las características principales. Cómo se relacionan casos de uso y arquitectura? Función y forma Ingeniería del Software 18

Centrado en la arquitectura Tareas: Crear una arquitectura inicial no específica de los casos de uso. Trabajar con un conjunto seleccionado de casos de uso que representan las tareas clave del sistema. Caso de uso - subsistemas, clases y componentes. Evolución. Ingeniería del Software 19

Iterativo - Incremental División del proyecto. Una iteración produce un incremento. Iteraciones controladas. Factores para la selección en una iteración: La iteración trata un grupo de casos que extienden la funcionalidad. La iteración trata los riesgos más importantes. Incremento no siempre es aditivo. Cada iteración: casos relevantes-diseño quiado por arquitecturaimplementar-verificar Beneficios. Ingeniería del Software 20

Iterativo - Incremental Varios ciclos que concluyen con un producto. Código fuente, manuales y documentos. Hitos por fases (Milestones) Ingeniería del Software 21

El proceso Papeles y actividades Analista de Sistemas Descubre Actores y Casos de Uso Estructura Modelo de Casos de Uso Planifica Test Diseña Test Evalua Test Ingeniero de pruebas Especifica Casos de Uso Detalla un Caso de Uso Integra Sistema Integrador de Sistemas Diseñador de Interface de Usuario Prototipo del Interfaz de Usuario Ejecuta Test de Integración Ingeniero de pruebas de integración Arquitecto Prioriza Casos de Uso Análisis de Arquitectura Diseño de Arquitectura Implementación de Arquitectura Ingeniero de Ejecuta test pruebas de del sistema sistema Ingeniero de Casos de Uso Analiza un Caso de Uso Diseña un Caso de Uso Ingeniero de Componentes Analiza una Clase Analiza un Paquete Diseña una clase Diseña un Subsistema Implementa Subsistema Implementa una clase Ejecuta Test Unitario Implementa Test Ingeniería del Software 22

El proceso El producto (salidas) # # $ %! #! # % #! & # & '(& " #! ) Ingeniería del Software 23

El proceso Fases, iteraciones y actividades, -. * $ * $++ " # # / / / 0 / 1 / 2 / 3 / 4 '$ 5 67 7 7( Ingeniería del Software 24

El proceso Fases, iteraciones y actividades Una Fase es un intervalo de tiempo entre dos hitos importantes del proceso donde: Se cumple un conjunto definido de objetivos Se completan artefactos Se toman decisiones de continuar o no Iniciación, Elaboración, Construcción, Transición Dentro de cada fase hay varias iteraciones Una iteración representa un ciclo de desarrollo completo. El énfasis en cada flujo de trabajo es diferente dependiendo de la fase Ingeniería del Software 25

El proceso Fases, iteraciones y actividades Ingeniería del Software 26

Un ejemplo: el Proceso Unificado Características del Proceso Unificado Flujos de trabajo fundamentales Requisitos Análisis Diseño Implementación Pruebas Iteración genérica Planificar Gestionar los riesgos Recursos Evaluar Ingeniería del Software 27

Captura de requisitos La captura de requisitos es complicada Creamos código para otros Los usuarios no los conocen y les cuesta especificarlos de forma precisa Suelen ser varios usuarios sin una visión global Los requisitos cambian Las condiciones en las que se especifico un requisito varian Ingeniería del Software 28

Captura de requisitos Objetivo: guiar el desarrollo hacia el sistema correcto El cliente debe ser capaz de leer y comprender el resultado de la captura El resultado ayuda al jefe de proyecto a planificar las iteraciones y los recursos Usuarios muy diferentes Puntos de partida Diferentes Se deben reducir los riesgos Ingeniería del Software 29

Captura de requisitos Pasos a seguir Enumerar los requisitos candidatos Comprender el contexto del sistema Capturar requisitos funcionales Capturar requisitos no funcionales Se realizan de forma conjunta Ingeniería del Software 30

Captura de requisitos TAREA Enumerar requisitos candidatos Entender el contexto del sistema Capturar requisitos funcionales Capturar requisitos no funcionales PRODUCTOS (artifact) Lista de características Modelo de negocio o de dominio Modelo de casos de uso Requisitos suplementarios o casos individuales Ingeniería del Software 31

Artefactos de requisitos Modelo de casos de uso Actores Casos de uso Varios diagramas para diferentes perspectivas Descripción de la arquitectura Glosario Prototipo de la interfaz de usuario 1 Modelo de casos de uso Sistema de casos de uso * * Caso de uso Ingeniería del Software 32 $

Artefactos de requisitos Ingeniería del Software 33

Flujo de trabajo de la captura de requisitos funcionales (Actividades) Ingeniería del Software 34

Flujo de trabajo de la captura de requisitos funcionales (Actividades) Encontrar actores y casos de uso! " #$ Ingeniería del Software 35

Flujo de trabajo de la captura de requisitos funcionales (Actividades) Priorizar casos de uso! % Ingeniería del Software 36

Flujo de trabajo de la captura de requisitos funcionales (Actividades) Detallar un caso de uso! Ingeniería del Software 37

Flujo de trabajo de la captura de requisitos funcionales (Actividades) Prototipar la interfaz de usuario! Ingeniería del Software 38

Flujo de trabajo de la captura de requisitos funcionales (Actividades) Estructurar el modelo de casos de uso! Ingeniería del Software 39

Caso de uso Validar usuario Flujo de eventos ACCIÓN DEL ACTOR 1. Este caso de uso empieza cuando un Cliente introduce una tarjeta en el cajero 3. Introduce la clave RESPUESTA DEL SISTEMA 2. Pide la clave de identificación 4. Comprueba la clave 5. Si es válida presenta las opciones disponibles y se termina el caso de uso CAMINOS ALTERNATIVOS Línea 3. El cliente cancela la transacción Línea 4. La clave no es válida y se reinicia el caso de uso. Si ocurre tres veces se cancela la transacción y no se devuelve la tarjeta HAY QUE DEFINIR ESTOS DOS FLUJOS DE EVENTOS!! Ingeniería del Software 40

Caso de uso Sacar dinero Flujo de eventos ACCIÓN DEL ACTOR RESPUESTA DEL SISTEMA 1. Este caso de uso empieza cuando un Cliente ha sido identificado Presenta las opciones de operaciones disponible 2. Selecciona la operación de Reintegro 4. Introduce la cantidad requerida 6. Recoge la tarjeta. 7. Recoge el recibo 8. Recoge el dinero y termina el CU 3. Pide la cantidad a retirar. 5. Procesa la petición y da el dinero solicitado. Devuelve la tarjeta y genera un recibo Ingeniería del Software 41

Caso de uso Sacar dinero Flujo de eventos CAMINOS ALTERNATIVOS Línea 5: La cantidad solicitada supera el saldo. Se indica el error y se cancela la operación. Línea 5: La cantidad solicitada supera el límite diario. Se indica el error y se vuelve a pedir otra cantidad. Línea 5: En el cajero no hay dinero. HAY QUE DEFINIR ESTOS TRES FLUJOS DE EVENTOS!! Podríamos definir diagramas de estados Requisito no funcional asociado al caso de uso Sacar dinero: El tiempo de respuesta para un cliente debe ser <30 sg en el 90% de los casos Ingeniería del Software 42

Ejemplo. Cajero automático " 606 8 + 99:;; + ) 16 Ingeniería del Software 43

Análisis Se trabaja con conceptos Especificación más precisa de los requisitos Se utiliza el lenguaje de desarrolladores Facilita comprensión, preparación, modificación y mantenimiento de requisitos Primera aproximación al modelo de diseño Ingeniería del Software 44

Artefactos de análisis ( ( '! &' ' ' Ingeniería del Software 45

Artefacto: Modelo de Análisis * * ) ' ' * * * * '! &' Ingeniería del Software 46

Artefacto: Clases de Análisis Una clase de análisis representa una abstracción de una o mas clases del diseño del sistema Se centra en el tratamiento de los requisitos funcionales Son evidentes en el dominio del problema. Sus atributos, operaciones y relaciones están a un nivel mayor de abstracción. Pueden clasificarse fácilmente en clases de entidad, interfaz y de control. Ingeniería del Software 47

Artefacto: Clases de Análisis ' Ingeniería del Software 48

Artefacto: Realización de caso de usoanálisis Define como se lleva a cabo y se ejecuta un caso de uso en términos de clases del análisis y de sus objetos de análisis en colaboración. Una realización de caso de uso queda definida por: Diagramas de clases del análisis Diagramas de interacción de objetos del análisis Una descripción textual del flujo de sucesos Ingeniería del Software 49

Artefacto: Realización de caso de usoanálisis (Diag. De Clases) Ingeniería del Software 50

Artefacto: Realización de caso de usoanálisis (Diag. De Colaboración) Ingeniería del Software 51

Artefacto: Realización de caso de usoanálisis: (Desc. Textual) El comprador consulta a través del IU Solicitud de Pago las facturas gestionadas por el sistema para encontrar las recibidas (1,2). El IU Solicitud de Pago utiliza el Gestor de Pedidos para comprobar las facturas con sus correspondientes confirmaciones de pedido Ingeniería del Software 52

Artefacto: Paquete del análisis Proporcionan un medio para organizar los artefactos del modelo de análisis en piezas manejables. Son cohesivos y débilmente acoplados Basados en los requisitos funcionales y en el dominio del problema. Generan subsistemas del diseño * ' * ' *! & ' Ingeniería del Software 53

Artefacto: Descripción de la Arquitectura Contiene una Vista de la arquitectura del modelo de análisis Descomposición del modelo en paquetes Clases fundamentales: De entidad, importante en dominio De interfaz, comunicación importante De control, con amplia cobertura Generales, centrales y con muchas relaciones Realizaciones de casos de uso Ingeniería del Software 54

Flujo de trabajo del análisis 1. Análisis de la arquitectura Identificar paquetes de análisis Identificar clases de entidad Requisitos comunes 2. Analizar (refinar) un caso de uso Identificar clases de análisis Describir interacciones entre los objetos del análisis Capturar req. especiales sobre la realización del CU 3. Analizar una clase Identificar responsabilidades y atributos Identificar relaciones: asoc., agreg. y gener. Capturar req. especiales sobre la realización del CU 4. Analizar un paquete Ingeniería del Software 55

Actividades ' ( ( Ingeniería del Software 56

Actividades: Análisis de la Arquitectura '! ' ' % % ' Ingeniería del Software 57

Actividades: Analizar un caso de uso! (! & ' % ' ' Ingeniería del Software 58

Actividades: Analizar una clase! & ' ( ' ' Ingeniería del Software 59

Actividades: Analizar un paquete % ' ( ' ' Ingeniería del Software 60

Análisis del caso de uso: Validar usuario Validar usuario Realización en análisis Interfaz de caj ero UsuariosDelB anc o (from Logical View) A utenticar (from L ogi cal Vie w) Ingeniería del Software 61

Análisis del caso de uso: Validar usuario Secuencia correcta 3: código 1: introducir tarjeta 4: autentica (datos, código) : Cliente del banco 7: visualiza (opciones) 2: teclear código: Interfaz de cajero : Autenticar 5: valida (datos, codigo) 8: seleccioneopcion (opciones) 6: OK : UsuariosDelBanco Ingeniería del Software 62

Análisis del caso de uso: Validar usuario. Código incorrecto 3: código 1: introducir tarjeta 4: autentica (datos, código) : Cliente del banco 2: teclear código 8: teclear código 7: visualiza (error) : Interfaz de cajero : Autenticar 5: valida (datos, codigo) 6: Error : UsuariosDelBanco Ingeniería del Software 63

Análisis del caso de uso: Transferencia - Suponemos que el usuario ya ha sido identificado (se ha ejecutado el caso de uso anterior). - Ahora selecciona la opción transferencia. Consideramos que la cuenta origen es la de la tarjeta y hay que teclear la destino. - El importe y el número de cuenta destino deben darse juntos. Evitar condiciones de carrera: mirar primero si hay saldo y luego sacar. Transferencia Realización en análisis Interfaz de cajero Transacción Cuenta Ingeniería del Software 64

Análisis del caso de uso: Transferencia Secuencia correcta 5: cuenta destino 3: cantidad 1: transferencia 6: transferencia (cuenta, cantidad) 11: OK : Cliente del banco : Interfaz de cajero : Transacción 2: teclee cantidad 4: teclee cuenta destino 8: OK 7: reintegro (cantidad) 9: ingreso (cantidad) 12: transferencia realizada 10: OK cuentaorigen : Cuenta cuentadestino : Cuenta Ingeniería del Software 65

Análisis del caso de uso: Transferencia No hay saldo en la cuenta origen 5: cuenta destino 3: cantidad 1: transferencia 6: transferencia (cuenta, cantidad) 9: no hay fondos : Cliente del banco : Interfaz de cajero : Transacción 2: teclee cantidad 7: reintegro (cantidad) 4: teclee cuenta destino 8: no hay saldo 10: no hay fondos cuentaorigen : Cuenta Ingeniería del Software 66

Análisis del caso de uso: Transferencia No se puede acceder a la cuenta destino 5: cuenta destino 11: rollback 3: cantidad 1: transferencia 6: transferencia (cuenta, cantidad) 12: error : Cliente del banco : Interfaz de cajero : Transacción 2: teclee cantidad 4: teclee cuenta destino 8: OK 7: reintegro (cantidad) 9: ingreso (cantidad) 10: error 13: error cuentaorigen : Cuenta cuentadestino : Cuenta Ingeniería del Software 67

Modelo de clases de análisis Cliente del banco Interfaz de cajero Transacción Cuenta Autenticar UsuariosDelBanco Ingeniería del Software 68

Análisis de las clases CLASE CUENTA. Interviene en tres casos de uso: - sacar dinero reintegro (importe) - ingresar dinero ingreso (importe) - transferencia las dos operaciones anteriores atributos - - > saldo Ingeniería del Software 69

Análisis de las clases CLASE TRANSACCIÓN Interviene en cuatro casos de uso: - validar usuario autentica (datos, código) atributos - - > código cuenta - sacar dinero retirardinero (importe) - ingresar dinero ingresardinero (importe) - transferencia transferencia (cuenta, cantidad) rollback Ingeniería del Software 70

Diseño Se modela el sistema para que de soporte a los requisitos funcionales y no funcionales. Su entrada esencial es el modelo de análisis (una comprensión detallada de los requisitos) Propósitos: Profundizar en la requisitos no funcionales y restricciones dependientes de la plataforma. Crear una entrada apropiada para la implementación Descomponer los trabajos de implementación en partes mas manejables y que permitan concurrencia. Capturar las interfaces entre los subsistemas. Es el centro de atención final de la fase de elaboración e iteraciones iniciales de la fase de construcción Ingeniería del Software 71

Artefactos de diseño ( (! & ( ) Ingeniería del Software 72

Artefactos de diseño: modelo de diseño Modelo de objetos UML que contiene el diseño de la aplicación. Describe la realización física de los casos de uso: como afectan los requisitos funcionales, no funcionales y otras restricciones. * * ) ) * * * *! & * * ( Ingeniería del Software 73

Artefactos de diseño: Clase de diseño Sintaxis del lenguaje de programación Visibilidad de atributos y operaciones (public, private, protected) Traducción de las relaciones Métodos por pseudocódigo Estereotipos que se correspondan con construcciones del lenguaje de programación. Pueden realizar interfaces + ( Ingeniería del Software 74

Artefactos de diseño: Realización de un caso de uso-diseño Es una colaboración en el modelo de diseño que describe como se realiza un caso de uso en termino de clases y objetos de diseño Contenido: Diagramas de clases de realización Diagramas de interacción (clases, subsistemas, interfaces) Flujo de sucesos-diseño Requisitos de implementación, -! & '! & Ingeniería del Software 75

Artefactos de diseño: Subsistema de Diseño Para organizar los artefactos del diseño en piezas mas manejables. Debe ser cohesivo y débilmente acoplado * ) + * * * * (! Ingeniería del Software & 76

Artefactos de diseño: Interfaz Se utilizan para especificar las operaciones que proporcionan las clases y subsistemas de diseño Separan la especificación de funcionalidad en término de operaciones de sus implementaciones en términos de métodos + * + * ( ) Ingeniería del Software 77

Artefactos de diseño: Descripción de la Arquitectura Descomposición en subsistemas Traza con clases de análisis Clases fundamentales (abstractas) Clases generales y centrales Realizaciones de caso de uso Ingeniería del Software 78

Artefactos de diseño: Modelo de Despliegue Representa una correspondencia entre la arquitectura del Hardware y la arquitectura del Software Describe la distribución física del sistema en nodos de computo. Cada nodo representa un recurso de computo Las relaciones entre nodos representan medios de comunicación entre ellos. La funcionalidad de un nodo se determina por los componentes que se le asignan *. Ingeniería del Software 79

Diseño: Actividades ( ( Ingeniería del Software 80

Diseño: Actividades 1. Diseño de la arquitectura Identificar nodos y configuración, subsistemas, clases 2. Diseñar un caso de uso Identificar clases de diseño y subsistemas Distribuir comportamiento del CU Capturar requisitos de implementación 3. Diseñar una clase 4. Diseñar un subsistema Ingeniería del Software 81

Actividades: Diseño de la Arquitectura ) (! ' % ' % Ingeniería del Software 82

Actividades: Diseño de un caso de uso! ' (! & ) ( Ingeniería del Software 83

Actividades: Diseño de una clase! & ( ( ' Ingeniería del Software 84

Actividades: Diseño de un Subsistema % ( ) ) ( ( Ingeniería del Software 85

Diseño del caso de uso: Validar usuario Validar usuario Realizac ión en diseño (from Use Case View) Lec tordetarjetas Pantalla GestorDeCliente Us uariosdelb anco Teclado Transacc ión Ingeniería del Software 86

Diseño del caso de uso: Validar usuario Secuencia correcta : Cliente del banco : Lect ordetarjetas : Pantalla : Teclado : GestorDeCliente : Transacción : UsuariosDelBanco 1: leertarjeta 2: introducirtarjeta (tarjet a) 3: datostarjeta (tarjeta) 4: vis ualizar (Introducir PIN) 5: OK 7: introducirpin (PIN) 6: leerpin 8: datospin (PIN) 9: autent ic a (datos, PIN) 10: valida (datos, PIN) 11: OK 12: almacenadatos (datos) 14: visualizar (opciones) 13: visualiza (opciones) Ingeniería del Software 87

Diseño del caso de uso: Validar usuario Código incorrecto : Cliente del banco : Lect ordetarjetas : Pantalla : Teclado : GestorDeCliente : Transacción : UsuariosDelBanco 1: leertarjeta 2: introducirtarjeta (tarjet a) 3: datostarjeta (tarjeta) 4: vis ualizar (Introducir PIN) 5: OK 7: introducirpin (PIN) 6: leerpin 8: datospin (PIN) 9: autent ic a (datos, PIN) 10: valida (datos, PIN) 11: E rror 13: visualizar (error PIN) 12: visualiza (error PIN) Hay más escenarios: anular transacción y tres intentos Ingeniería del Software 88

Diseño del caso de uso: Transferencia - Suponemos que el usuario ya ha sido identificado (se ha ejecutado el caso de uso anterior). Ahora selecciona la opción transferencia. Transferenc ia (from Use Case View) Realización en diseño, trans ferenc ia Teclado 2 Pantalla GestorDeCliente Trans ac ción Cu entas Cu enta Ingeniería del Software 89

Diseño del caso de uso: Transferencia Secuencia correcta : Cliente del banco : Teclado : Pantalla : GestorDeCliente : Transacción : Cuentas : Cuenta 1: opcion (transferencia) 2: transferencia 3: visualizar (Teclee im porte) 4: IntroducirImporte 5: importe 6: visualizar (Teclee cuenta destino) 7: cuentades tino (cuenta) 8: cuentadestino (cuenta) 9: transferencia (cuentaorigen, cuentadestino,importe) 10: reintegro (cuentaorigen, importe) 11: reintegro (importe) 12: OK 13: OK 14: ingreso (cuentadestino, importe) 15: ingreso (im porte) 17: OK 16: OK 18: OK 19: vis ualizar (Transferencia realizada) 20: visualizar (Retire su tarjeta) Ingeniería del Software 90

Diseño del caso de uso: Transferencia No hay saldo en la cuenta origen : Cliente del banco : Teclado : Pantalla : GestorDeCliente : Transacción : Cuentas : Cuen ta 1: opcion (transferencia) 2: transferencia 3: visualizar (Teclee im port e) 4: IntroducirImporte 5: importe 6: visualizar (Te clee cuent a destino) 7: cuentades tino (cuenta) 8: cuentadestino (cuenta) 9: t ransferencia (cuentao rigen, cuen tadestin o,impo rt e) 10: reintegro (cuentaorigen, importe) 11: reintegro (importe) 12: no hay saldo 13: no hay saldo 14: no hay fondos 15: visualiz ar ((No hay fondos)) 16: visualizar (Retire su tarjeta) Ingeniería del Software 91

Modelo de clases de diseño CajonDinero UsuariosDelBanco Impresora Cliente del banco LectorDeTarjetas GestorDeCliente Transacción Pantalla Cuentas Teclado DarDinero Cuenta Ingeniería del Software 92

Diseño de las clases Pantalla Lec tordetarjetas vis ualizar(m ensaje : St ring) c rearpantalla() : Pantalla crearlec tor() : Lect ordetarjetas leertarjeta() : dato s Tarj eta Teclado creartec lado() : Tec lado leerpin() : unpin leeropc ion() : unaopcion leercantidad() : Dinero leernum Cuenta() : unidcuenta Im presora Gesto rdecli ente crear() : GestorDeCliente c reacajerovi rtual() inici ars esion() crearimpresora() : Im pres ora imprimir(mensaje : String) CajonDinero DarDinero crearcajon() : CajonDi nero abrircajon() crear() : DarDinero cerra rcajon() expulsar(im porte : Dinero) contarcantidad() : Dinero Ingeniería del Software 93

Diseño de las clases micliente : GestorDeCliente datostarjeta : DatosTarjeta numintentosfallidos : 1..3 = 0 cuentas : Cuentas usuarios : UsuariosDelBanco Transacción almacenardatos(datos : DatosTarjeta) validar(importe : Dinero, cantidad : Dinero) autenticar(datos : DatosTarjeta, PIN : UnPIN) : Boolean retirardinero(importe : Dinero) : Boolean ingresardinero(importe : Dinero) : Boolean trasnsferencia(cuentaorigen : Cuenta, cuentadestino : Cuenta, importe : Dinero) : Boolean GestorDeCliente mitransaccion : Transacción crear() : GestorDeCliente creacajerovirtual() iniciarsesion() visualizar(resultados : String) cuentas : Dictionary Cuentas UsuariosDelBanco usuarios : Dictionary reintegro(cuenta : Cuenta, importe : Dinero) : Boolean ingreso(cuenta : Cuenta, importe : Dinero) : Boolean validar(datos : DatosTarjeta, PIN : UnPIN) : Boolean Cuenta datos : DatosCuenta limitediario : Dinero = 50000 reintegro(importe : Dinero) : Boolean ingreso(importe : Dinero) : Boolean Ingeniería del Software 94

Clase GestorDeCliente Esperando t arjeta tarjeta int ro ducida Leyendo tarjeta Esperando PIN Recogiendo tarjeta [ > 3 intentos ] PIN introducido( PIN ) Validando PIN [ correcto ] [ incorrec to ] Es perando opción Ingre sando ingreso( importe ) transferencia( cuenta, importe ) reintegro( importe ) Transferencia Reintegrando [ Not OK ] [ OK ] Expulsando dinero dinero retirado Expulsar Ingeniería del Software tarjeta 95

Implementación Se implementa el sistema en términos de componentes: ficheros de código fuente, scripts, ficheros de código binarios, ejecutables y similares. Objetivos: planificar las integraciones de sistema necesarias en cada iteración distribuir el sistema asignando componentes ejecutables a nodos en el diagrama de despliegue implementar las clases y subsistemas encontrados durante el diseño probar los componentes individualmente, integrarlos (compilandolos y enlazandolos en uno o más ejecutables) Ingeniería del Software 96

Artefactos de implementación ( ( ( $ ( $ ( Ingeniería del Software 97

Artefactos de implementación: Modelo de Implementación Cómo los elementos del modelo de diseño (clases) se implementan en términos de componentes (ficheros de código fuente, ejecutables...) Cómo se organizan los componentes (de acuerdo con los mecanismos de estructuración y modularización del entorno de implementación y los lenguajes de programación utilizados) Cómo dependen los componentes unos de otros Ingeniería del Software 98

Artefactos de implementación: Modelo de Implementación * * ) $ ) $ * * * * ( Ingeniería del Software 99

Artefactos de implementación: Componente Empaquetamiento físico de los elementos de un modelo cada uno puede implementar varios elementos dependiendo del lenguaje que se utilice. Proporcionan las mismas interfaces que los elementos que implementan. Tienen: relaciones de traza con los elementos del diseño que implementan. dependencias de compilación entre ellos (unos deben haberse compilado antes para poder compilar otros). Ingeniería del Software 100

Artefactos de implementación: Componente <<executable>> programa que puede ser ejecutado en un nodo <<file>> fichero que contiene código fuente o datos <<library>> librería estática o dinámica <<table>> una tabla de base de datos <<document>> un documento, - ( ( Ingeniería del Software 101

Artefactos de implementación: Subsistema de Implementación Forma de organizar los artefactos del modelo de implementación en trozos más manejables. Un subsistema puede estar formado por: componentes interfaces otros subsistemas (recursivamente) Se manifiestan a través de un mecanismo de empaquetamiento concreto de un entorno de implementación determinado. Paquete en Java Proyecto en VB Etc. * * * ) $ * * ( + Ingeniería del Software 102

Artefactos de implementación: Interfaz Un componente que implementa una interfaz debe implementar correctamente todas las operaciones del interfaz. Un subsistema que implementa una interfaz debe contener componentes que proporcionen la interfaz u otros subsistemas que la proporcionen. + * * ( + ) $ Ingeniería del Software 103

Artefactos de implementación: Descripción de la arquitectura La descomposición del modelo de implementación en subsistemas, sus interfaces y las dependencias entre ellos (cómo vienen dados por los equivalentes del modelo de diseño suele ser innecesario representarlos) Componentes clave (los que tienen traza a clases de diseño significativas arquitectónicamente, y los ejecutables) Ingeniería del Software 104

Artefactos de implementación: Plan de Integración de las Construcciones Describe la secuencia de construcciones necesarias en una iteración. Para cada construcción debe describir: funcionalidad que se espera que sea implementada en esa construcción (lista de casos de uso o escenarios o parte de ellos, también puede incluir requisitos adicionales) partes del modelo de implementación afectadas por la construcción (lista de los subsistemas y componentes necesarios para implementar esa funcionalidad) Ingeniería del Software 105

Implementación: Actividades ( ( ( ( ( (! Ingeniería del Software 106

Actividades: Implementación de la Arquitectura ' % ( % $ Ingeniería del Software 107

Actividades: Integrar el Sistema! ( $ ( $ Ingeniería del Software 108

Actividades: Implementar un Subsistema % ( ( ) $ ) ( ( Ingeniería del Software 109

Actividades: Implementar una Clase ( ( ( Ingeniería del Software 110

Actividades: Realizar una Prueba de Unidad ( (! Ingeniería del Software 111

Prueba Verificamos el resultado de la implementación probando cada construcción Objetivos de la prueba Planificar las pruebas necesarias para cada iteración (pruebas de sistema y pruebas de integración) Diseñar e implementar las pruebas diseñando los casos de prueba Realizar las diferentes pruebas. Ingeniería del Software 112

Artefactos de pruebas Modelo de pruebas Casos de prueba Procedimientos de prueba Componentes de prueba Plan de prueba Defectos Evaluación de la prueba Sistema de pruebas X Componente Caso de prueba Procedimiento de prueba Ingeniería del Software de prueba 113 * X

Flujo de trabajo de pruebas 1. Planificar prueba 2. Diseñar prueba Describir casos de prueba de cada construcción Identificar y estructurar los procedimientos de prueba 3. Implementar prueba 4. Realizar pruebas de integración 5. Realizar prueba de sistema 6. Evaluar prueba Ingeniería del Software 114

Resumiendo... <<trace>> <<trace>> Caso de uso Realización en análisis Realización en diseño Ingeniería del Software 115

Resumiendo... <<trace>> Realización en diseño Realización en implementación <<desing subsystem>> <<trace>> (1:1) <<implem. subsystem>> <<file>> <<file>> Ingeniería del Software 116

Un ejemplo: el Proceso Unificado Características del Proceso Unificado Flujos de trabajo fundamentales Iteración genérica División del trabajo en fases Planificar Gestionar los riesgos Recursos Evaluar Ingeniería del Software 117

Iteración genérica Incluye: Planificación Flujos de trabajo fundamentales Requisitos Análisis Diseño Implementación Pruebas Evaluación El contenido varía para adaptarse al objetivo de cada fase. Ingeniería del Software 118

División del trabajo en fases Fase de inicio: establecer viabilidad Objetivo: Análisis del negocio: casos de uso fundamentales para el negocio Actividades: 1. Delimitar el ámbito (interfaces con otros sistemas) 2. Proponer una arquitectura especialmente en lo nuevo, arriesgado o difícil (expresada en función de algunos modelos) 3. Identificar riesgos críticos (los que afecten a la viabilidad) 4. Demostrar a usuarios y clientes un prototipo (exploratorio) Ingeniería del Software 119

División del trabajo en fases Fase de elaboración: factibilidad Objetivo Arquitectura estable para guiar el sistema Estimación de de costes para fases sisguientes con precisión Actividades: 1. Línea base de la arquitectura. Consiste en: modelos, descripción de la arquitectura e implementación ejecutable de la arquitectura. 2. Identificación de riesgos que pueden perturbar los planes y costes posteriores. 3. Especificar niveles para los atributos de calidad: fiabilidad y tiempo de respuesta. 4. Recopilar casos de uso para el 80% de los requisitos funcionales para planificar la fase de construcción. 5. Planificación: personal, coste. Ingeniería del Software 120

División del trabajo en fases Fase de construcción Objetivo Versión beta Actividades: 1. Terminar la identificación, descripción y realización de todos los casos de uso. 2. Finalizar el análisis, el diseño la implementación y pruebas. 3. Mantener la integridad de la arquitectura. 4. Monitorizar los riesgos críticos. Ingeniería del Software 121

División del trabajo en fases Fase de transición: en el entorno del usuario Objetivo Producto final Actividades: 1. Preparar las actividades, por ejemplo, el lugar. 2. Aconsejar sobre el entorno de funcionamiento. 3. Manuales y documentos para la entrega. 4. Ajustar el software al entorno del usuario. 5. Corregir los defectos detectados en la versión beta. Lecciones aprendidas Asuntos útiles para la versión siguiente Ingeniería del Software 122

Un ejemplo: el Proceso Unificado Características del Proceso Unificado Flujos de trabajo fundamentales Iteración genérica Planificar Las fases Las iteraciones Los criterios de evaluación Gestionar los riesgos Recursos Evaluar Ingeniería del Software 123

Planificar Varias iteraciones en cuatro fases Información sobre el sistema propuesto Planificar Plan de proyecto Información del dominio Plan de iteración Experiencia pasada Ingeniería del Software 124

Planificar las fases Establecer: Asignaciones de tiempo y fecha de entrega por cada fase (inestable hasta fin de elaboración) Hitos principales y criterios de aceptación Iteraciones por fase y qué se realiza en ellas. Depende de la complejidad del sistema. Plan de proyecto: fechas y criterios de objetivos principales y división de fases en iteraciones Pensar a largo plazo Ingeniería del Software 125

Planificar las iteraciones Definimos: Planificación de la Iteración: cuanto tiempo, fecha de terminación. Contenido de la Iteración: Contenido. Ya está esbozado en el plan del proyecto pero al comenzar cada iteración se debe detallar: Casos de uso Riesgos técnicos que se deben identificar en forma de casos de uso Cambios que han sufrido los requisitos o defectos encontrados Subsistemas que se deben implementar Personal El plan de la iteración siguiente se va detallando. El número de iteraciones de cada fase esta determinado por la complejidad del sistema. Ingeniería del Software 126

Planificar las iteraciones La 1ª iteración suele ser más difícil Ajustar el PU al proyecto y seleccionar herramientas Seleccionar personal y crear equipo. Familiarizarlo con el proyecto y las herramientas Entender el dominio Lista de riesgos Ingeniería del Software 127

Planificar los criterios de evaluación Criterios para establecer la satisfacción de los objetivos de cada iteración (medidos u observados): Requisitos funcionales en casos de uso Requisitos no funcionales de esos requisitos funcionales Requisitos no funcionales sueltos Requisitos verificables (pruebas) Requisitos generales (prototipo) Productos intermedios para determinar el progreso del trabajo Ingeniería del Software 128

Un ejemplo: el Proceso Unificado Características del Proceso Unificado Flujos de trabajo fundamentales Iteración genérica Planificar Gestionar los riesgos Priorizar los casos de uso Categorías de riesgos Recursos Evaluar Ingeniería del Software 129

Riesgos Lista de riesgos: BD Identificador Descripción Prioridad (crítico, significativo, rutinario) Impacto: qué parte del proyecto se ve afectada Monitor: responsable del seguimiento Responsabilidad: reponsable de eliminarlo Contingencia: qué hacer si se materializa Jefe de proyecto celebra reuniones periódicas para revisar el estado de los riesgos Ingeniería del Software 130

Riesgos Influencia en el plan de iteraciones Desarrollar prototipo para conocer riesgo Incrementar el esfuerzo Prolongar la planificación Calidad o rendimiento Planificar acciones sobre los riesgos En cada fase o iteración se eliminan o se prepara plan de contingencia No planificarlos: modificaciones, retrasos A veces no se descubren Ingeniería del Software 131

Priorizar los casos de uso Los casos de uso (escenarios) guían las iteraciones Se ordenan según el riesgo que conllevan Evitar: cambiar la arquitectura no satisfacer los requisitos (producto no correcto) Los riesgos se transforman en casos de uso que se priorizan Ej: Riesgo: Dar dinero sin haber saldo Caso de uso: habrá un escenario en que se solicite una cantidad mayor que el saldo. Ingeniería del Software 132

Priorizar los casos de uso Primeras iteraciones Riesgos relacionados con el ámbito del sistema y arquitectura Últimas iteraciones Añadir más funciones Categorías de riesgos: Específicos Arquitectónicos De requisitos Ingeniería del Software 133

Categorías de riesgos Específicos de un producto Técnicos Implementar un caso de uso mitiga el riesgo Deben tratarse uno a uno (no está en el PU) De requisitos Puede crecer Estamos desarrollando el producto correcto? Qué casos de uso aseguran que el sistema puede evolucionar? Solución: requisitos, modelo de negocio» uso real en prototipos Ingeniería del Software 134

Categorías de riesgos Arquitectónicos No establecer una arquitectura flexible Fases de inicio y elaboración Cómo determinar casos de uso importantes para la arquitectura correcta? Casos de uso críticos (los más importantes para los usuarios del sistema y los que tienen requisitos no funcionales como rendimiento, tiempo de respuesta,...) Otras categorías de casos de uso: secundarios, auxiliares, opcionales 80% de casos de uso descritos en elaboración para hacer la planificación detallada y estar seguros de haber considerado lo importante para la arquitectura Ingeniería del Software 135

Un ejemplo: el Proceso Unificado Características del Proceso Unificado Flujos de trabajo fundamentales Iteración genérica Planificar Gestionar los riesgos Recursos Evaluar Ingeniería del Software 136

Recursos Cuánto cuestan las fases de inicio y elaboración? Quién las costea? Cuánto duran? Depende del proyecto Considerar: Hay experiencia? Cómo es la base de componentes? Es una nueva entrega? Es distribuido?... Ingeniería del Software 137

Recursos Tiempo: Inicio 5%, elaboración 20%, construcción 65%, transición 10% Recursos Inicio 10%, elaboración 30%, construcción 50%, transición 10% Más incógnitas, más tiempo y recursos en inicio y elaboración. Ingeniería del Software 138

Un ejemplo: el Proceso Unificado Características del Proceso Unificado Flujos de trabajo fundamentales Iteración genérica Planificar Gestionar los riesgos Recursos Evaluar Las fases Las iteraciones Ingeniería del Software 139

Evaluar iteraciones y fases Jefe de proyecto (documento) Objetivos: evaluar iteraciones según criterios: presupuesto, tiempo, requisitos de calidad, resultados de las pruebas reconsiderar el plan de la siguiente iteración modificar el proceso evaluar y modificar criterios Es frecuente no alcanzar los criterios. Prolongar el trabajo a la iteración siguiente: Modificar o extender el modelo de casos de uso Modificar o extender la arquitectura Modificar o extender los subsistemas desarrollados Buscar otros riesgos Incorporar ciertas habilidades al equipo Puede que solo falte tiempo Ingeniería del Software 140

La siguiente iteración A partir de la evaluación anterior, el jefe de proyecto: Determina si se puede pasar a la siguiente iteración Si hay que rehacer, cuándo Planificar en detalle siguiente iteración Actualizar el plan de las iteraciones posteriores a la siguiente Actualizar riesgos y plan del proyecto Evolución del conjunto de modelos Ingeniería del Software 141