UML Ejemplos
UML Ejemplos
Tema 4
Grupo 46
TACC II
Curso 2008/09
1
Indice
zCajeros Automáticos
zSistema de Gestión de Tráfico Ferroviario
“Object-Oriented Analysis and Design with Applications, Third Edition” Grady
Booch; Robert A. Maksimchuk; Michael W. Engle; Bobbi J. Young Ph.D.;
Jim Conallen; Kelli A
A. Houston
Houston. Addison Wesley Professional
Professional, 2007
2007.
2
Ejemplo
j p de Análisis Orientado a Objetos
j
ATMs
Se desea diseñar el software necesario para una red bancaria provista de
cajeros automáticos (ATMs), que serán compartidos por un consorcio de
bancos. Cada banco dispone de una serie de servidores, provistos de
software propio, que llevan la información sobre sus cuentas y procesa
las transacciones que actúan sobre dichas cuentas.
cuentas A estos servidores
están conectados las estaciones de cajero, que son propiedad del banco
y en las que operan cajeros humanos, que pueden crear cuentas e
introducir transacciones sobre ellas.
ATM
Retirar
<<extend>> «actor»
Efectivo
consorcio
<<extend>> D ó it
Depósito
Realizar
Operación
<<extend>>
cliente
Transferencia
banco «actor»
<<extend>>
<<include>> banco
Información
Validar
Tarjeta y
Clave 4
Caso de Uso
Validar Tarjeta y Clave (Refinado)
Actores primarios:
Cliente del Banco, Consorcio, Banco
IInteresados
t d y Objetivos:
Obj ti
Cliente del Banco: quiere realizar una operación con el ATM de
manera rápida, para lo que debe validar su tarjeta y contraseña.
C
Consorcio:
i Quiere
Q i id tifi
identificar correctamente
t t ell banco
b d l cliente
del li t y
mediar en la validación de manera eficaz.
Banco: Quiere identificar correctamente la identidad de la tarjeta.
Precondiciones:
El cliente tiene una cuenta en uno de los bancos del consorcio, así
como una tarjeta
t j t emitida
itid por ell mismo.
i
Frecuencia de ocurrencia:
z Puede ser casi continua.
Temas abiertos:
z Explorar el tema de recuperación en caso de fallo de sistemas externos.
z ¿Qué
Q é modificaciones
difi i se necesitan
it para idi
idiomas y paises
i di
distintos?
ti t ?
z … 8
Caso de Uso
Retirar Efectivo(Refinado)
Actores primarios:
Cliente del Banco, Consorcio, Banco
Interesados y Objetivos:
Cliente del Banco: quiere retirar dinero de manera rápida, quiere que se
anote la transacción en su cuenta de manera correcta, quiere la devolución
de su tarjeta y quizá un recibo de la transacción.
Consorcio: Quiere identificar correctamente el banco del cliente y mediar
en la transacción de manera eficaz.
Banco: Quiere identificar correctamente la cuenta del cliente, y anotar la
transacción.
transacción
Precondiciones:
El cliente tiene una cuenta en uno de los bancos del consorcio, ha
introducido su tarjeta, y contraseña, y ésta se ha validado correctamente
por el banco correspondiente. El cliente selecciona retirar efectivo.
Garantía
G tí de
d éxito
é it (post-condiciones):
( t di i )
El cliente obtiene su dinero, la transacción se anota. 9
Caso de Uso
Retirar Efectivo(Refinado)
10
Caso de Uso
Retirar Efectivo(Refinado)
11
Caso de Uso
Retirar Efectivo(Refinado)
Flujos Alternativos:
Flujos Alternativos:
Frecuencia de ocurrencia:
z Puede ser casi continua.
Temas abiertos:
z Explorar el tema de recuperación en caso de fallo de sistemas externos.
z ¿Qué modificaciones se necesitan para idiomas y paises distintos?
z …
14
Modelo de Objetos
15
Modelo de Objetos
Identificar Objetos y Clases
z Seleccionar
S l i nombres
b en llos requisitos.
i it
z Añadir clases adicionales procedentes de
nuestro
t conocimiento
i i t d dell d
dominio.
i i
z Eliminar redundancias.
z Eliminar clases irrelevantes.
z Eliminar clases vagas.
z Separar atributos.
z Separar métodos.
z Eliminar objetos de diseño.
z Resultado: Preparar diccionario de clases
clases.
16
Modelo de Objetos
Seleccionar Nombres en los Requisitos
Se desea diseñar el software necesario para una red bancaria provista de
cajeros automáticos (ATMs), que serán compartidos por un consorcio
de bancos. Cada banco dispone de una serie de servidores, provistos
de software propio, que llevan la información sobre sus cuentas y
procesa las transacciones que actúan sobre dichas cuentas.
cuentas A estos
servidores están conectados las estaciones de cajero, que son
propiedad del banco y en las que operan cajeros humanos, que pueden
crear cuentas e introducir transacciones sobre ellas.
z Software,
S ft zTarjeta
zT j t de
d crédito,
édit
z Red bancaria, zUsuario,
z Cajero automático (ATM)
(ATM), zOrdenador central
central,
z Consorcio de bancos, zTransacción Remota,
zDinero en efectivo,
z Banco
Banco,
zRecibo,
z Servidores,
zSistema,
z Cuenta bancaria,
bancaria zRegistro de transacciones,
transacciones
z Información sobre la zCaracterísticas de seguridad,
cuenta, zAcceso a la cuenta
cuenta,
z Transacción de cajero, zCoste de desarrollo,
z Estaciones de cajero, zParte compartida,
z Cajero humano, zCliente. 18
Modelo de Objetos
Identificar Objetos y Clases
z Añadir
Añ di clases
l adicionales
di i l procedentes
d t d
de
nuestro conocimiento del dominio.
{ Podemos
P d añadir
ñ di la
l clase
l Lí
Línea d comunicaciones.
de i i
z Eliminar redundancias.
{ Cli
Cliente
t y Usuario
U i son la
l misma
i clase.
l N quedamos
Nos d
con Cliente por adaptarse mejor al concepto.
z Eliminar clases irrelevantes.
irrelevantes
{Coste de desarrollo no tiene nada que ver con el
problema, queda fuera del sistema.
z Eliminar clases vagas.
{ Sistema, Características de seguridad, Red bancaria y
Parte compartida pueden considerarse vagas.
19
Modelo de Objetos
Identificar Objetos y Clases
z Separar
S atributos
t ib t
{ Los atributos definen datos asociados a un objeto, en lugar de
j
objetos ((un atributo objeto
j se representa
p mediante una relación).
)
{ En el ejemplo, pueden considerarse atributos Información sobre
la cuenta, (atributo de Cuenta bancaria), Dinero en efectivo y
Recibo ((atributos de Cajero
j automático),
), q
que p
pasan a ser clases
eliminadas.
z Separar métodos
{ Observación:
Ob ió algunos
l nombres
b (
(por ejemplo,
j l Llamada
Ll d telefónica)
t l fó i )
definen realmente operaciones o eventos.
z Eliminar objetos
j de diseño
{ Todas las clases que corresponden más a la solución del
problema que a la situación real, deben considerarse objetos de
diseño y eliminarse en la fase del análisis.
{ En el ejemplo, eliminaremos Registro de transacciones, Línea de
20
comunicaciones, Acceso a la cuenta y Software.
Modelo de Objetos
Identificar Objetos y Clases
z Cajero
C j automático
t áti (ATM)(ATM),
z Consorcio de bancos,
z Banco
Banco,
z Servidores,
z Cuenta bancaria,
bancaria
z Transacción,
z Estaciones de cajero
cajero,
z Cajero humano,
z j
Tarjeta de crédito,,
z Ordenador central,
z Cliente.
21
Modelo de Objetos
Identificar Objetos y Clases
Ordenador
Central Cajero
Servidor del
Banco Humano
ATM
Estaciones Transacción
del Cajero de Cajero
Transacción
Remota Tarjeta de
Crédito
22
Modelo de Objetos
Diccionario de Clases
z Seleccionar
S l i verbos
b relacionales
l i l en llos requisitos.
i it
z Añadir relaciones adicionales procedentes de
nuestro
t conocimiento
i i t d dell d
dominio.
i i
z Eliminar relaciones de diseño o entre clases
eliminadas.
li i d
z Eliminar eventos transitorios.
z Reducir relaciones ternarias.
z Eliminar relaciones redundantes o derivadas.
z Añadir relaciones olvidadas.
z Definir la multiplicidad de cada relación.
24
Identificar y Depurar Relaciones
Seleccionar verbos relacionales en los requisitos
1. Una
1 U Red
R db bancariai está
tá provista
i t de
d Cajeros
C j automáticos.
t áti
2. El Consorcio de bancos comparte los Cajeros automáticos.
3. Cada Banco dispone de un Servidor.
4. El Servidor dispone de Software.
5. Cada Servidor lleva la información sobre las Cuentas bancarias.
6. Cada Servidor pprocesa Transacciones.
7. Una Transacción actúa sobre una Cuenta bancaria.
8. Las Estaciones de cajero están conectadas al Servidor.
9. Las Estaciones de cajero son propiedad del Banco.
10.El Cajero humano opera en la Estación de cajero.
11.El Cajero humano crea Cuentas bancarias.
12 El Cajero humano introduce Transacciones sobre las Cuentas
12.El
bancarias.
13.Los Cajeros automáticos aceptan Tarjetas de crédito.
14 Los Cajeros automáticos interaccionan con el Usuario.
14.Los Usuario
25
Identificar y Depurar Relaciones
Seleccionar verbos relacionales en los requisitos
15.
15 Los Cajeros automáticos comunican con el Ordenador central.
central
16. El Ordenador central lleva a cabo las Transacciones.
17. Los Cajeros automáticos entregan Dinero en efectivo al Usuario.
18
18. L Cajeros
Los C j automáticos
t áti i
imprimen
i R ib
Recibos.
19. El Sistema lleva el Registro de las transacciones.
20. El Sistema cumple Características de seguridad.
21. El Sistema maneja Accesos concurrentes a la Cuenta bancaria.
22. El Coste de desarrollo se divide entre los Bancos.
23. Los Bancos forman p parte del Consorcio.
24. Los Clientes están provistos de Tarjetas de crédito.
z Por ejemplo,
ejemplo la relación número 12 (El Cajero humano introduce
Transacciones sobre las Cuentas bancarias) puede descomponerse en:
12a. El Cajero humano introduce Transacciones
12b Las Transacciones actúan sobre las Cuentas bancarias.
12b. bancarias
28
Identificar y Depurar Relaciones
z Eliminar relaciones redundantes o derivadas
{ Por ejemplo, la relación número 2 es una combinación de las relaciones
número 15 y 26. Hay que tener cuidado, sin embargo, de no eliminar
relaciones aparentemente
p redundantes,, p
pero q
que en realidad son
necesarias. Las redundantes por ejemplo son las que se derivan de la
propiedad transitiva para relaciones.
z Añadir relaciones olvidadas. Por ejemplo:
30. L
30 Los Clientes
Cli t tienen
ti C
Cuentas.
t
31. Las Transacciones son autorizadas por la Tarjeta de crédito.
32. Las Transacciones pueden introducirse en una Estación de cajero.
z Definir la multiplicidad de cada asociación
{ Un Banco puede contener muchas Cuentas.
{ Un Cliente puede tener muchas Cuentas.
{ Un Cliente puede tener muchas Tarjetas de crédito
crédito.
{ Un Banco emplea muchos Cajeros.
{ Un Banco tiene un solo Ordenador del banco.
{ El Ordenador central se comunica con muchos Ordenadores del banco
banco.
{ .... 29
Modelo de Objetos
Diagrama de Clases inicial
0 *
0.. 1 gestiona 0..
0 * 0 *
0.. 1
Consorcio Banco Cuenta Cliente
1 tiene
1 1 1 1 1 1 1
posee posee trabaja
1 1 en 0 *
0..*
tiene
Ordenador 1 0..* Servidor del Cajero
Central se comunica Banco Humano
con 1 tiene
1 1
se comunica posee introducida
se comunica por accede
con con
0 *
0..* 0 *
0..* 0 *
0..* 0 *
0..* a
0..*
Estaciones 1 0..* Transacción
ATM del Cajero introducida de Cajero
en
1
realizada en
0..* tiene 0..* 0..*
0..*
Transacción
T ió Tarjeta
T j t ded
Remota 0..* autorizada por 1 Crédito
30
Identificar Atributos de Objetos y Relaciones
Consorcio Banco
1 gestiona 0..*
Cuenta & tiene Cliente
0..* 0..* 1
1 nombre
posee nombre saldo
dirección
1 1 Limite
1 1 tipo 1
1 se comunica posee trabaja
Ordenador
con 1 en 0 *
0..* 1 1 1
Central
tiene
1 0..* Servidor del Cajero
se comunica Banco Humano
con tiene
0..* 1 nombre
se comunica posee
ATM 1 accede
con introducida
0 *
0..* 0 *
0..* por 0..*
0 * 0..*
0 * a
disponible
entregado Estaciones 1 0..*Transacción
1 del Cajero introducida de Cajero
realizada en en
0 *
0..* tipo
ti
fecha_hora 0..* 0..*
Transacción cantidad
tiene Tarjeta de
Remota 0..*
Crédito
tipo autorizada por clave 33
fecha_hora 1 codigo tajeta
cantidad 0..*
Añadir Herencia
z Introducimos clases nuevas (quizá abstractas) que
contienen información común a dos o más clases
preexistentes.
z En el ejemplo:
{ La clase Estación de entrada será superclase de Cajero
automático y de Estación de cajero.
{ La clase Transacción será superclase de Transacción de
cajero y de Transacción remota
remota.
{ Podrían refinarse los tipos de cuentas 34
Modelo de Objetos
Diagrama de Clases, herencia
1 gestiona 0..* tiene
Consorcio Banco Cuenta 1
Cliente
0..* 0..*
1 nombre
posee
p nombre saldo
dirección
1 1 limite
1 1 tipo 1
1 se comunica posee trabaja
Ordenador
con 1 en 0..* 1 1
Central
1 0..* Servidor del Cajero
se comunica Banco Humano
con tiene
0 *
0..* 1 nombre
posee
se comunica 1
ATM con introducida accede
ucida
0..* 0..* por 0..* a
disponible
introdu
entregado Estaciones 1 0 *
0.. Transacción
Estacion de del Cajero de Cajero
en
Entrada
0..* 0 *
0..*
0..*
1 & tiene
Transacción 0..* tiene
Tarjeta de
realizada en
tipo Crédito
Transacción f h h
fecha_hora clave
Remota cantidad codigo tarjeta
35
0..* 1
autorizada por
Comprobar los Casos de Uso (iterar)
Para localizar fallos que deben corregirse fijarse en:
36
Comprobar los Casos de Uso (iterar)
z En el ejemplo de los cajeros automáticos:
z IIntroducimos
d i l clase
la l A t li
Actualización
ió de
d cuenta
t para refinar
fi ell concepto de
d
Transacción. Una misma transacción puede estar compuesta de varias
actualizaciones de cuenta (por ejemplo, transferencia entre cuentas son
)
dos actualizaciones).
z No hay distinción significativa entre Banco y Ordenador del banco, por una
parte, y entre Consorcio y Ordenador central, por otra. Fusionamos esas
clases
clases.
37
Modelo de Objetos
Diagrama de Clases, Iteración
0..* 1..*
Transacción Actualización
realizada en
fecha_hora cantidad
tipo
1 0..*
Estacion de Transacción Transacción
Entrada De Cajero Remota
Intro. por 0..* comenzada
1..*
1 1
Estaciones por
ATM Cajero
del Cajero 0..*
H
Humano Autorización
disponible 0..*
entregado nombre 0..* clave
trabaja 0..* tiene limite
0..* posee
en 0..* 1
posee emite 1 Aut.
Aut
1 1 1
Cliente 1..* por
Consorcio Banco 1
1 nombre Tarjeta de
nombre gestiona dirección Crédito
0..* 1 codigo banco
tiene codigo tarjeta
1..* 1..* numero
Cuenta
saldo tiene 38
0..* 1
limite
tipo
Modularizar
z Agrupar
A clases
l en módulos.
ód l
Cajeros Cuentas
Bancos
40
Modelo Dinámico
41
Identificar Mensajes
z Los
L mensajesj se extraen
t d
de llos casos d
de uso
(escenarios). Pueden ser de los siguientes tipos:
{Señales
{S ñ l
{Entradas
{Decisiones
{Interrupciones
{Transiciones
{Acciones externas
{Condiciones de error
z Resultados: Diagramas de secuencia y de
colaboración.
42
Diagrama de Secuencia
Validar Tarjeta y Clave
43
Diagrama de Secuencia
R ti
Retirar Efectivo
Ef ti
44
Identificar Mensajes
z Los casos de uso (escenarios) se convierten en diagramas de
secuencia. Estas se compactan en diagramas de colaboración.
codigo_error
47
Modelo de Objetos
Diagrama de Transición Estados, clase Banco
Banco
procesar_transaccion(tarjeta, trans)
Actualizando Cuenta
[[res==OK]/consorcio.transaccion
] _ok(tarjeta)
( j )
do/res=actualizar_cuenta(tarjeta, trans)
[res==BAD]/consorcio.transaccion_fallo(tarjeta)
[res==BAD]/consorcio.cuenta_invalida(tarjeta)
[res==OK]
esperando Verificar Tarjeta Verificar Clave
entry/res=verificar_numero(tarjeta) entry/res=verificar_password(password)
verificar(tarjeta, password)
[res==BAD]/consorcio.bad_password(tarjeta)
[res==OK]/consorcio.cuenta_ok(tarjeta)
48
Modelo de Objetos
Diagrama de Transición Estados, clase Consorcio
49
Ejercicio
50
Arquitectura
Diagrama de Despliegue
51
Sistema de Control de Tráfico Ferroviario
(SCTF)
z Sistema
Si t para ell control
t l de
d tráfico
t áfi ferroviario
f i i (de
(d
pasajeros y carga), que permita incrementar el
tráfico de trenes, así como la programación
predecible de horarios.
52
Sistema de Control de Tráfico Ferroviario
Requisitos
z Problema:
P bl requisitos
i it poco claros
l y contradictorios.
t di t i
z Ri
Riesgo de
d “parálisis
“ áli i en ell análisis”,
áli i ” dado
d d que ell número
ú
de requisitos es muy grande.
53
Sistema de Control de Tráfico Ferroviario
Requisitos: Comienzo (“Inception”)
zDos
D ffunciones
i principales:
i i l enrutado
t d dde
trenes y monitorización.
zC
Controlador
t l d (Dispatcher):
(Di t h ) Establece
E t bl llas rutas
t d de llos
trenes y sigue el progreso de los trenes individuales.
z GPS Navstar:
N t P
Proporciona
i llos servicios
i i d de llocalización
li ió
para el seguimiento de los trenes.
57
Sistema de
Control de
Tráfico
Ferroviario
Diagrama de
Casos de Uso
62
Análisis de la
Funcionalidad
del Sistema
RUP: Elaboración
Caso de uso enrutar tren
63
Análisis de la
F
Funcionalidad
i lid d
del Sistema
RUP: Elaboración
Caso de uso
controlar los
sistemas del
tren y escenario
alternativo
lt ti
64
Análisis de la
Funcionalidad
del Sistema
Elaboración
65
Definición de la
Arquitectura
66
Ingeniería de Sistemas
67
Definición de la Arquitectura
68
Abstracciones y Mecanismos
Análisis de dominio
z El sistema comprende cuatro abstracciones o
mecanismos principales:
{ Red y Comunicaciones.
{ Base de Datos.
{ Interfaz hombre-máquina.
{ Control en tiempo
p real de dispositivos
p analógicos
g y digitales.
g
z Hay tres abstracciones comunes:
{ Trenes: incluye vagones y locomotoras.
{ Vías de tren: perfil
perfil, grado
grado, dispositivos de rail
rail.
{ Planes: horarios, órdenes, permisos, autoridad y asignación de
personal.
z Mecanismos para las abstracciones:
{ Paso de mensajes.
{ Planificación de los horarios del tren.
{ Visualización de información.
{ Adquisición de datos de los sensores. 69
Construcción
Diseño de la Arquitectura
z Paso
P d mensajes:
de j
{ Entre ordenadores
y dispositivos.
p
{ Entre
ordenadores.
z Red distrib ida
distribuida:
contemplar ruido,
fallos de equipos
q p y
seguridad.
70
Mecanismo de Paso de Mensajes
71
Planificación de horarios
z Cada tren tiene un plan activo.
z Cada plan se asigna a un tren.
z Un plan puede puede implicar
varias órdenes y posiciones en
las vías.
72
Planificación de horarios
zEjemplo de las acciones que puede
contener un plan.
73
Planificación de horarios
74
Visualización de Información
75
Arquitectura del Sistema
76