5.1 Ejemplos UML
5.1 Ejemplos UML
5.1 Ejemplos UML
Tema 4
Indice
z Cajeros Automticos z Sistema de Gestin de Trfico 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.
actor
consorcio
cliente banco
Realizar Operacin
<<extend>> <<extend>>
Transferencia
<<include>> <<extend>>
actor
banco Informacin
Caso de Uso
Validar Tarjeta y Clave (Refinado)
Actores primarios: Cliente del Banco, Consorcio, Banco Interesados I t d y Objetivos: Obj ti Cliente del Banco: quiere realizar una operacin con el ATM de manera rpida, para lo que debe validar su tarjeta y contrasea. C Consorcio: i Quiere Q i id tifi identificar correctamente t t el l banco b d l cliente del li t y mediar en la validacin 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 el l mismo. i Garanta de xito (post-condiciones): La tarjeta se valida correctamente.
5
Caso de Uso
Validar Tarjeta y Clave (Refinado)
Escenario Principal p de xito: 1. El ATM pide al cliente que inserte la tarjeta de crdito. 2 El cliente 2. li t i inserta t l la t tarjeta j t d de crdito. dit 3. El ATM acepta la tarjeta de crdito y lee el nmero de tarjeta y el cdigo del banco. 4. El ATM pide la contrasea al cliente. 5. El cliente teclea la contrasea. 6. El ATM enva el nmero de tarjeta, el cdigo del banco y la contrasea al consorcio. 7 El consorcio enva el nmero de tarjeta y la contrasea al 7. banco correspondiente. 8. El banco notifica la aceptacin al consorcio. 9 El consorcio 9. i notifica ifi l la aceptacin i al l cajero j automtico. i
6
Caso de Uso
Validar Tarjeta y Clave (Refinado)
Escenario Alternativo: 3a. La tarjeta es ilegible 1. El ATM notifica al cliente de que la tarjeta no se puede leer 2. El ATM expulsa la tarjeta. 3. El ATM vuelve a la situacin inicial. 8a. El banco notifica el rechazo al consorcio. 1 El consorcio 1. i notifica tifi el l rechazo h al l cajero j automtico. t ti 2. El cajero automtico notifica el rechazo al cliente y pide que teclee de nuevo la contrasea. 3. Se ha repetido este escenario alternativo menos de 3 veces y el flujo continua en 5 (en el escenario principal). 3a. Se ha repetido este escenario alternativo ms de 3 veces:
1. El ATM retene la tarjeta. 2. El ATM notifica al cliente q que la tarjeta j q queda retenida. 3. El ATM notifica al consorcio que la tarjeta queda retenida. 4. El consorcio notifica al banco que la tarjeta queda retenida. 5. El ATM vuelve a la situacin inicial.
Caso de Uso
Validar Tarjeta y Clave (Refinado)
Requisitos especiales: z Pantalla tctil en panel grande y plano. El texto debe ser visible desde un 50cms. z Respuesta del ATM en menos de 5 secs, el 90% de las veces. z Recuperacin robusta cuando el acceso mediante comunicaciones falla. z Posibilidades de internacionalizacin de texto. z Comunicaciones cifradas. z ... Lista de variaciones de tecnologa y datos: 3a. Distintos tipos de tarjeta de crdito, dependiendo de los bancos emisores. 5a. Se introduce la contrasea mediante un teclado o en la pantalla tctil. 5b. En el futuro, creemos que se utilizarn otrs tcnicas de identificacin basadas en bi biometra. t Frecuencia de ocurrencia: z Puede ser casi continua. Temas abiertos: z Explorar el tema de recuperacin 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
Caso de Uso
Retirar Efectivo(Refinado)
Actores primarios: Cliente del Banco, Consorcio, Banco Interesados y Objetivos: Cliente del Banco: quiere retirar dinero de manera rpida, quiere que se anote la transaccin en su cuenta de manera correcta, quiere la devolucin de su tarjeta y quiz un recibo de la transaccin. Consorcio: Quiere identificar correctamente el banco del cliente y mediar en la transaccin de manera eficaz. Banco: Quiere identificar correctamente la cuenta del cliente, y anotar la transaccin. transaccin Precondiciones: El cliente tiene una cuenta en uno de los bancos del consorcio, ha introducido su tarjeta, y contrasea, y sta se ha validado correctamente por el banco correspondiente. El cliente selecciona retirar efectivo. Garanta G t de d xito it (post-condiciones): ( t di i ) El cliente obtiene su dinero, la transaccin se anota.
Caso de Uso
Retirar Efectivo(Refinado)
10
Caso de Uso
Retirar Efectivo(Refinado)
11. El cliente toma el dinero. 12. El ATM pregunta al cliente si quiere un recibo. 13. El cliente contesta SI. 14. El ATM imprime un recibo y pide al cliente que lo tome. 15. El cliente toma el recibo. 16. El ATM pregunta al cliente si quiere hacer otra operacin. 17. El cliente contesta NO. 18. El ATM expulsa la tarjeta de crdito e indica al cliente que la tome. 19. El cliente toma la tarjeta de crdito. 20. El ATM vuelve a la situacin inicial.
11
Caso de Uso
Retirar Efectivo(Refinado)
Flujos Alternativos: 2a. El cliente pulsa la tecla CANCELAR. 1 El ATM expulsa 1. l la l tarjeta t j t de d crdito dit e i indica di al l cliente li t que l la tome. 2. El cliente toma la tarjeta de crdito. 3 El ATM vuelve 3. l a la l situacin it i i inicial. i i l 3a. La cantidad excede el lmite superior o inferior, se vuelve a 1. 6a. El banco no aprueba la transaccin. 1. El banco enva al consorcio la indicacin de rechazo. 2. El consorcio enva al ATM la notificacin de rechazo. 3. El ATM muestra un mensaje. 4 Se vuelve al caso de uso Realizar 4. Realizar Operacin Operacin para que el usuario seleccione un tipo de transaccin.
12
Caso de Uso
Retirar Efectivo(Refinado)
Flujos Alternativos: 11a. El usuario no toma el dinero despus de 30secs. 1 El ATM indica al cliente que tome el dinero y emite una seal sonora 1. sonora. 2. El cliente toma el dinero y el flujo sigue en 11. 2a. El cliente no toma el dinero despus de 30 secs. 1 El ATM retiene el dinero y la tarjeta 1. tarjeta. 2. El ATM muestra un mensaje al cliente. 3. El ATM notifica al consorcio de la retencin. 4. El consorcio notifica al banco de la retencin. 5. El ATM vuelve a la situacin inicial. 13a. El cliente contesta NO y el flujo j continua en 16. 16a. El cliente contesta SI y el flujo continua en el paso 1 del caso de uso Realizar Operacin
13 (timeouts de comunicaciones, rotura de elementos mecnicos del cajero, etc.)
Caso de Uso
Validar Tarjeta y Clave (Refinado)
Requisitos especiales: z Pantalla tctil en panel grande y plano. El texto debe ser visible desde un 50cms. z Respuesta del ATM en menos de 5 secs, el 90% de las veces. z Recuperacin robusta cuando el acceso mediante comunicaciones falla. z Posibilidades de internacionalizacin de texto. z Comunicaciones cifradas. z ... Lista de variaciones de tecnologa y datos: 2a. Se teclea la cantidad mediante un teclado o en la pantalla tctil. 12a. En lugar de imprimir un recibo se podra mandar un SMS o un e-mail.
Frecuencia de ocurrencia: z Puede ser casi continua. Temas abiertos: z Explorar el tema de recuperacin en caso de fallo de sistemas externos. z Qu modificaciones se necesitan para idiomas y paises distintos? z
14
Modelo de Objetos
z Identificar objetos y clases z Identificar y depurar relaciones z Identificar atributos de objetos y relaciones z Aadir herencia z Comprobar los casos de uso (iterar) z Modularizar z Aadir y simplificar mtodos
15
Modelo de Objetos
Identificar Objetos y Clases
z Seleccionar S l i nombres b en l los requisitos. i it z Aadir clases adicionales procedentes de nuestro t conocimiento i i t d del ld dominio. i i z Eliminar redundancias. z Eliminar clases irrelevantes. z Eliminar clases vagas. z Separar atributos. z Separar mtodos. z Eliminar objetos de diseo. z Resultado: Preparar diccionario de clases clases.
16
Modelo de Objetos
Seleccionar Nombres en los Requisitos
Se desea disear el software necesario para una red bancaria provista de cajeros automticos (ATMs), que sern compartidos por un consorcio de bancos. Cada banco dispone de una serie de servidores, provistos de software propio, que llevan la informacin sobre sus cuentas y procesa las transacciones que actan sobre dichas cuentas. cuentas A estos servidores estn 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. Los cajeros automticos aceptan tarjetas de crdito, interaccionan con el para llevar a cabo las usuario, se comunican con un ordenador central p transacciones, entregan dinero en efectivo al usuario e imprimen recibos. El sistema llevar el registro de las transacciones efectuadas, cumplir caractersticas aceptables de seguridad y manejar accesos concurrentes a la misma cuenta. El coste de desarrollo de la parte compartida del sistema se dividir entre los bancos que forman parte del consorcio en funcin del nmero de clientes provistos de tarjetas de crdito. 17
Modelo de Objetos
Seleccionar Nombres en los Requisitos
z z z z z z z z
Software, S ft Red bancaria, Cajero automtico (ATM) (ATM), Consorcio de bancos, Banco Banco, Servidores, Cuenta bancaria, bancaria Informacin sobre la cuenta, z Transaccin de cajero, z Estaciones de cajero, z Cajero humano,
zTarjeta T j t de d crdito, dit zUsuario, zOrdenador central central, zTransaccin Remota, zDinero en efectivo, zRecibo, zSistema, zRegistro de transacciones, transacciones zCaractersticas de seguridad, zAcceso a la cuenta cuenta, zCoste de desarrollo, zParte compartida, zCliente. 18
Modelo de Objetos
Identificar Objetos y Clases
d de
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.
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 (un atributo objeto ( j se representa p mediante una relacin). ) objetos { En el ejemplo, pueden considerarse atributos Informacin sobre la cuenta, (atributo de Cuenta bancaria), Dinero en efectivo y (atributos de Cajero j automtico), q que p pasan a ser clases Recibo ( eliminadas.
z Separar mtodos
{ Observacin: Ob i algunos l nombres b ( (por ejemplo, j l Llamada Ll d telefnica t l f i ) definen realmente operaciones o eventos.
Modelo de Objetos
Identificar Objetos y Clases
z z z z z z z z z z z
Cajero C j automtico t ti (ATM) (ATM), Consorcio de bancos, Banco Banco, Servidores, Cuenta bancaria, bancaria Transaccin, Estaciones de cajero cajero, Cajero humano, j de crdito, , Tarjeta Ordenador central, Cliente.
21
Modelo de Objetos
Identificar Objetos y Clases
Consorcio Banco Cuenta Cliente
Ordenador Central
Cajero Humano
Tarjeta de Crdito
22
Modelo de Objetos
Diccionario de Clases
z El diccionario de clases contiene la definicin detallada de todas las clases en lenguaje natural. Ejemplo:
{ Cajero automtico (ATM): Terminal remoto que permite a los clientes realizar li t transacciones i utilizando tili d tarjetas t j t de d crdito dit para identificarse. id tifi El ATM interacciona con el cliente para identificar la transaccin deseada y sus datos asociados, enva esta informacin al ordenador central para su validacin y proceso, y entrega al usuario dinero en efectivo y un recibo. Suponemos que el ATM no opera cuando est desconectado de la red. { Consorcio de bancos: Conjunto organizado de bancos que lleva la gestin de los cajeros automticos. Suponemos que slo se gestionan transacciones para los bancos que pertenecen al consorcio. i { Banco: Institucin financiera que maneja las cuentas bancarias de sus clientes li t y emite it tarjetas t j t d crdito de dit que facilitan f ilit el l acceso a dichas cuentas a travs de la red de cajeros automticos. 23
Modelo de Objetos
Identificar y depurar relaciones
z Seleccionar S l i verbos b relacionales l i l en l los requisitos. i it z Aadir relaciones adicionales procedentes de nuestro t conocimiento i i t d del ld dominio. i i z Eliminar relaciones de diseo o entre clases eliminadas. li i d z Eliminar eventos transitorios. z Reducir relaciones ternarias. z Eliminar relaciones redundantes o derivadas. z Aadir relaciones olvidadas. z Definir la multiplicidad de cada relacin.
24
Relaciones adicionales implcitas en el texto 25. 26 27. Las Cuentas bancarias estn en los Bancos. El Ordenador Od d cent t l pertenece t al l Consorcio C i . Los Bancos tienen Clientes.
28
Modelo de Objetos
Diagrama de Clases inicial
Consorcio
1 posee 1 0 * 0..
Banco
1 posee 1 1
Cuenta
1 1
0 * 0.. 1
1 tiene
Cliente
1
Ordenador Central
1
Cajero Humano
1 posee introducida por
tiene
tiene accede a
0 * 0..* 1 0..*
0 * 0..*
0 * 0..*
ATM
1 realizada en 0..* 0..* 0..*
introducida en
Transaccin de Cajero
tiene 1
0..*
0..*
Transaccin T i Remota
autorizada por
Tarjeta T j t de d 30 Crdito
z Distinguir los objetos de los atributos z Distinguir entre los atributos de objetos y de relaciones z Eliminar Eli i atributos t ib t privados i d (d (de di diseo) ) z Eliminar a at atributos butos de deta detalle e fino o z Localizar atributos discordantes (muy diferentes de los dems dems; p puede ede con convenir enir dividir la clase en dos)
31
z Atributos de las relaciones (la multiplicidad de la relacin queda sobreentendida al usar un "cdigo")
8 y 9: Cdigo de la estacin de cajero. g del cajero j automtico. 15: Cdigo 16a: Cdigo del banco. 23: Cdigo del banco. 25: Cdigo g de la cuenta. 29: Cdigo de empleado.
32
Modelo de Objetos
Diagrama de Clases, atributos
Consorcio
1 1 posee 1 se comunica con 0..* 0..*
Banco
nombre 1 posee 1 1
gestiona 0..*
Cuenta
saldo Limite tipo 1 1 tiene
0..*
1 trabaja en 0 * 0..*
Ordenador Central
1 se comunica con 0..*
Cajero Humano
nombre 1
tiene accede a
ATM
disponible entregado 1 realizada en 0 * 0..*
Transaccin Remota
tipo fecha_hora cantidad
0..*
Tarjeta de Crdito
clave 33 1 codigo tajeta
0..*
Aadir Herencia
z Introducimos clases nuevas (quiz abstractas) que contienen informacin comn a dos o ms clases preexistentes. z Procurar evitar la herencia mltiple, a menos que sea estrictamente necesaria. necesaria z Resultado: Primer diagrama de clases z En el ejemplo:
{ La clase Estacin de entrada ser superclase de Cajero automtico y de Estacin de cajero. { La clase Transaccin ser superclase de Transaccin de cajero y de Transaccin remota. { Podran refinarse los tipos de cuentas
34
Modelo de Objetos
Diagrama de Clases, herencia
Consorcio
1 1 posee p 1 se comunica con 0..* 0..*
Banco
nombre 1 posee 1 1
gestiona 0..*
Cuenta
saldo limite tipo 1
1 trabaja en 0..*
Ordenador Central
1 se comunica con 0 * 0..*
Cajero Humano
nombre 1 introducida por 0..* accede a tiene
ATM
disponible entregado
Estacion de Entrada
0 * 0..
Transaccin de Cajero
0 * 0..*
0..* 1 realizada en
Transaccin Remota
0..*
Tarjeta de Crdito
clave codigo tarjeta 35 1
autorizada por
36
Modelo de Objetos
Diagrama de Clases, Iteracin
0..* realizada en 1..*
Transaccin
fecha_hora
Actualizacin
cantidad tipo 0..*
Transaccin De Cajero
Intro. por 0..* 1
Transaccin Remota
comenzada por 0..* 1..* 1
ATM
disponible entregado 0..* 1
Cajero H Humano
nombre trabaja 0..* en emite 1 1
Autorizacin
tiene 1
Consorcio
Banco
nombre 0..*
Cliente
gestiona nombre direccin 1 tiene 1..* 1..*
Tarjeta de Crdito
codigo banco codigo tarjeta numero tiene
Cuenta
0..* saldo limite tipo 1
38
Modularizar
z Agrupar A clases l en mdulos. d l z En el ejemplo de los cajeros a automticos. tomticos Posibles mdulos:
{ Cajeros en general: Cajero, Estacin de cajero, ATM, Estacin de entrada. { Cuentas en general: Cuenta, Tarjeta de crdito, Autorizacin, Cliente, Transaccin, Transaccin de cajero, Transaccin remota. { Bancos: Banco, Consorcio.
Diagrama de Paquetes
Cajeros
Cuentas
Bancos
40
Modelo Dinmico
Consta de los siguientes pasos: z Identificar sucesos z Construir diagramas de estados z Comprobar consistencia (iterar) z Aadir mtodos
41
Identificar Mensajes
z Los L mensajes j se extraen t d de l los casos d de uso (escenarios). Pueden ser de los siguientes tipos:
{ Seales S l { Entradas { Decisiones { Interrupciones { Transiciones { Acciones externas { Condiciones de error
Diagrama de Secuencia
Validar Tarjeta y Clave
:ATM
:Consorcio
:Banco
verificar cuenta verificar tarjeta con banco cuenta del banco valida cuenta valida
43
Diagrama de Secuencia
R ti Retirar Efectivo Ef ti
:ATM pedir cantidad intro cantidad Proc. transaccin Proc. Transaccin del Banco Transaccin del Banco OK Transaccin OK Entregar dinero Peticin tomar dinero Tomar dinero Imprimir Recibo Peticin continuacin Terminar Expulsar Tarjeta Peticin Recogida Tarjeta Mostrar Pantalla Principal :Consorcio :Banco
:Usuario
44
Identificar Mensajes
z Los casos de uso (escenarios) se convierten en diagramas de secuencia. Estas se compactan en diagramas de colaboracin. z En el ejemplo de los cajeros automticos:
{ El cliente introduce la contrasea define un mensaje de entrada que el objeto Cliente enva al objeto Cajero automtico. El cajero automtico entrega g el dinero al cliente es un evento q que el objeto j Cajero j automtico enva al objeto Cliente.
z No agrupar los mensajes no equivalentes: El banco autoriza la que El banco rechaza la transaccin. transaccin es distinto evento q
45
z No hace falta construir diagramas de estado de las clases pasivas, que no cambian de estado de modo significativo: q g
{ Tarjeta de crdito { Transaccin { Cuenta
z Tampoco hace falta considerar a fondo los objetos externos, que no forman parte del sistema informtico:
{ Cliente { Cajero humano
46
Modelo de Objetos
Diagrama de Transicin Estados, clase ATM
codigo_error
47
Modelo de Objetos
Diagrama de Transicin Estados, clase Banco
Banco
procesar_transaccion(tarjeta, trans) [res==OK]/consorcio.transaccion [ ] _ok(tarjeta) ( j ) [res==BAD]/consorcio.transaccion_fallo(tarjeta) [res==BAD]/consorcio.cuenta_invalida(tarjeta) Actualizando Cuenta do/res=actualizar_cuenta(tarjeta, trans)
[res==OK]
[res==BAD]/consorcio.bad_password(tarjeta) [res==OK]/consorcio.cuenta_ok(tarjeta)
48
Modelo de Objetos
Diagrama de Transicin Estados, clase Consorcio
49
Ejercicio
z Son consistentes los diagramas anteriores entre s? z Son consistentes con los casos de uso? z Aadir A di l la i informacin f i d de l los casos alternativos y excepciones (timeouts, etc.)
50
Arquitectura
Diagrama de Despliegue
51
z Problema: P bl requisitos i it poco claros l y contradictorios. t di t i z Se hace necesario un modelo de desarrollo iterativo e incremental. Metodologa RUP. z Sistema complejo, varios aos de desarrollo: permitir cierto grado de cambio en los requisitos, para aprovechar h avances en el l hardware. h d z Ri Riesgo de d parlisis li i en el l anlisis li i , dado d d que el l nmero de requisitos es muy grande.
53
z Restricciones:
{ Seguimiento de los estndares nacionales, governamentales e industriales. { Maximizar el uso de componentes COTS (commercial-off-the-shelf) h d hardware y software. ft
56
zC Controlador t l d (Dispatcher) (Di t h ): Establece E t bl l las rutas t d de l los trenes y sigue el progreso de los trenes individuales. z Maquinista (Train Engineer): Monitoriza el estado del tren y opera p el mismo. z Operario de Mantenimieno (Maintainer): Monitoriza el estado d y mantiene i l los sistemas i d del l tren. z GPS Navstar N t : Proporciona P i l los servicios i i d de l localizacin li i para el seguimiento de los trenes.
57
58
62
63
64
65
Definicin de la Arquitectura
66
Ingeniera de Sistemas
67
Definicin de la Arquitectura
68
Abstracciones y Mecanismos
Anlisis de dominio
z El sistema comprende cuatro abstracciones o mecanismos principales:
{ { { { Red y Comunicaciones. Base de Datos. Interfaz hombre-mquina. Control en tiempo p real de dispositivos p analgicos g y digitales. g Trenes: incluye vagones y locomotoras. Vas de tren: perfil perfil, grado grado, dispositivos de rail rail. Planes: horarios, rdenes, permisos, autoridad y asignacin de personal. Paso de mensajes. Planificacin de los horarios del tren. Visualizacin de informacin. Adquisicin de datos de los sensores.
69
Construccin
Diseo de la Arquitectura
z Paso P d mensajes: de j
{ Entre ordenadores y dispositivos. p { Entre ordenadores.
70
71
Planificacin 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 vas.
72
Planificacin de horarios
z Ejemplo de las acciones que puede contener un plan.
Time Location 0800 Pueblo 1300 Denver 1600 Pueblo Speed Authority Orders Set out 30 cars Set out 20 cars Return to yard As posted See yardmaster Depart yard 45 mph p As posted
73
Planificacin de horarios
74
Visualizacin de Informacin
75
76