un ejemplo: el proceso unificado de desarrollo · un ejemplo: el proceso unificado de desarrollo...

141
Ingeniería del Software 1 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

Upload: others

Post on 13-Sep-2019

54 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 1

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

Page 2: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 2

Un ejemplo: el Proceso Unificado

• Características del Proceso Unificado• Flujos de trabajo fundamentales• Iteración genérica• Planificar• Gestionar los riesgos• Recursos• Evaluar

Page 3: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 3

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

Page 4: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 4

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.

Page 5: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 5

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

Page 6: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 6

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

Page 7: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 7

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

Page 8: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 8

Estáticos(estructura)D. de ClasesD. de ObjetosD. de ComponentesD. de Despliegue

Dinámicos(comportamiento)Casos de UsoSecuenciaColaboraciónEstadosActividades

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.

Interacción

Page 9: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 9

Diagrama de clases

Avión militar Avión comercial

Avión de carga Avión de pasajeros

Motor

Avión

1..4

1

Piloto Vendedor de billetes

Reserva

*

1

Vuelo*1

1..2

**1

Línea aérea

1

*

1

1..4 1..2

*

1

*1 * 1 *

*

1

{ disjunta, completa }

{ disjunta, completa }

Page 10: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 10

Control y Análisis

Comm

Acceso a BD

CommRutinas de Coneccion

Comm

Interfaz de Terminal

Comm

Gestión de Cuentas

Comm

Diagramas de Componentes

Page 11: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 11

Diagramas de Despliegue

Punto de Venta

Servidor Central

Terminal de Consulta

Gestión de Cuentas

C

Interfaz de Terminal

CRutinas de Coneccion

C

Rutinas de Coneccion

C

Interfaz de Terminal

C

Rutinas de Coneccion

C

Acceso a BD

C

Control y Análisis

C

Page 12: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 12

Cliente

Venta Normal

Venta en RebajasVendedor

Venta en Oferta

Diagrama de casos de uso

Page 13: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 13

Esperando t arjeta

Leyendo tarjeta

tar jeta int roducida

Esperando PIN

Validando PIN

PIN introducido( PIN )

Recogiendo tarjeta

Es perando opción

[ incorrec to ]

[ > 3 intentos ]

[ correcto ]

Ingresando

ingreso( importe )

Reintegrando

reintegro( importe )

Transferencia

transferencia( cuenta, importe )

Expulsando dinero

[ OK ]

Expulsar tarjeta

dinero retirado

[ Not OK ]

Diagrama de estados

Page 14: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 14

: Cliente del banco : Interfaz de ca jero : Transacción

cuentaOrigen : Cuenta cuentaDestino : Cuenta

1: transferencia

2: tec lee cant idad

3: cantidad

4: teclee cuenta destino

5: cuenta dest ino

12: transferencia realizada

6: t rans ferencia (cuenta, cantidad)

11 : OK

7: reinteg ro (can tidad)

8: OK9: ingreso (cantidad)

10: OK

Diagrama de colaboración

Page 15: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 15

Diagramas de Secuencia

: Socio : Encargado : Lib ro : Ficha libro : Ficha socio : Préstamo

Coger libro

Solic itar préstamo

Verificar s ituación socio

Sit uación socio ok

Verificar s ituación libro

Situación libro ok

Introducir préstamo

Aut orizar p rést amo

Page 16: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 16

Emitir billete

Pasajero Vendedor Airline

Solicitar pago Reservar plazas

Confirmarplaza reservadaPagar pasaje

Informar alternativas y precios

Verificar existencia vuelo

Dar detalles vuelo

Solicitar pasaje

Seleccionar vuelo

Diagramas de actividad

Page 17: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 17

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.

Page 18: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 18

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

Page 19: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 19

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.

Page 20: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 20

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 arquitectura-implementar-verificar

• Beneficios.

Page 21: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 21

...

Entrega

Ciclos

Concepción Elaboración TransiciónConstrucciónIter.

1Iter.

2 ... ...... ... ... ... Iter.n

FasesIterac.

Iterativo - Incremental

• Varios ciclos que concluyen con un producto.• Código fuente, manuales y documentos.• Hitos por fases (Milestones)

Page 22: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 22

Diseño de Arquitectura

Implementación de Arquitectura

Estructura Modelo de Casos de Uso

Descubre Actoresy Casos de Uso

Analista deSistemas

Detalla un Caso de Uso

EspecificaCasos de Uso

Prototipo del Interfaz de Usuario

Diseñador deInterface de Usuario

Análisis de Arquitectura

Prioriza Casos de Uso

Arquitecto

Diseña un Caso de Uso

Analiza un Caso de Uso

Ingeniero deCasos de Uso

Ingeniero deComponentes

Diseña una claseAnaliza

un Paquete

Analiza una Clase Diseña un

Subsistema

Implementa una clase

Implementa Subsistema

Ejecuta TestUnitario

Implementa Test

EvaluaTest

Diseña Test

Ingeniero depruebas

Planifica Test

Integrador deSistemas

Integra Sistema

Ejecuta Testde Integración

Ejecuta test del sistema

El procesoPapeles y actividades

Ingeniero depruebas de integración

Ingeniero depruebas de

sistema

Page 23: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 23

El procesoEl producto (salidas)

Modelo de análisis

Modelo de diseño

Modelo de despliegue

Modelo de implementación

Modelo de pruebas

Modelo de casos de uso

Especificado por

Realizado por

Distribuido por

Implementado por

Verificado por

- Refina los casos de uso otorgándoles más detalle- Asigna la funcionalidad a un grupo de objetos

- Define la estructura estática del sistema.- Refleja los casos de uso como colaboraciones

- Define la configuración de los nodos de procesamiento y las correspondencias entre ellos.

- Incluye los componentes (código fuente) y las relaciones entre los mismos

- Define los casos de prueba para validar los casos de uso

Page 24: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 24

El procesoFases, iteraciones y actividades

Requisitos

Diseño

Implantación

Prueba

Análisis

PlanificaciónAnál. RiesgosPreparación

Elaboración ConstrucciónVerificación

Transición

FASESWorkflow

Iteración-esInicial-es

Iter. #1

Iter. #2

Iter. #3

Iter. #4

Iter. #5

Iter. #6

Iter. #7

(Adaptado de Jacobson, 1999)

Iteración en Fase de Elaboración

Page 25: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 25

El procesoFases, 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

Page 26: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 26

El procesoFases, iteraciones y actividades

Page 27: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 27

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

Page 28: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 28

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

Page 29: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 29

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

Page 30: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 30

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

Page 31: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 31

Captura de requisitos

TAREAEnumerar requisitos candidatosEntender el contexto del sistemaCapturar requisitos funcionalesCapturar requisitos no funcionales

PRODUCTOS (artifact)

Lista de características

Modelo de negocio o de dominioModelo de casos de uso

Requisitos suplementarios o casos individuales

Page 32: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 32

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

Sistema de casos de uso

Caso de uso

Modelo de casos de uso

1

* *

Actor

Page 33: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 33

Artefactos de requisitos

GlosarioActor

Analista de sistemas

Modelo casos de uso

Especificadorde casos de uso

Caso de uso Descripción de la arquitectura

ArquitectoDiseñador de interfaz de usuario

Prototipo de interfaz de usuario

Page 34: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 34

Flujo de trabajo de la captura de requisitos funcionales (Actividades)

Analista

Arquitecto

Especificador

Diseñador

Encontrar actores y casos de uso

Priorizar los casos de uso

Detallar un caso de uso

Estructurar el modelo de casos de uso

Prototipar la interfaz de usuario

Page 35: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 35

Flujo de trabajo de la captura de requisitos funcionales (Actividades)• Encontrar actores y casos de uso

Analista

Encontrar actores y casos de uso

Glosario

Modelo del negocio

Modelo de casos de uso(esbozado)

Requisitos adicionales

Lista de característ.

Page 36: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 36

Flujo de trabajo de la captura de requisitos funcionales (Actividades)

• Priorizar casos de uso

Arquitecto

Priorizar casos de uso Descripción de la

arquitectura (vista del modelo de casos de uso)

Modelo de casos de uso

Requisitos adicionales

Glosario

Page 37: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 37

Flujo de trabajo de la captura de requisitos funcionales (Actividades)

• Detallar un caso de uso

Especificador de casos de uso

Detallar un caso de uso

Modelo de casos de uso

Requisitos adicionales

Glosario

Caso de uso(detallado)

Page 38: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 38

Flujo de trabajo de la captura de requisitos funcionales (Actividades)

• Prototipar la interfaz de usuario

Diseñador de interfaz de usuario

Prototipar la interfaz de usuario

Modelo de casos de uso

Requisitos adicionales

Glosario

Prototipo de interfaz de usuario

Caso de uso(descrito)

Page 39: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 39

Flujo de trabajo de la captura de requisitos funcionales (Actividades)

• Estructurar el modelo de casos de uso

Analista de sistemas

Estructurar el modelo de casos

de uso

Modelo de casos de uso

Requisitos adicionales

Glosario

Caso de uso(descrito)

Modelo de casos de uso

(estructurado)

Page 40: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 40

Caso de uso “Validar usuario”Flujo de eventos

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

ACCIÓN DEL ACTOR

1. Este caso de uso empieza cuando un Cliente introduce una tarjeta en el cajero

3. Introduce la clave

CAMINOS ALTERNATIVOS

Línea 3. El cliente cancela la transacciónLí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!!

Page 41: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 41

Caso de uso “Sacar dinero”Flujo de eventos

RESPUESTA DEL SISTEMA

1. Este caso de uso empieza cuando un Cliente ha sido identificadoPresenta las opciones de operaciones disponible

3. Pide la cantidad a retirar.

5. Procesa la petición y da el dinero solicitado.

Devuelve la tarjeta y genera un recibo

ACCIÓN DEL ACTOR

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

Page 42: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 42

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

Page 43: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 43

Ejemplo. Cajero automático

Sacar dinero

Ingresardinero

Transf.

Consultarsaldo

Validarusuario

Reponerdinero

Recogerdinero

Cliente del banco

Empleadosucursal

Sacar con visa

Usuario <<extends>>

R1

R4,...

R2, R3,...

Page 44: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 44

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

Page 45: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 45

Artefactos de análisis

Descripción de la arquitectura

Realización caso de uso -Análisis

Clase del análisis

Arquitecto

Modelo de análisis

Paquete del análisis

Ingeniero de componentes

Ingeniero de casos de uso

Page 46: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 46

Artefacto: Modelo de Análisis

Sistema deanálisis

*

*

Realización caso de uso -Análisis

Clase del análisis

Paquete delanálisis

* * *

*

Page 47: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 47

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.

Page 48: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 48

Artefacto: Clases de Análisis

Clase del análisis

Clase de control

Clase de entidad

Clase de interfaz

Page 49: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 49

Artefacto: Realización de caso de uso-aná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

Page 50: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 50

Artefacto: Realización de caso de uso-análisis (Diag. De Clases)

Comprador

Planificadorde Pagos

Gestor dePedidos

IU Solicitudde Pago

Confirmaciónde Pedido

Factura

Solicitudde Pago

Page 51: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 51

Artefacto: Realización de caso de uso-análisis (Diag. De Colaboración)

:Planificadorde Pagos

:Gestor dePedidos

:IU Solicitudde Pago

:Confirmaciónde Pedido

:Factura

:Solicitudde Pago

:Comprador

1: Mostrar Facturas6: Planificar pago de Factura

3: Comprobar Factura 2: Mostrar

5: Obtener

4: Obtener

7:Planificar Pago

8: Obtener

9: establecerEstado(Planificado)

Page 52: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 52

Artefacto: Realización de caso de uso-aná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…”

Page 53: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 53

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

Realización caso de uso -

Análisis

Clase del análisis

Paquete delanálisis

**

*

Page 54: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 54

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

Page 55: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 55

Flujo de trabajo del análisis

1. Análisis de la arquitecturaIdentificar paquetes de análisis Identificar clases de entidadRequisitos comunes

2. Analizar (refinar) un caso de usoIdentificar clases de análisis Describir interacciones entre los objetos del análisis Capturar req. especiales sobre la realización del CU

3. Analizar una claseIdentificar responsabilidades y atributosIdentificar relaciones: asoc., agreg. y gener.Capturar req. especiales sobre la realización del CU

4. Analizar un paquete

Page 56: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 56

Actividades

Analizar un caso de uso

Arquitecto

Ingeniero de componentes

Ingeniero de casos de uso

Análisis de la arquitectura

Analizar una clase Analizar un paquete

Page 57: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 57

Actividades: Análisis de la Arquitectura

Arquitecto

Análisis de la arquitectura

Modelo de casos de uso

Requisitos adicionales

Descripción de la arquitectura (vista del

modelo de casos de uso)

Paquete del análisis (esbozo)

Clase del análisis (esbozo)

Descripción de la arquitectura (vista del modelo de análisis)

Page 58: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 58

Actividades: Analizar un caso de uso

Ingeniero de casos de uso

Analizar un caso de uso

Modelo de casos de uso

Requisitos adicionales

Descripción de la arquitectura (vista del modelo de análisis)

Clase del análisis (esbozo)

Realización caso de uso - análisis

Page 59: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 59

Actividades: Analizar una clase

Ingeniero de componentes

Analizar una clase

Clase del análisis (esbozo)

Realización caso de uso - análisis

Clase del análisis (terminada)

Page 60: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 60

Actividades: Analizar un paquete

Ingeniero de componentes

Analizar un paquete

Descripción de la arquitectura (vista del modelo de análisis)

Paquete del análisis(esbozo)

Paquete del análisis

(terminado)

Page 61: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 61

Validar usuario Reali zación en aná li s is

UsuariosDelBanco

(from Logica l V iew)

A utenti car

(from L ogi ca l V ie w)

Interfaz de cajero

Análisis del caso de uso: “Validar usuario”

Page 62: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 62

Análisis del caso de uso: “Validar usuario”Secuencia correcta

: Interfaz de cajero: Cliente del banco

1: introducir tarjeta

2: teclear código

3: código

: Autenticar

4: autentica (datos, código)

: UsuariosDelBanco

5: valida (datos, codigo)

6: OK

7: visualiza (opciones)

8: seleccioneOpcion (opciones)

Page 63: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 63

Análisis del caso de uso: “Validar usuario”. Código incorrecto

: Interfaz de cajero: Cliente del banco

1: introducir tarjeta

2: teclear código

3: código

: Autenticar

4: autentica (datos, código)

: UsuariosDelBanco

5: valida (datos, codigo)

6: Error

7: visualiza (error)

8: teclear código

Page 64: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 64

- Suponemos que el usuario ya ha sido identificado (se ha ejecutadoel caso de uso anterior).

- Ahora selecciona la opción “transferencia”. Consideramos que lacuenta origen es la de la tarjeta y hay que teclear la destino.

- El importe y el número de cuenta destino deben darse juntos. Evitarcondiciones de carrera: mirar primero si hay saldo y luego sacar.

Análisis del caso de uso: “Transferencia”

Realización en análisis

Interfaz de cajero CuentaTransacción

Transferencia

Page 65: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 65

Análisis del caso de uso: “Transferencia”Secuencia correcta

: Cliente del banco : Interfaz de cajero : Transacción

cuentaOrigen : Cuenta cuentaDestino : Cuenta

1: transferencia

2: teclee cantidad

3: cantidad

4: teclee cuenta destino

5: cuenta destino

12: transferencia realizada

6: transferencia (cuenta, cantidad)

11: OK

7: reintegro (cantidad)

8: OK9: ingreso (cantidad)

10: OK

Page 66: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 66

Análisis del caso de uso: “Transferencia”No hay saldo en la cuenta origen

: Cliente del banco : Interfaz de cajero : Transacción

cuentaOrigen : Cuenta

1: transferencia

2: teclee cantidad

3: cantidad

4: teclee cuenta destino

5: cuenta destino

10: no hay fondos

6: transferencia (cuenta, cantidad)

9: no hay fondos

7: reintegro (cantidad)

8: no hay saldo

Page 67: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 67

Análisis del caso de uso: “Transferencia”No se puede acceder a la cuenta destino

: Cliente del banco : Interfaz de cajero : Transacción

cuentaOrigen : Cuenta cuentaDestino : Cuenta

11: rollback

1: transferencia

2: teclee cantidad

3: cantidad

4: teclee cuenta destino

5: cuenta destino

13: error

6: transferencia (cuenta, cantidad)

12: error

7: reintegro (cantidad)

8: OK9: ingreso (cantidad)

10: error

Page 68: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 68

Modelo de clases de análisis

Cliente del banco Interfaz de cajero CuentaTransacción

UsuariosDelBancoAutenticar

Page 69: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 69

Análisis de las clases

CLASE CUENTA.

Interviene en tres casos de uso: - sacar dinero

reintegro (importe)

- ingresar dineroingreso (importe)

- transferencialas dos operaciones anteriores

atributos - - > saldo

Page 70: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 70

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 dineroretirarDinero (importe)

- ingresar dineroingresarDinero (importe)

- transferenciatransferencia (cuenta, cantidad)rollback

Page 71: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 71

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

Page 72: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 72

Artefactos de diseño

Descripción de la arquitectura

Realización caso de uso -

diseño

Interfaz

Arquitecto

Modelo de diseño

Subsistema de diseño

Ingeniero de componentes

Ingeniero de casos de uso

Modelo de despliegue

Clases del

diseño

Page 73: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 73

Artefactos de diseño: modelo de diseño

Sistema dediseño

*

Realización caso de uso - diseño

* * *

*

Clases del

diseño

Interfaz

*

Subsistema dediseñ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.

Page 74: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 74

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

Clases del diseño

Interfaz

► realiza

Page 75: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 75

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

Realización caso de uso - diseño

Realización caso de uso - análisis

«trace»

Page 76: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 76

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

► realiza

*

Realización caso de uso - diseño

* *

Clases del diseño

Interfaz

*

Subsistema dediseño

*

Page 77: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 77

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

Clases del diseño

Interfaz

► realiza

Subsistema dediseño

► realiza

*

*

Page 78: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 78

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

Modelo de diseño

Descripción de la arquitectura

Page 79: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 79

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

Modelo de despliegue

Nodo

*

Page 80: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 80

Diseño: Actividades

Diseñar un caso de uso

Arquitecto

Ingeniero de componentes

Ingeniero de casos de uso

Diseño de la arquitectura

Diseñar una clase Diseñar un subsistema

Page 81: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 81

1. Diseño de la arquitecturaIdentificar nodos y configuración, subsistemas, clases

2. Diseñar un caso de usoIdentificar clases de diseño y subsistemas Distribuir comportamiento del CU Capturar requisitos de implementación

3. Diseñar una clase4. Diseñar un subsistema

Diseño: Actividades

Page 82: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 82

Actividades: Diseño de la Arquitectura

Arquitecto

Diseño de la arquitectura

Modelo de casos de uso

Requisitos adicionales

Descripción de la arquitectura (vista del modelo de análisis)

Modelo de análisis

SubsistemaInterfaz

Modelo de despliegue

Clase de diseño

Descripción arquitectura (vista de modelo de diseño y despliegue)

Page 83: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 83

Actividades: Diseño de un caso de uso

Diseñar un caso de uso

Ingeniero de casos de uso

Modelo de casos de uso

Requisitos adicionales

Modelo de despliegue

Subsistema

Interfaz

Clase de diseño

Modelo de análisis

Modelo de diseño

Realización casode uso - diseño

Page 84: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 84

Actividades: Diseño de una clase

Ingeniero de componentes

Diseñar una clase

Interfaz

Clase de diseño

Realización casode uso - diseño

Clase de diseño(completa)

Clase del análisis(completa)

Page 85: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 85

Actividades: Diseño de un Subsistema

Ingeniero de componentes

Diseñar un subsistema

Interfaz (terminada)

Subsistema (terminado)

Descripción arquitectura (vista modelo de diseño)

Interfaz (esbozada)

Subsistema (esbozado)

Page 86: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 86

Val idar usuario

(from Use Case View)

Realización en diseño

LectorDeTarjetas

Pantalla

Teclado

GestorDeCliente Us uariosDelBanco

Transacción

Diseño del caso de uso: “Validar usuario”

Page 87: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 87

: Cliente del banco :

Lect orDeTarjetas : Pantal la : Teclado

: GestorDeCliente : Transacción : UsuariosDelBanco

2: introduci rTarjeta (tarjet a)3: datosTarjeta (tarjeta)

4: vis ualizar (In troduci r PIN)

1: leerTarjeta

5: OK

6: leerPIN7: introduci rPIN (PIN)

8: datosPIN (PIN)

9: au tent ic a (datos , PIN)

10: valida (datos, PIN)

11: OK

13: visual iza (opciones)

12: almacenaDatos (datos)

14: visualizar (opciones)

Diseño del caso de uso: “Validar usuario”Secuencia correcta

Page 88: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 88

: Cliente del banco :

Lect orDeTarjetas : Pantal la : Teclado

: GestorDeCliente : Transacción : UsuariosDelBanco

2: introduci rTarjeta (tarjet a)

7: introduci rPIN (PIN)

3: datosTarjeta (tarjeta)

4: vis ualizar ( In troduci r PIN)

1: leerTarjeta

5: OK

6: leerPIN

8: datosPIN (PIN)

9: au tent ic a (datos , PIN)

10: valida (datos, PIN)

11: E rror

12: visualiza (error PIN)13: visuali zar (error PIN)

Hay más escenarios: anular transacción y tres intentos

Diseño del caso de uso: “Validar usuario”Código incorrecto

Page 89: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 89

- Suponemos que el usuario ya ha sido identificado (se ha ejecutadoel caso de uso anterior). Ahora selecciona la opción “transferencia”.

Transferencia

(from Use Case View)

Realización en diseño, transferenc ia

Teclado

Pantalla

GestorDeCliente Transacción CuentaCuentas

2

Diseño del caso de uso: “Transferencia”

Page 90: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 90

: Cliente del banco : Teclado : Pantalla

: GestorDeCliente : Transacción : Cuentas : Cuen ta

1: opcion (transferencia)

4: IntroducirImporte

2: transferencia

3: visualizar (Teclee im port e)

5: importe

19 : vis ualizar (Transfe rencia real izada)

20: visuali zar (Reti re su tar jet a)

6: visual izar (Teclee cuent a destino)

9: t ransferencia (cuentaO rigen, cuen taDestino,import e)

10: reintegro (cuentaOrigen, importe)

11: reintegro (importe)

12: OK

13: OK

18: OK

7: cuentaDes tino (cuent a)

8: cuentaDestino (cuenta)

14: ingreso (cuentaDestino, importe)

15: ingreso (im porte)

16: OK17: OK

Diseño del caso de uso: ”Transferencia”Secuencia correcta

Page 91: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 91

: Cliente del banco : Teclado : Pantalla

: GestorDeCliente : Transacción : Cuentas : Cuen ta

1: opcion (transferencia)

4: IntroducirImporte

7: cuentaDes tino (cuent a)

2: transferencia

3: visualizar (Teclee im port e)

5: importe

15: visualiz ar ((No hay fondos))

16: visuali zar (Reti re su tar jet a)

6: visual izar (Teclee cuent a destino)

8: cuentaDestino (cuenta)

9: t ransferencia (cuentaO rigen, cuen taDestino,import e)

14: no hay fondos

10: reintegro (cuentaOrigen, importe)

13: no hay saldo

11: reintegro (importe)

12 : no hay saldo

Diseño del caso de uso: ”Transferencia”No hay saldo en la cuenta origen

Page 92: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 92

Modelo de clases de diseño

CajonDinero

Impresora

LectorDeTarjetas

Pantalla

Teclado

DarDinero

Cliente del banco

GestorDeCliente

Cuenta

UsuariosDelBanco

Transacción

Cuentas

Page 93: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 93

CajonDinero

crearCajon() : CajonDineroabrirCajon()cerra rCajon()contarCantidad() : Dinero

LectorDeTarjetas

crearLec tor() : Lect orDeTarjetasleerTarjeta() : datosTarjeta

Pantalla

vis uali zar(m ensaje : St ring)c rearPantalla() : Pantal la

Teclado

crearTeclado() : TecladoleerPIN() : unPINleerOpcion() : unaOpcionleerCantidad() : DineroleerNumCuenta() : unIDCuenta

DarDinero

crear() : DarDineroexpulsa r(im porte : Dinero)

Gesto rDeCliente

crear() : GestorDeClientecreaCajeroVi rtual()inic iarSesion()

Impresora

crearImpresora() : Im pres oraimprimir(mensaje : String)

Diseño de las clases

Page 94: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 94

Diseño de las clases

GestorDeClientemiTransaccion : Transacción

crear() : GestorDeClientecreaCajeroVirtual()iniciarSesion()visualizar(resultados : String)

TransacciónmiCliente : GestorDeClientedatosTarjeta : DatosTarjetanumIntentosFallidos : 1..3 = 0cuentas : Cuentasusuarios : UsuariosDelBanco

almacenarDatos(datos : DatosTarjeta)validar(importe : Dinero, cantidad : Dinero)autenticar(datos : DatosTarjeta, PIN : UnPIN) : BooleanretirarDinero(importe : Dinero) : BooleaningresarDinero(importe : Dinero) : Booleantrasnsferencia(cuentaOrigen : Cuenta, cuentaDestino : Cuenta, importe : Dinero) : Boolean

UsuariosDelBancousuarios : Dictionary

validar(datos : DatosTarjeta, PIN : UnPIN) : Boolean

Cuentascuentas : Dictionary

reintegro(cuenta : Cuenta, importe : Dinero) : Booleaningreso(cuenta : Cuenta, importe : Dinero) : Boolean

Cuentadatos : DatosCuentalimiteDiario : Dinero = 50000

reintegro(importe : Dinero) : Booleaningreso(importe : Dinero) : Boolean

Page 95: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 95

Esperando t arjeta

Leyendo tarjeta

tar jeta int roducida

Esperando PIN

Validando PIN

PIN introducido( PIN )

Recogiendo tarjeta

Es perando opción

[ incorrec to ]

[ > 3 intentos ]

[ correcto ]

Ingresando

ingreso( importe )

Reintegrando

reintegro( importe )

Transferencia

transferencia( cuenta, importe )

Expulsando dinero

[ OK ]

Expulsar tarjeta

dinero retirado

[ Not OK ]

Clase GestorDeCliente

Page 96: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 96

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

(compilándolos y enlazándolos en uno o más ejecutables)

Page 97: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 97

Artefactos de implementación

Descripción de la arquitectura

Interfaz

Arquitecto

Modelo de implementac.

Implementac. subsistema

Ingeniero de componentes

Integrador de sistemas

Modelo de despliegue

Componente

Integración de sistema

Page 98: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 98

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

Page 99: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 99

Artefactos de implementación: Modelo de Implementación

Sistema deimplementac.

**

*

Interfaz

*

Subsistema deimplementac.

**

Componente

Page 100: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 100

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

Page 101: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 101

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

Componente

«trace»

Clase de diseño

InterfazInterfaz

Page 102: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 102

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.

► r

*

*

Interfaz

*

Subsistema deimplementac.

* *

Componente

Page 103: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 103

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.

Interfaz

► realiza

Subsistema deimplementac.

► realiza

*

*

Componente

Page 104: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 104

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)

Page 105: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 105

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)

Page 106: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 106

Implementación: Actividades

Integrar sistemas

Arquitecto

Ingeniero de componentes

Integrador de sistemas

Implementación de la arquitectura

Implementar una clase

Implementar un subsistema

Realizar prueba de unidad

Page 107: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 107

Actividades: Implementación de la Arquitectura

Arquitecto

Implementación de la arquitectura

Modelo de casos de uso

Modelo de análisis

Descripción arquitectura (vista de modelo de diseño y despliegue)

Componente (esbozado y asignado

a un nodo)

Descripción arquitectura (vista de modelo de

implement. y despliegue)

Page 108: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 108

Actividades: Integrar el Sistema

Integrar sistemas

Integrador de sistemas

Modelo de casos de uso

Requisitos adicionales

Modelo de implementac.

Modelo de implementac.

Modelo de diseño

Plan de integración de construcciones

Page 109: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 109

Actividades: Implementar un Subsistema

Ingeniero de componentes

Implementar un subsistema

Descripción arquitectura (vista de modelo de

implementación)

Plan de integración de construcciones

Subsistema de diseño

Interfaz

Subsistema de implementac.

Interfaz

Page 110: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 110

Actividades: Implementar una Clase

Ingeniero de componentes

Implementar una clase Componente

(implementado)Interfaz

Clase de diseño(diseñada)

Page 111: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 111

Actividades: Realizar una Prueba de Unidad

Ingeniero de componentes

Realizar prueba de unidad Componente

(unidades probadas)Interfaz

Clase de diseño(implementada)

Page 112: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 112

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.

Page 113: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 113

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

Componentede prueba

*

Caso de pruebaX X

Procedimientode prueba

Page 114: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 114

1. Planificar prueba2. Diseñar prueba

– Describir casos de prueba de cada construcción– Identificar y estructurar los procedimientos de prueba

3. Implementar prueba4. Realizar pruebas de integración5. Realizar prueba de sistema6. Evaluar prueba

Flujo de trabajo de pruebas

Page 115: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 115

Caso de uso Realizaciónen análisis

<<trace>>

Realizaciónen diseño

<<trace>>

Resumiendo...

Page 116: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 116

Resumiendo...

<<trace>> (1:1)

Realizaciónen diseño

Realizaciónen implementación

<<trace>>

<<implem. subsystem>>

<<file>>

<<file>>

<<desing subsystem>>

Page 117: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 117

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

Page 118: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 118

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.

Page 119: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 119

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)

Page 120: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 120

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.

Page 121: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 121

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.

Page 122: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 122

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

Page 123: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 123

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

Page 124: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 124

Planificar

Varias iteracionesen cuatro fases

Planificar

Experienciapasada

Plan de proyecto

Plan de iteración

Información sobreel sistema propuesto

Informacióndel dominio

Page 125: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 125

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

Page 126: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 126

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.

Page 127: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 127

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

Page 128: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 128

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

Page 129: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 129

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

Page 130: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 130

Riesgos

• Lista de riesgos:– 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

• BD• Jefe de proyecto celebra reuniones periódicas para

revisar el estado de los riesgos

Page 131: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 131

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

Page 132: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 132

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.

Page 133: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 133

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

Page 134: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 134

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

Page 135: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 135

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

Page 136: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 136

Un ejemplo: el Proceso Unificado

• Características del Proceso Unificado• Flujos de trabajo fundamentales• Iteración genérica• Planificar• Gestionar los riesgos• Recursos• Evaluar

Page 137: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 137

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?– ...

Page 138: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 138

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.

Page 139: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 139

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

Page 140: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 140

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

Page 141: UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO · UN EJEMPLO: EL PROCESO UNIFICADO DE DESARROLLO (1ª parte) ... Ficha libro : Préstamo Coger libro Solicitar préstamo Verificar

Ingeniería del Software 141

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