Ejercicio Guiado de
Anlisis y Diseo
Orientado a Objetos
Ejemplo: CAJERO AUTOMTICO
El siguiente ejercicio muestra las diferentes actividades
que se realizan dentro del desarrollo de un producto
software siguiendo el Proceso Unificado. Este ejemplo
desarrolla el caso de estudio de un cajero automtico
mostrando las actividades en cada flujo de trabajo as
como el resultado de cada una de dichas actividades.
Diana Marcela Snchez Fquene
marzo de 2013
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Requisitos
Actividad: Lista de Requisitos Funcionales
R1. El cliente debe validarse en el sistema para poder realizar cualquier operacin en el cajero
automtico.
R2. Si el cliente intenta sacar una cantidad que supera el saldo de su cuenta, el cajero le avisar
de que no es posible sacar esa cantidad
R3. Si el cliente intenta sacar una cantidad que supera el lmite diario, el cajero le avisar de
que no es posible y volver a solicitar una cantidad
R4. El cliente podr hacer una transferencia a otra cuenta
R5. El cliente podr realizar un ingreso a travs del cajero automtico
Actividad: Identificar actores, los casos de usos de uso y
describirlos brevemente
Diagrama Inicial de Casos de Uso
Descripcin de los Casos de Uso
Caso de uso: Sacar dinero
Actor: Cliente
Descripcin: El caso de uso comienza con la identificacin del cliente. El cliente usa el caso de
uso para sacar dinero de su cuenta. El caso de uso le devuelve el dinero solicitado, un aviso de
que no tiene saldo o de que ha excedido el lmite diario.
Caso de uso: Ingresar dinero
Actor: Cliente
Pgina 2
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Descripcin: El caso de uso comienza con la identificacin del cliente. El cliente usa el caso de
uso para ingresar dinero en su cuenta.
Caso de uso: Realizar transferencia
Actor: Cliente
Descripcin: El caso de uso comienza con la identificacin del cliente. El cliente usa el caso de
uso para realizar una transferencia de dinero entre dos cuentas bancarias.
Actividad: Detallar los casos de uso
Descripcin mediante Flujo de Eventos de los Casos de Uso.
Describimos cada uno de los casos de uso a travs del flujo de eventos empezando por el
Camino Bsico
En este caso, adems, presentamos los dos flujos de eventos de forma paralela para que se
observe que existe una funcionalidad compartida.
Flujo de eventos del caso de uso
Ingresar Dinero
Flujo de eventos del caso de uso Sacar
Dinero
Camino bsico
Camino bsico
ACTOR
SISTEMA
ACTOR
SISTEMA
1. Este caso de uso
empieza cuando un
Cliente introduce
una tarjeta en el
cajero
2. Pide la clave de
identificacin
1. Este caso de uso
empieza cuando un
Cliente introduce una
tarjeta en el cajero
2. Pide la
clave de
identificacin
3. Introduce la clave
4.
Comprueba
la clave
3. Introduce la clave
4. Comprueba la
clave
5. Presenta las
opciones de
operaciones
disponibles
3. Introduce el
importe a ingresar
4. Abre el cajn
depsito del
dinero en
metlico.
5. Presenta
las opciones
de
operaciones
disponibles
6. Selecciona la operacin
de Reintegro
Pgina 3
7. Pide la
cantidad a
retirar
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
5. Introduce el
dinero
6. El sistema
contabiliza dicho
dinero y
comprueba si
coincide con el
importe.
7. Notifica al
usuario que el
ingreso se ha
realizado.
8. Introduce la cantidad
requerida
9. Procesa la
peticin y da
el dinero
solicitado.
Devuelve la
tarjeta
10. Recoge la tarjeta.
11. Recoge el dinero y
termina el caso de uso
8. Devuelve la
tarjeta.
9. Recoge la tarjeta
y fin del caso de uso
Con el fin de aplicar la reutilizacin, se crea un nuevo caso de uso que involucra la
funcionalidad compartida.
Caso de Uso: Validar Cliente
Flujo de eventos del caso de uso Validar Cliente
Camino bsico
ACTOR
SISTEMA
1. Este caso de uso empieza cuando un
Cliente introduce una tarjeta en el cajero
2. Pide la clave de identificacin
3. Introduce la clave
4. Comprueba la clave
5. Presenta las opciones de operaciones
disponibles y termina el caso de uso.
Caminos alternativos
Evento 3. El cliente cancela la transaccin
Evento 4. La clave no es vlida y se reinicia el caso de uso. Si ocurre tres veces se cancela la
transaccin y no se devuelve la tarjeta
Pgina 4
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Extrayendo la funcionalidad compartida de los flujos de eventos anteriormente presentados, la
descripcin detallada de los casos de uso queda de la siguiente manera:
Caso de Uso: Sacar dinero
Flujo de eventos del caso de uso Sacar Dinero
Camino bsico
ACTOR
SISTEMA
1. Selecciona la operacin de Reintegro
2. Pide la cantidad a retirar
3. Introduce la cantidad requerida
4. Procesa la peticin y da el dinero solicitado.
5. Devuelve la tarjeta.
6. Recoge la tarjeta.
7. Recoge el dinero y termina el caso de
uso
Caminos alternativos
Evento 4: La cantidad solicitada supera el saldo. Se indica el error y se cancela la operacin.
Evento 4: La cantidad solicitada supera el lmite diario. Se indica el error y se vuelve a pedir
otra cantidad.
Se puede crear un diagrama de transicin de estados representado este caso de uso
Pgina 5
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Caso de Uso: Ingresar Dinero
Flujo de eventos del caso de uso Ingresar Dinero
Camino bsico
ACTOR
SISTEMA
1. Selecciona la operacin de Ingreso
2. Pide la cantidad a ingresar
3. Introduce el importe a ingresar
4. Abre el cajn depsito del dinero en metlico.
5. Introduce el dinero
6. El sistema contabiliza dicho dinero y comprueba
si coincide con el importe.
7. Notifica al usuario que el ingreso se ha
realizado.
8. Devuelve la tarjeta.
9. Recoge la tarjeta y fin del caso de uso
Camino alternativo
Evento 6. Notifica al usuario que la cantidad no coincide con el dinero introducido y permite que
se repita la operacin desde el principio.
Opcin Ingreso seleccionada
OperacionCancelada
Esperando importe a ingresar
entry/ mostrar (Introduzca importe)
do/ esperar (importe)
Dinero Retirado
EsperandoRecogerDinero
Importe Introducido
Esperando dinero metlico
OperacionCancelada
Entry/ abrirCajon()
Exit/ cerrarCajn()
do/ Esperar ()
Entry/abrirCajon();
Mostrar(Retire su dinero)
Exit/ cerrarCajon()
do/ Esperar ()
Dinero Introducido
Validando cantidades
CantidadesValidadas [NOT OK]
/ mostrar (Cantidad Incorrecta, por favor)
do/ Validar ()
CantidadesValidadas [OK]
/ mostrar (Operacin finalizada con xito)
Esperando recoger tarjeta
Entry/ ExpulsarTarjeta;
Mostrar (Recoja su tarjeta)
do/ Esperar ()
Tarjeta Retirada / mostrar(Introduzca su tarjeta)
Pgina 6
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Caso de Uso: Realizar Transferencia
Flujo de eventos del caso de uso Realizar transferencia
Camino bsico
ACTOR
SISTEMA
1. Selecciona la operacin de
Transferencia
2. Pide la cantidad a transferir
3. Introduce la cantidad
4. Pide el nmero de cuenta
5. Introduce el nmero de cuenta
6. El sistema comprueba que existe saldo suficiente en la
cuenta del cliente.
7. El sistema realiza un ingreso sobre la cuenta destino.
8. Se informa al cliente de que la operacin se ha
realizado satisfactoriamente.
9. Se expulsa la tarjeta
10. Recoge la tarjeta
11. El sistema vuelve a la situacin inicial del cajero y fin
del caso de uso
Caminos alternativos
Evento 3,5. El actor puede cancelar.
Evento 6. Si no existe saldo suficiente se informar que no es posible realizar la operacin.
Evento 7. Si ocurre algn problema con el ingreso se informar que no se ha realizado.
Evento 10. Si el actor no recoge la tarjeta, el cajero automtico tragar la tarjeta.
Se puede crear un diagrama de transicin de estados final para este caso de uso
Pgina 7
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Diagrama final de Casos de Uso. Aproximacin Final
Pgina 8
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Anlisis
Actividad: Anlisis de los Casos de Uso.
Anlisis del Caso de Uso: Validar Usuario
Identificar las clases de anlisis
Regla de Interfaz: Un actor - una interfaz
Describir las interacciones entre objetos
Un diagrama de colaboracin por cada camino del caso de Uso.
Camino Bsico: Validar Usuario
Pgina 9
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Camino Alternativo: Cdigo Incorrecto
Faltara casos:
Anular transaccin (despus del 2 intento)
Si 3 veces error, cancelar y quedase con la tarjeta
Anlisis del Caso de Uso: Sacar Dinero
Diagrama de clases
Pgina
10
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Camino Bsico: Sacar dinero
Camino Alternativo: No hay saldo
Faltara:
en el cajero no hay dinero.
se ha superado el lmite diario
Pgina
11
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Anlisis del Caso de uso: Ingresar Dinero
Diagrama de clases:
Camino Bsico: Ingresar dinero
Pgina
12
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Camino Alternativo:
Anlisis del Caso de Uso Transferencia
Pgina
13
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Camino Bsico : Transferencia
Camino Alternativo: No hay dinero en la cuenta origen
Pgina
14
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Camino Alternativo: Cuenta de destino incorrecta
Actividad: Diagrama de Clases de Anlisis Completo
A partir de las clases detectadas se integran todas en un solo diagrama
Identificar Atributos y Responsabilidades
Esto lo hacemos a travs de las relaciones establecidas en los diagramas de Colaboracin y a
travs de la descripcin del problema.
Clase
Atributos
Responsabilidades
Pgina
15
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Interfaz de cajero
Los necesarios para definir el
interfaz de usuario
visualizar (mensaje)
leer (tarjeta); leer (cdigo)
leer (importe)
expulsarDinero (importe)
noHayFondos
validar (importe); errorIngreso
seleccioneOpcion (opciones)
UsuariosDelBanco
coleccin de pares
(datosCuenta, codigo)
validar (datos, cdigo)
Cuenta
Saldo
reintegro (importe)
lmite diario
ingreso (importe)
cdigo cuenta
autenticar (datos, cdigo)
cantidad
retirarDinero (importe)
Transaccin
ingresarDinero (importe)
transferencia (cuenta, cantidad)
Identificar asociaciones y agregaciones
Definir multiplicidad y papeles
Agregacin y composicin
Identificar generalizaciones y/o especializaciones entre clases
Pgina
16
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Diseo
Actividad: Identificar requisitos no funcionales y restricciones
Con respecto a lenguajes de programacin, reutilizacin de componentes, sistemas
operativos, tecnologas de distribucin, concurrencia, bases de datos, interfaces de
usuario, gestin de transacciones, etc.
Actividad: Realizacin de los casos de uso en diseo
Diagramas de Interaccin:
En este caso nos fijamos en la interaccin de los diferentes elementos en el tiempo
Diagrama de Secuencia
Realizacin del Caso de Uso: Validar Usuario
Pgina
17
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Diagrama de Secuencia: Validar Usuario. Camino Bsico
Caso de Uso: Validar Usuario: Clave Incorrecta
Pgina
18
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Realizacin en Diseo del Caso de Uso: Sacar dinero
En este caso, refinamos el caso de uso: Aadimos la clase Cuentas que asocia nmero de
cuenta con una instancia de la clase Cuenta. La clase Transaccin ya no actuar directamente
sobre Cuenta.
Pgina
19
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Diagrama de Secuencia. Secuencia correcta
Secuencia: No hay dinero en el fondo
Pgina
20
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Realizacin en diseo del caso de Uso: Ingresar Dinero
Secuencia correcta: Ingresar Dinero
Pgina
21
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Secuencia cantidad incorrecta
Refinar en diseo el caso de Uso de Transferencia
Pgina
22
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Secuencia Correcta Transferencia
Secuencia alternativa: No hay fondos
Actividad: Modelo de Clases de Diseo
Pgina
23
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Diagrama de clases completo
Pgina
24
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Identificando atributos, operaciones, variables, etc.
Pgina
25
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Actividad: Diseo de clases
La nica clase que tiene un comportamiento que especificar es la clase Gestor de Cliente y la
especificamos a travs de un diagrama de Actividad.
Diseo de la clase: Gestor Cliente
Actividad: Identificacin de los Subsistemas de Diseo e
Identificacin de la Arquitectura
Servidor Central
Cajero Automtico
Intranet
Controlador
de
Peticiones
Interfaz de
Usuario
Paquete superior::Cliente
Pgina
26
Bases de
Datos
Ejercicio Guiado de Anlisis y Diseo Orientado a Objetos
marzo de 2013
Implementacin
Diagrama de Componentes y/o Artefactos
Modelo de diseo
Tranferencia
entre cuentas
Modelo de implementacin
<<trace>>
<<file>>
TransferenciaEntreCuentas.java
<<compilation>>
<<executable>>
TransferenciaEntreCuentas.class
Transferencia
Transferencia
Pgina
27