Professional Documents
Culture Documents
Tema 4
Indice
Cajeros Automticos 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 Houston Addison Wesley Professional 2007 A. Houston. Professional, 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 y Objetivos: I t d Obj ti Cliente del Banco: quiere realizar una operacin con el ATM de manera rpida, para lo que debe validar su tarjeta y contrasea. Consorcio: Q i C i Quiere id tifi identificar correctamente el b t t l banco d l cliente y del li t 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 t j t emitida por el mismo. tarjeta itid l i Garanta de xito (post-condiciones): La tarjeta se valida correctamente.
5
Caso de Uso
Validar Tarjeta y Clave (Refinado)
Escenario Principal de xito: p 1. El ATM pide al cliente que inserte la tarjeta de crdito. 2. 2 El cliente i li t inserta l t j t d crdito. t la tarjeta de 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. 7 El consorcio enva el nmero de tarjeta y la contrasea al banco correspondiente. 8. El banco notifica la aceptacin al consorcio. 9. 9 El consorcio notifica l aceptacin al cajero automtico. i ifi la i l j 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. 1 El consorcio notifica el rechazo al cajero automtico. i tifi l h l j 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 que la tarjeta q q j 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: Pantalla tctil en panel grande y plano. El texto debe ser visible desde un 50cms. Respuesta del ATM en menos de 5 secs, el 90% de las veces. Recuperacin robusta cuando el acceso mediante comunicaciones falla. Posibilidades de internacionalizacin de texto. Comunicaciones cifradas. ... 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 biometra. bi t Frecuencia de ocurrencia: Puede ser casi continua. Temas abiertos: Explorar el tema de recuperacin en caso de fallo de sistemas externos. Qu modificaciones se necesitan para idi Q difi i it idiomas y paises di ti t ? i distintos?
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 d it ( G t de xito (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. 1 El ATM expulsa la tarjeta de crdito e i di al cliente que l l l t j t d dit indica l li t la tome. 2. El cliente toma la tarjeta de crdito. 3. 3 El ATM vuelve a la situacin i i i l l l it i inicial. 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. 4 Se vuelve al caso de uso Realizar Operacin para que el Realizar Operacin 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. 1 El ATM indica al cliente que tome el dinero y emite una seal sonora 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. 1 El ATM retiene el dinero y la tarjeta 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 continua en 16. j 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: Pantalla tctil en panel grande y plano. El texto debe ser visible desde un 50cms. Respuesta del ATM en menos de 5 secs, el 90% de las veces. Recuperacin robusta cuando el acceso mediante comunicaciones falla. Posibilidades de internacionalizacin de texto. Comunicaciones cifradas. ... 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: Puede ser casi continua. Temas abiertos: Explorar el tema de recuperacin en caso de fallo de sistemas externos. Qu modificaciones se necesitan para idiomas y paises distintos?
14
Modelo de Objetos
Identificar objetos y clases Identificar y depurar relaciones Identificar atributos de objetos y relaciones Aadir herencia Comprobar los casos de uso (iterar) Modularizar Aadir y simplificar mtodos
15
Modelo de Objetos
Identificar Objetos y Clases
Seleccionar nombres en l requisitos. S l i b los i it Aadir clases adicionales procedentes de nuestro conocimiento d l d i i t i i t del dominio. Eliminar redundancias. Eliminar clases irrelevantes. Eliminar clases vagas. Separar atributos. Separar mtodos. Eliminar objetos de diseo. 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 A estos cuentas. 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 , p usuario, se comunican con un ordenador central para llevar a cabo las 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 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
Software, S ft Red bancaria, Cajero automtico (ATM) (ATM), Consorcio de bancos, Banco, Banco Servidores, Cuenta bancaria, bancaria Informacin sobre la cuenta, Transaccin de cajero, Estaciones de cajero, Cajero humano,
Tarjeta d T j t de crdito, dit Usuario, Ordenador central central, Transaccin Remota, Dinero en efectivo, Recibo, Sistema, Registro de transacciones, transacciones Caractersticas de seguridad, Acceso a la cuenta cuenta, Coste de desarrollo, Parte compartida, Cliente. 18
Modelo de Objetos
Identificar Objetos y Clases
de d
Eliminar redundancias.
Cliente Usuario son l misma clase. N quedamos Cli t y U i la i l Nos d con Cliente por adaptarse mejor al concepto.
Modelo de Objetos
Identificar Objetos y Clases
Separar atributos S t ib t
Los atributos definen datos asociados a un objeto, en lugar de j ( j p ) objetos (un atributo objeto se representa mediante una relacin). En el ejemplo, pueden considerarse atributos Informacin sobre la cuenta, (atributo de Cuenta bancaria), Dinero en efectivo y ( j ), q p Recibo (atributos de Cajero automtico), que pasan a ser clases eliminadas.
Separar mtodos
Observacin: algunos nombres ( Ob i l b (por ejemplo, Ll j l Llamada t l f i ) d telefnica) definen realmente operaciones o eventos.
Modelo de Objetos
Identificar Objetos y Clases
Cajero automtico (ATM) C j t ti (ATM), Consorcio de bancos, Banco, Banco Servidores, Cuenta bancaria, bancaria Transaccin, Estaciones de cajero cajero, Cajero humano, j , Tarjeta de crdito, 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
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 t li transacciones utilizando t j t d crdito para id tifi i tili d tarjetas de dit identificarse. 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 y emite t j t li t it tarjetas d crdito que f ilit de dit facilitan el acceso a l dichas cuentas a travs de la red de cajeros automticos. 23
Modelo de Objetos
Identificar y depurar relaciones
Seleccionar verbos relacionales en l requisitos. S l i b l i l los i it Aadir relaciones adicionales procedentes de nuestro conocimiento d l d i i t i i t del dominio. Eliminar relaciones de diseo o entre clases eliminadas. li i d Eliminar eventos transitorios. Reducir relaciones ternarias. Eliminar relaciones redundantes o derivadas. Aadir relaciones olvidadas. Definir la multiplicidad de cada relacin.
24
Relaciones adicionales implcitas en el texto 25. 26. 26 27. Las Cuentas bancarias estn en los Bancos. El O d Ordenador central pertenece al C d t l t l Consorcio. i Los Bancos tienen Clientes.
26
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 d T j t de 30 Crdito
Distinguir los objetos de los atributos Distinguir entre los atributos de objetos y de relaciones Eliminar atributos privados (d di ) Eli i t ib t i d (de diseo) Eliminar at butos de deta e fino a atributos detalle o Localizar atributos discordantes (muy diferentes de los dems p ede con enir dems; puede convenir dividir la clase en dos)
31
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 j 15: Cdigo del cajero automtico. 16a: Cdigo del banco. 23: Cdigo del banco. 25: Cdigo de la cuenta. g 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
Introducimos clases nuevas (quiz abstractas) que contienen informacin comn a dos o ms clases preexistentes. Procurar evitar la herencia mltiple, a menos que sea estrictamente necesaria. necesaria Resultado: Primer diagrama de clases 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 remota. Podran refinarse los tipos de cuentas
34
Modelo de Objetos
Diagrama de Clases, herencia
Consorcio
1 1 p posee 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 Humano H
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
Agrupar clases en mdulos. A l d l En el ejemplo de los cajeros a tomticos automticos. Posibles mdulos:
Cajeros en general: Cajero Estacin de cajero, ATM Cajero, cajero ATM, Estacin de entrada. Cuentas en general: Cuenta, Tarjeta de crdito, Autorizacin, Cliente, Transaccin, 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: Identificar sucesos Construir diagramas de estados Comprobar consistencia (iterar) Aadir mtodos
41
Identificar Mensajes
Los L mensajes se extraen d l casos d uso j t de los de (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
Retirar Efectivo R ti 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
Los casos de uso (escenarios) se convierten en diagramas de secuencia. Estas se compactan en diagramas de colaboracin. 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 el dinero al cliente es un evento que el objeto Cajero g q j j automtico enva al objeto Cliente.
No agrupar los mensajes no equivalentes: El banco autoriza la q transaccin es distinto evento que El banco rechaza la transaccin.
45
No hace falta construir diagramas de estado de las clases pasivas, q que no cambian de estado de modo significativo: g
Tarjeta de crdito Transaccin Cuenta
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
[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
Son consistentes los diagramas anteriores entre s? Son consistentes con los casos de uso? Aadir la informacin d l casos A di l i f i de los alternativos y excepciones (timeouts, etc.)
50
Arquitectura
Diagrama de Despliegue
51
Problema: requisitos poco claros y contradictorios. P bl i it l t di t i Se hace necesario un modelo de desarrollo iterativo e incremental. Metodologa RUP. Sistema complejo, varios aos de desarrollo: permitir cierto grado de cambio en los requisitos, para aprovechar avances en el h d h l hardware. Riesgo d li i en el anlisis, d d que el nmero Ri de parlisis l li i dado l de requisitos es muy grande.
53
Restricciones:
Seguimiento de los estndares nacionales, governamentales e industriales. Maximizar el uso de componentes COTS (commercial-off-the-shelf) hardware y software. h d ft
56
Controlador (Dispatcher): E t bl C t l d (Di t h ) Establece l rutas d l las t de los trenes y sigue el progreso de los trenes individuales. Maquinista (Train Engineer): Monitoriza el estado del tren y opera el mismo. p Operario de Mantenimieno (Maintainer): Monitoriza el estado y mantiene l sistemas d l tren. d i los i del GPS Navstar: P N t Proporciona l servicios d l i los i i de 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
El sistema comprende cuatro abstracciones o mecanismos principales:
Red y Comunicaciones. Base de Datos. Interfaz hombre-mquina. Control en tiempo real de dispositivos analgicos y digitales. p p g g
69
Construccin
Diseo de la Arquitectura
Paso d mensajes: P de j
Entre ordenadores y dispositivos. p Entre ordenadores.
70
71
Planificacin de horarios
Cada tren tiene un plan activo. Cada plan se asigna a un tren. Un plan puede puede implicar varias rdenes y posiciones en las vas.
72
Planificacin de horarios
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