Vous êtes sur la page 1sur 53

PROCESO UNIFICADO: ANLISIS

El proceso unificado de desarrollo, Ivar Jacobson, Grady Booch, James Rumbaugh, Ed. Addison Wesley, 1999 The unified software development process, Ivar Jacobson, Grady Booch, James Rumbaugh, Ed. Addison Wesley, 1999

Anlisis
1. Visin general. 2. El anlisis en el Proceso Unificado de Desarrollo. 2.1 Artefactos. 2.1.1 Modelo de anlisis. 2.1.2 Clases de anlisis. 2.1.3 Realizacin en anlisis de los casos de uso. 2.1.4 Paquetes de anlisis. 2.2 Actividades. 2.2.1. Anlisis de los casos de uso. 2.2.2. Anlisis de las clases. 2.2.3. Anlisis de los paquetes.

Ingeniera del software

2. El anlisis en el Proceso Unificado


Fases Actividades
Concepcin Requisitos Elaboracin Construccin Transicin

Anlisis

Diseo

Implementacin

Pruebas
Iteracin preliminar

Itera. #1

Itera. #2

Itera. #n

Itera. #n+1

Itera. #n+2

Itera. #m

Itera. #m+1 3

IngenieraIteraciones del software

1. Visin general
Modelo de casos de uso - Lenguaje del cliente
- Vista externa del sistema - Estructurado en casos de uso

Modelo de anlisis
- Lenguaje del desarrollador - Vista interna del sistema - Estructurado en clases de anlisis y paquetes - Como precursor del diseo - No debera contener redundancias

- Como contrato - Puede contener redundancias, inconsistencias (entre requisitos) - Captura la funcionalidad del sistema

- Da forma a la arquitectura para soportar tal funcionalidad

Utilizaremos diferentes diagramas para expresar el modelo de anlisis


Ingeniera del software 4

1. Visin general
- Durante la captura de requisitos: lenguaje del cliente. - Es impreciso: deja problemas sin resolver (ambigedades). Modelo de anlisis: - especificacin detallada (precisa) de requisitos. - refina los casos de uso como colaboraciones entre clasificadores: clasificadores: clases de anlisis, paquetes. colaboraciones: realizaciones de los casos de uso.

Gestionar asignaturas

Realizacin en anlisis

UI asignaturas

Gestor de asignaturas
Ingeniera del software

Asignatura
5

1. Visin general
Modelo de Caso de Uso Diagramas de Casos de Uso Diagramas de Clases Diagramas de Componentes Diagramas de Despliegue Diagramas de Secuencias Modelo de Despliegue Diagramas de Colaboraciones Diagramas de Estados Diagramas de Actividad Diagramas de Objetos Ingeniera del software

Modelo de Anlisis

Incluidos paquetes

Modelo de Diseo

Diagramas de Interaccin

Modelo de Implementacin

Modelo de Pruebas

1. Visin general
Requisitos Modelo de Casos de Uso
dependencia de traza

Anlisis

Modelo de Anlisis

Diseo

Modelo de Diseo

Modelo de Despliegue

Implementacin

Modelo de Implementacin

Pruebas

Modelo de Pruebas

Ingeniera del software

2. El anlisis en el Proceso Unificado


2.1 Artefactos. 2.1.1 Modelo de anlisis. 2.1.2 Clases de anlisis. 2.1.3 Realizacin en anlisis de los casos de uso 2.1.4 Paquetes de anlisis. 2.2 Actividades. 2.2.1. Anlisis de los casos de uso. 2.2.2. Anlisis de las clases. 2.2.3. Anlisis de los paquetes.

Ingeniera del software

2.1.1. Artefactos. Modelo de anlisis



2.1 Artefactos. 2.1.1 Modelo de anlisis. 2.1.2 Clases de anlisis. 2.1.3 Realizacin en anlisis de los C.U. 2.1.4 Paquetes de anlisis

Representa la estructura global del sistema (subsistemas y/o capas en el modelo de diseo).
Descripcin arquitectnica

*
2.2 Actividades. 2.2.1. Anlisis de los casos de uso. 2.2.2. Anlisis de las clases. 2.2.3. Anlisis de los paquetes.

*
Diagramas de clases Diagramas de interaccin Descripcin textual

Modelo de anlisis

Paquete de anlisis

Responsabilidades Atributos Relaciones

**
Realizacin en anlisis

Clase de anlisis

Interfaz Control Ingeniera del software

Entidad

2.1.2. Artefactos. Clases de anlisis


2.1 Artefactos. 2.1.1 Modelo de anlisis. 2.1.2 Clases de anlisis. 2.1.3 Realizacin en anlisis de los C.U. 2.1.4 Paquetes de anlisis

Representa una abstraccin de lo que sern una o varias clases en diseo. Se centra en los requisitos funcionales.

2.2 Actividades. 2.2.1. Anlisis de los casos de uso. 2.2.2. Anlisis de las clases. 2.2.3. Anlisis de los paquetes.

Clase de anlisis

Res pos abilidades A tributos Relac iones

Interfaz

Control
Ingeniera del software

Entidad
10

Utilizamos el ejemplo.
Un sistema de ensearza virtual Actor: Estudiante Caso de Uso: Matricularse ..
Sist. de enseanza virtual
Matricularse Matricularse

Estudiante

Ingeniera del software

11

2.1.2. Artefactos. Clases de anlisis


Clases lmite o interfaz
<<boundary>> IU Matriculacin IU Matriculacin

IU Matriculacin

- Modelan la interaccin entre el sistema y los actores. - Representan la interfaz del sistema (ventanas, formularios, ...), pero con poco detalle. - Describen la informacin presentada al actor y las peticiones que hace el actor al sistema.

Estudiante
Ingeniera del software

UI Matriculacion
12

2.1.2. Artefactos. Clases de anlisis


Clases Entidad
Alumno <<entity>> Alumno Alumno

- Representan la informacin significativa para el sistema. - Modelan la informacin de larga vida (persistencia). - Pueden provenir de las entidades del dominio o de las del negocio, pero no tienen por qu corresponderse completamente. - Pueden ser pasivas o activas (comportamiento complejo). - Encapsulan informacin y operaciones asociadas. - Por ejemplo: repositorios de informacin.

Estudiante

UI Matriculacion

GestorMatricula Alumno

Ingeniera del software

13

2.1.2. Artefactos. Clases de anlisis


Clases Control
GestorMatricula

<<control>> GestorMatricula

GestorMatricula

- Se usan para representar el control de un caso de uso concreto - Representan la coordinacin entre objetos. - Lgica del negocio, clculos. - No representan ni interacciones con el usuario ni problemas de almacenamiento de informacin.

Estudiante

UI Matriculacion

GestorMatricula

Ingeniera del software

14

2.1.3. Artefactos. Realizacin en anlisis de los casos de uso


2.1 Artefactos. 2.1.1 Modelo de anlisis. 2.1.2 Clases de anlisis. 2.1.3 Realizacin en anlisis de los C.U. 2.1.4 Paquetes de anlisis

- Es una colaboracin que describe cmo se realiza en anlisis un caso de uso en trminos de clases de anlisis y sus interacciones.
Modelo de casos de uso Modelo de anlisis
<<trace>>

2.2 Actividades. 2.2.1. Anlisis de los casos de uso. 2.2.2. Anlisis de las clases. 2.2.3. Anlisis de los paquetes.

Use case

Realizacin en anlisis

- La realizacin en anlisis de un caso de uso, incluye: - diagramas de clases: clases participantes - diagramas de interaccin: escenarios del CU. - descripcin textual del flujo de eventos - nada de requisitos no funcionales (hasta el diseo).
Ingeniera del software 15

2.1.3. Artefactos. Realizacin en anlisis de los casos de uso. Diagramas de clase


- Una clase de anlisis puede participar en varios casos de uso. - Algunas responsabilidades, atributos y asociaciones suelen ser especficos de un slo caso de uso.

Estudiante

UI Matriculacin

Gestor Matricula

Alumno

Diagrama de clases para la realizacin del caso de uso Matricularse

Ingeniera del software

16

2.1.3. Artefactos. Realizacin en anlisis de los casos de uso. Diagramas de interaccin


- La secuencia de acciones en un caso de uso comienza cuando un actor enva un mensaje a una clase lmite. - Se van a utilizar diagramas de colaboracin. - Ejemplo: Caso de uso Publicar notas del actor Profesor
3: seleccionar (asignatura, ficheroNotas) 4: publicar (asignatura, ficheroNotas) 1: publicar notas 5: notas (ficheroNotas)

7: OK : Profesor : UI Profesor

: GPr

6: OK : Asignatura

2: visualizar ("asignaturas") 8: visualizar (notas publicadas)


Ingeniera del software 17

2.1.3. Artefactos. Realizacin en anlisis de los casos de uso. Flujo de eventos y Requisitos no funcionales
Flujo de eventos. - Para clarificar los diagramas de colaboracin: descripcin textual. - Si es muy complejo no ser mejor dividir el caso de uso?

Requisitos No funcionales. - Asignados a casos de uso. - Se recogen si aparecen.

Ingeniera del software

18

2.1.4. Artefactos. Paquetes de anlisis


2.1 Artefactos. 2.1.1 Modelo de anlisis. 2.1.2 Clases de anlisis. 2.1.3 Realizacin en anlisis de los C.U. 2.1.4 Paquetes de anlisis

*
Paquete de anlisis

*
2.2 Actividades. 2.2.1. Anlisis de los casos de uso. 2.2.2. Anlisis de las clases. 2.2.3. Anlisis de los paquetes.

*
Realizacin en anlisis

Clase de anlisis

- Para organizar los artefactos de anlisis: clases de anlisis, realizacin de casos de uso y otros paquetes. - Fuertemente cohesionados y dbilmente acoplados. - No existen en tiempo de ejecucin.
19

Ingeniera del software

2. El anlisis en el Proceso Unificado


2.1 Artefactos. 2.1.1 Modelo de anlisis. 2.1.2 Clases de anlisis. 2.1.3 Realizacin en anlisis de los casos de uso 2.1.4 Paquetes de anlisis. 2.2 Actividades. 2.2.1. Anlisis de los casos de uso. 2.2.2. Anlisis de las clases. 2.2.3. Anlisis de los paquetes.

Ingeniera del software

20

2.2. Actividades

Para ilustrar las actividades, utilizaremos el ejemplo del cajero automtico.


Validar usuario

Sacar dinero Cliente del banco

Ingresar dinero

Transferencia

Ingeniera del software

21

2.2.1. Actividades. Anlisis casos de uso


2.1 Artefactos. 2.1.1 Modelo de anlisis. 2.1.2 Clases de anlisis. 2.1.3 Realizacin en anlisis de los C.U. 2.1.4 Paquetes de anlisis

2.2 Actividades. 2.2.1. Anlisis de los casos de uso. 2.2.2. Anlisis de las clases. 2.2.3. Anlisis de los paquetes.

Identificar las clases de anlisis necesarias para la realizacin del caso de uso. Distribuir el comportamiento del caso de uso entre las clases de anlisis. Capturar/asignar requisitos no funcionales a clases de anlisis.

Ingeniera del software

22

2.2.1. Actividades. Anlisis casos de uso


Identificar las clases de anlisis
Clases

entidad se derivan de la descripcin del caso

de uso. Una clase interfaz por cada actor. Una clase de control que gobierne en flujo del caso de uso
Representar

las clases de anlisis en un diagrama de

clases

Ingeniera del software

23

Anlisis del caso de uso: Validar usuario

Validar usuario

Realizacin en anlisis

Interfaz de cajero

UsuariosDelBanco
(from Logical View)

Autenticar
(from Logical View)

Ingeniera del software

24

2.2.1. Actividades. Anlisis casos de uso


Describir las interacciones entre objetos
Utilizar

diagramas de colaboracin instancias y enlaces 1 diagrama de colaboracin por cada camino del caso de uso Sobre los diagramas de colaboracin: inicia un actor expresin de las interacciones: mensajes

Ingeniera del software

25

Anlisis del caso de uso: Validar usuario Camino Bsico


3: cdigo 1: introducir tarjeta 4: autentica (datos, cdigo)

: Cliente del banco

7: visualiza (opciones) 2: teclear cdigo : Interfaz de cajero : Autenticar 5: valida (datos, codigo)

8: seleccioneOpcion (opciones) 6: OK

: UsuariosDelBanco

Ingeniera del software

26

Anlisis del caso de uso: Validar usuario Camino Alternativo: Cdigo incorrecto
3: cdigo 4: autentica (datos, cdigo)

1: introducir tarjeta

: Cliente del banco

7: visualiza (error) 2: teclear cdigo : Interfaz de cajero : Autenticar 5: valida (datos, codigo) 8: teclear cdigo 6: Error

Faltara: - anular transaccin (despus del 2) - si 3 veces error: cancelar y quedarse con la tarjeta.

: UsuariosDelBanco

Ingeniera del software

27

Anlisis del caso de uso: Sacar dinero

Sacar dinero

Realizacin en anlisis

Interfaz de cajero

Transaccin
(from Logical View)

Cuenta
(from Logical View)

Cliente del banco

Interfaz de cajero
(from Use Case View)

Transaccin

Cuenta
28

Ingeniera del software

Anlisis del caso de uso: Sacar dinero


Camino bsico
11: dinero retirado 9: tarjeta retirada 3: importe 4: retirarDinero (importe) 1: sacar dinero

: Cliente del banco

7: expulsaDinero (importe) 2: teclee importe : Interfaz de cajero : Transaccin 8: retirar tarjeta 5: reintegro (importe) 6: OK

10: retirar dinero 12: teclear cdigo

: Cuenta
Ingeniera del software 29

Anlisis del caso de uso: Sacar dinero


Camino Alternativo: No hay saldo
10: tarjeta retirada 3: importe 4: retirarDinero (importe) 1: sacar dinero

: Cliente del banco

7: no hay fondos 2: teclee importe : Interfaz de cajero 8: no hay saldo suficiente

: Transaccin 5: reintegro (importe)

9: retirar tarjeta 11: teclear cdigo

6: no hay saldo

Falta: - en el cajero no hay dinero. - se ha superado el lmite diario


Ingeniera del software

: Cuenta

30

Anlisis del caso de uso: Ingresar dinero


Ingresar dinero Realizacin en anlisis

Interfaz de cajero

Transaccin
(from Logical View)

Cuenta
(from Logical View)

Cliente del banco

Interfaz de cajero
(from Use Case View)

Transaccin

Cuenta

Ingeniera del software

31

Anlisis del caso de uso: Ingresar dinero


Camino bsico
5: dinero introducido 6: validar (importe) 3: importe 1: ingresar dinero 7: ingresarDinero (importe)

: Cliente del banco

2: teclee importe : Interfaz de cajero

10: OK : Transaccin

4: introducir dinero

8: ingreso (importe) 9: OK

11: dinero ingresado

: Cuenta

Ingeniera del software

32

Anlisis del caso de uso: Ingresar dinero


Camino alternativo: Cantidad incorrecta

: Cliente del banco

: Interfaz de cajero

Ingeniera del software

33

Anlisis del caso de uso: Ingresar dinero


Camino Alternativo: Cantidad incorrecta
5: dinero introducido 6: validar (importe) 3: importe 1: ingresar dinero

: Cliente del banco

2: teclee importe : Interfaz de cajero

4: introducir dinero

7: importe incorrecto

Ingeniera del software

34

Anlisis del caso de uso: Transferencia


Suponemos que el usuario ya ha sido identificado. La cuenta origen es la de la tarjeta y hay que teclear la destino. El importe y el n de cuenta destino se dan juntos. Mirar primero si hay saldo y luego sacar.

Transferencia

Realizacin en anlisis

Interfaz de cajero

Transaccin
(from Logical View)

Cuenta
(from Logical View)

Ingeniera del software

35

Anlisis del caso de uso: Transferencia


Camino bsico
5: cuenta destino 3: cantidad 1: transferencia 6: transferencia (cuenta, cantidad)

: Cliente del banco

11: OK : Interfaz de cajero : Transaccin 7: reintegro (cantidad) 9: ingreso (cantidad) 8: OK 10: OK

2: teclee cantidad

4: teclee cuenta destino

12: transferencia realizada

cuentaOrigen : Cuenta

cuentaDestino : Cuenta

Ingeniera del software

36

Anlisis del caso de uso: Transferencia C. Alternativo: No hay fondos en la cuenta origen
5: cuenta destino 3: cantidad 1: transferencia 6: transferencia (cuenta, cantidad)

: Cliente del banco

: Interfaz de cajero

: Transaccin 7: reintegro (cantidad)

2: teclee cantidad

4: teclee cuenta destino

cuentaOrigen : Cuenta

cuentaDestino : Cuenta

Ingeniera del software

37

Anlisis del caso de uso: Transferencia


C. Alternativo: No hay fondos en la cuenta origen
5: cuenta destino 3: cantidad 1: transferencia 6: transferencia (cuenta, cantidad)

: Cliente del banco

9: no hay fondos : Interfaz de cajero : Transaccin 7: reintegro (cantidad)

2: teclee cantidad 4: teclee cuenta destino

8: no hay saldo

10: no hay fondos

Ingeniera del software

cuentaOrigen : Cuenta

38

Anlisis del caso de uso: Transferencia


Camino Alternativo: Cuenta destino incorrecta 5: cuenta destino
3: cantidad 1: transferencia 6: transferencia (cuenta, cantidad)

: Cliente del banco


2: teclee cantidad

: Interfaz de cajero

: Transaccin 7: reintegro (cantidad) 9: ingreso (cantidad)

4: teclee cuenta destino

8: OK

cuentaOrigen : Cuenta

cuentaDestino : Cuenta

Ingeniera del software

39

Anlisis del caso de uso: Transferencia


Cuenta destino 5:incorrecta cuenta destino
3: cantidad 1: transferencia 6: transferencia (cuenta, cantidad) 11: rollback

12: error

: Cliente del banco


2: teclee cantidad

: Interfaz de cajero

: Transaccin 7: reintegro (cantidad) 9: ingreso (cantidad)

4: teclee cuenta destino

8: OK 10: error

13: error

cuentaOrigen : Cuenta

cuentaDestino : Cuenta

Ingeniera del software

40

Diagrama de clases completo (ejemplo)

Cuenta

Cliente del banco

Interfaz de cajero
(from Use Case View)

Transaccin

UsuariosDelBanco

Ingeniera del software

41

2.2.3. Actividades. Anlisis de las clases


2.1 Artefactos. 2.1.1 Modelo de anlisis. 2.1.2 Clases de anlisis. 2.1.3 Realizacin en anlisis de los C.U. 2.1.4 Paquetes de anlisis

2.2 Actividades. 2.2.1. Anlisis de los casos de uso. 2.2.2. Anlisis de las clases. 2.2.3. Anlisis de los paquetes.

Identificar las responsabilidades de las clases de anlisis Identificar atributos y relaciones de las clases de anlisis. Capturar requisitos especiales

Ingeniera del software

42

2.2.3. Actividades. Anlisis de las clases


Identificar responsabilidades
En

cada caso de uso, ver qu papel juega (diagramas de colaboracin). Combinar papeles y describirlos juntos.

Ingeniera del software

43

Anlisis de las clases. Identificar responsabilidades. Validar usuario. Secuencia correcta


3: cdigo 1: introducir tarjeta 4: autentica (datos, cdigo)

: Cliente del banco

7: visualiza (opciones) 2: teclear cdigo : Interfaz de cajero : Autenticar 5: valida (datos, codigo) 8: seleccioneOpcion (opciones) 6: OK

Interfaz de cajero visualizar introducir tarjeta visualizar teclear cdigo leer cdigo visualizar (opciones) seleccioneOpcion (opciones)

Transaccin autentica (datos, cdigo) UsuariosDelBanco valida (datos, cdigo)


: UsuariosDelBanco

Ingeniera del software

44

Anlisis de las clases. Identificar responsabilidades Validar usuario. Secuencia correcta


3: cdigo 1: introducir tarjeta 4: autentica (datos, cdigo)

: Cliente del banco

7: visualiza (opciones) 2: teclear cdigo : Interfaz de cajero : Autenticar 5: valida (datos, codigo)

8: seleccioneOpcion (opciones) 6: OK

Interfaz de cajero Visualizar (mensaje) leer cdigo seleccioneOpcion (opciones)

Transaccin autentica (datos, cdigo) UsuariosDelBanco valida (datos, cdigo)


: UsuariosDelBanco

Ingeniera del software

45

Anlisis de las clases. Identificar responsabilidades Validar usuario. Cdigo incorrecto


3: cdigo 4: autentica (datos, cdigo)

1: introducir tarjeta

: Cliente del banco

7: visualiza (error) 2: teclear cdigo : Interfaz de cajero : Autenticar 5: valida (datos, codigo) 8: teclear cdigo

Interfaz de cajero Visualizar (mensaje) leer cdigo seleccioneOpcion (opciones)

Transaccin autentica (datos, cdigo) UsuariosDelBanco valida (datos, cdigo)

6: Error

: UsuariosDelBanco

Ingeniera del software

46

Anlisis de las clases. Identificar responsabilidades Sacar dinero. Secuencia correcta


11: dinero retirado 9: tarjeta retirada 3: importe 1: sacar dinero 2: teclee importe 7: expulsaDinero (importe) 8: retirar tarjeta : Interfaz de cajero : Transaccin 10: retirar dinero 12: teclear cdigo 5: reintegro (importe) 6: OK 4: retirarDinero (importe)

: Cliente del banco

Interfaz de cajero Visualizar (mensaje) leer cdigo seleccioneOpcion (opciones) leer importe (3) expulsaDinero (importe) (7)

Transaccin autentica (datos, cdigo) retirarDinero (importe) (4) UsuariosDelBanco valida (datos, cdigo) Cuenta reintegro (importe) (5)
Ingeniera del software

: Cuenta

47

2.2.3. Actividades. Anlisis de las clases


Identificar atributos
Suelen

ser nombres. Los tipos son conceptuales Clases entidad: derivados del dominio. Clases interfaz con actores humanos: campos de texto, etiquetas, etc Clases interfaz con subsistemas externos: propiedades de la interfaz de comunicacin. Clases control: estado de la sesin actual.

Ingeniera del software

48

Anlisis de las clases. Identificar atributos Validar usuario. Secuencia correcta


3: cdigo 1: introducir tarjeta 4: autentica (datos, cdigo)

: Cliente del banco

7: visualiza (opciones) 2: teclear cdigo : Interfaz de cajero : Autenticar 5: valida (datos, codigo)

8: seleccioneOpcion (opciones) 6: OK

Interfaz de cajero Transaccin cdigoCuenta UsuariosDelBanco coleccin de pares (datosCuenta, codigo)


Ingeniera del software 49

: UsuariosDelBanco

Anlisis de las clases. Identificar atributos Transferencia. Secuencia correcta


5: cuenta destino 3: cantidad 1: transferencia 2: teclee cantidad 6: transferencia (cuenta, cantidad)

: Cliente del banco

11: OK : Interfaz de cajero : Transaccin 7: reintegro (cantidad)

4: teclee cuenta destino 9: ingreso (cantidad) 8: OK 10: OK

12: transferencia realizada

Interfaz de cajero Transaccin cdigoCuenta cuentaOrigen : Cuenta cantidad UsuariosDelBanco coleccin de pares (datosCuenta, codigo)
Ingeniera del software

Cuenta saldo

cuentaDestino : Cuenta

50

Anlisis de las clases


Clase
Interfaz de cajero

Atributos
Definir IU

Responsabilidades
visualizar (mensaje) leer (tarjeta); leer (cdigo) leer (importe) expulsarDinero (importe) noHayFondos validar (importe); errorIngreso seleccioneOpcion (opciones) validar (datos, cdigo)

UsuariosDeBanco

coleccin de pares (datosCuenta, codigo) Saldo lmite diario cdigo cuenta cantidad

Cuenta

reintegro (importe) ingreso (importe) autenticar (datos, cdigo) retirarDinero (importe) ingresarDinero (importe) transferencia (cuenta, cantidad)

Transaccin

Ingeniera del software

51

2.2.3. Actividades. Anlisis de las clases


Identificar asociaciones y agregaciones
Definir

multiplicidad y papeles Agregacin y composicin Identificar generalizaciones y/o especializaciones entre clases

Ingeniera del software

52

2.2.4. Actividades. Anlisis de los paquetes


Paquetes dbilmente acoplados Elementos cohesionadoss Clases de interaccin

Ingeniera del software

53