Sistemas de Programas (CI-3711)

Tema de la Clase del Día 18/03/1999

Tópico: El Cajero automatico (fases de diseño)


Integrantes
William González, Carnet 94-26425

Samuel Benzaquén, Carnet 96-28234


[Planteamiento Formal del Problema] [Descubrimiento de objetos] [Diagrama Estructural]
[Casos de uso] [Traza de eventos, escenario] [Enlaces] [Bibliografía]


 


Planteamiento formal del problema:

Todo diseño orientado a objetos se inicia con un primer paso fundamental que por mas simple que parezca, puede facilitar todo el trabajo subsiguiente de una manera significativa. En este paso se pretende plantear que es lo que se persigue, como se va a lograr y quien participa. Previa discusión en clase, se concluyó que el planteamiento formal del problema del cajero automático debe expresarse de la manera siguiente:
"Dada una red de cajeros automaticos de un consorcio de bancos, se pretende implementar un sistema automatizado que permita al cliente realizar transacciones bancarias de sus cuentas a traves de cualquier cajero automático de dicha red mediante el uso de una tarjeta debidamente autorizada"
Descubrimiento de objetos, atributos, funciones , relaciones:
El procedimiento correcto para detectar los objetos presentes, se inicia observando el planteamiento formal y extrayendo cualquier entidad que pueda presentar las tres cualidades basicas de un objeto:
1) Que tenga estados (por lo menos dos)
2) Que tenga comportamientos (Que actuen sobre el objeto y de alguna manera, lo modifiquen)
3) Que tenga identidad (diferenciabilidad con otras instancias de la misma clase)
Todas las entidades detectadas y sugeridas en el modelo del cajero fueron:
1.- Cajero automático

Estados: Activo, Mantenimiento,...

Comportamientos: Activación, Rellenado de deposito,...

Identidad: Cada cajero se diferencia de los demas por un código

Conclusión: ES un objeto

2.- Cliente

Estados: Usando el cajero, Esperando,...

Comportamientos: Introducir tarjeta, Introducir clave,...

Identidad: Obviamente cada cliente es diferente.

Conclusión: ES un objeto

3.- Banco

Estados: Autorizando, Cerrado,...

Comportamientos: Autoriza, Bloquea,...

Identidad: Cada banco tiene su propia identidad

Conclusión: ES un objeto

4.- Consorcio

Estados: Activo, Fuera de linea,...

Comportamientos: Valida, Registra,...

Identidad: Cada consorcio tiene su identidad aun cuando puede haber consorcios de consorcios

Conclusión: ES un objeto

5.- Cuenta

Estados: Suspendida, Sobregirada,...

Comportamientos: Deposito, Retiro,...

Identidad: Cada cuenta tiene un numero y es diferente de las demas

Conclusión: ES un objeto

6.- Tarjeta / Clave

Estados: Dañada, Buena,...

Comportamientos: ???

Identidad: Cada tarjeta tiene un numero diferente del resto

Conclusión: NO ES un objeto por no tener comportamientos

7.- Efectivo

Estados: Roto, Sucio,...

Comportamientos: ???

Identidad: Cada billete tiene un serial que lo diferencia de los demas

Conclusión: NO ES un objeto por no tener comportamientos

8.- Cheque deposito

Estados: Anulado, Roto,...

Comportamientos: ???

Identidad: Cada cheque tiene un numero que lo diferencia de los demas.

Conclusión: NO ES un objeto por no tener comportamientos

9.- Transacción

Estados: Validada, En transito,...

Comportamientos: Validar, Almacenar, ...

Identidad: Cada transacción posee un código que la diferencia de las demas.

Conclusión: ES un objeto


 


Diagrama Estructural (Agrupamiento de clases, refinamiento

Luego de probar varios esquemas, se concluyó en clase que el diagrama mas adaptado a la realidad era el siguiente:

Casos de uso(responsabilidades, cadenas de casos de uso):

 

Actores:

Cliente

Banco

Agente de Seguridad

Operador


 



Casos de Uso:

Realizar Operación Bancaria
  Sección transacciones monetarias
    Sección retiro
    Sección depósito
    Sección Transferencia
  Sección de obtención y modificación de datos de la cuenta
    Sección cambio de clave
    Sección estado de cuenta
Mantenimiento
Suministrar y extraer fondos
Caso de uso: Realizar operación bancaria
 
Acciones de los actores
Acciones del sistema
  1.- Se pide al cliente inserte su tarjeta.
2.- El cliente inserta su tarjeta  
  3.- Lee la banda magnética de la tarjeta (con ello obtiene datos sobre el cliente como el número de cuenta).
  4.- Se solicita al cliente que ingrese su clave.
5.- El cliente ingresa su clave  
  6.- Llama al banco para verificar si la clave dada corresponde con el número de tarjeta.
7.- El banco envía el mensaje de aceptación al sistema (la clave corresponde con el número de tarjeta)  
  8.- Solicita al cliente que seleccione tipo de operación bancaria.
9.- El cliente selecciona:

a) Transacciones monetarias: Ver sección de transacciones monetarias.

b) Obtención o modificación de datos de la cuenta: Ver sección de obtención o modificación de datos de la cuenta.

 
  10.- Pregunta al cliente si desea realizar otra operación.
11.- El cliente decide no realizar más operaciones.  
  12.- Retorna la tarjeta y pide al cliente que la tome.
13.- El cliente toma la tarjeta.  

Acciones alternas:

Línea 1: Existe una avería en el cajero. Se muestra un mensaje al usuario advirtiendo de la avería, y se envía una señal de reporte de avería a la computadora central.

Línea 2: El cliente inserta tarjeta de otro tipo de consorcio en el cajero. El sistema retorna la tarjeta reportando un mensaje de error al usuario por tarjeta inválida.

Línea 2: El cliente inserta una tarjeta caduca (que ya cumplió su fecha de vencimiento). El sistema retorna la tarjeta reportando un mensaje de error al usuario por tarjeta vencida.

Líneas 6 y 7: No existe conexión entre el sistema y el banco. Se cancela la operación, retornando la tarjeta y advirtiendo al cliente que no existe conexión entre el banco y el sistema.

Línea 7: La clave es incorrecta, por tanto, el banco envía mensaje de clave incorrecta al sistema. Luego el sistema cancela la operación, retornando la tarjeta y advirtiendo al cliente que la operación fue cancelada porque no corresponde la clave al número de tarjeta que se introdujo.

Línea 11: El cliente decide realizar otra transacción. Se vuelve a la línea 8.

Líneas 5,9 y 11: El cliente cancela la operación. El sistema retorna la tarjeta y pide al cliente que la tome, además de generar mensaje por pantalla advirtiéndole que la operación ha sido cancelada a solicitud suya.
 
 

  1. Sección transacciones monetarias:
Acciones de los actores
Acciones del sistema
  1.- Solicita al cliente que seleccione tipo de transacción monetaria a realizar.
2.- El cliente selecciona:

     a)  Retiro: Ver sección de retiro.
     b)  Depósito: Ver sección de depósito.
     c) Transferencia: Ver sección de transferencia.

 
  3.- Pregunta al cliente si desea realizar otra transacción monetaria.
4.- El cliente decide no realizar más transacciones monetarias.  
  5.- Se muestra el saldo de la cuenta por pantalla, y si hubo una o varias transacciones monetarias que se hicieron efectivas (no canceladas) se genera un recibo y se pide al usuario que lo tome.
6.- El usuario toma el recibo.  

 

Acciones alternas:

Línea 4: El cliente decide realizar más transacciones monetarias. Se vuelve a la línea 1.

Línea 5: No hay suficiente papel. No se genera recibo (si se muestra el saldo por pantalla).

Línea 2 y 4: El cliente cancela la operación. El sistema vuelve al nivel superior (caso de uso de operación bancaria) mostrando las opciones de las que el cliente dispone, además de generar mensaje por pantalla advirtiéndole que la operación anterior ha sido cancelada a solicitud suya.
 

a.1) Sección retiro:
Acciones de los actores
Acciones del sistema
  1.- Se solicita al cliente que ingrese el monto del retiro.
2.- El cliente ingresa el monto de su retiro.  
  3.- Verifica que el monto a retirar se encuentre entre los límites establecidos.
  4.- Solicita al banco que se proceda a registrar la transacción de retiro.
5.- El banco confirma como "exitosa" la transacción de retiro y retorna el nuevo saldo de la cuenta hacia el sistema.  
  6.- Dispensa la cantidad de dinero solicitada en el retiro y pide al cliente que la tome.
7.- El cliente toma el dinero.  

 

Acciones Alternas

Línea 1: No hay efectivo en el sistema. Se cancela la operación, retornando la tarjeta al usuario advirtiéndole que el cajero no tiene dinero.

Línea 3: El monto solicitado sobrepasa los límites establecidos de retiro para un cajero automático. Se emite mensaje advirtiendo del excesivo monto solicitado, diciéndole del monto máximo permitido para retirar, para después volver a la línea 1.

Línea 3: No hay suficiente dinero en el sistema para cubrir el retiro, aunque el monto solicitado se encuentra dentro de los límites establecidos para el sistema. Se emite mensaje advirtiendo que el sistema no tiene suficiente dinero para satisfacer la petición de retiro, para después volver a la línea 1.

Línea 5: No hay suficiente dinero en la cuenta para cubrir el retiro. El banco confirma como "no exitosa" o "no realizable" la transacción, retornando el saldo de la cuenta al sistema; éste cancela la operación mostrando al cliente el saldo, y advirtiéndole de la falta de fondos.

Líneas 4 y 5: No existe conexión entre el sistema y el banco. Se cancela la operación, retornando la tarjeta y advirtiendo al cliente que no existe conexión entre el banco y el sistema, sugiriendo que intente más tarde.

Línea 2: El cliente cancela la operación. Se vuelve al nivel de transacciones monetarias, además de generar mensaje por pantalla advirtiéndole que la operación ha sido cancelada a solicitud suya.
 

a.2) Sección depósito:
Acciones de los actores
Acciones del sistema
  1.- Se solicita al cliente que ingrese el monto del depósito.
2.- El cliente ingresa el monto del depósito.  
  3.- Emite un sobre con los datos personales del cliente impresos, y solicita al cliente que lo tome y coloque dentro de éste el efectivo a depositar.
4.- El cliente mete el efectivo dentro del sobre, lo sella, y lo inserta en el cajero.  
  5.- Solicita al banco que proceda a procesar la transacción de depósito.
6.- El banco confirma como exitosa la transacción y retorna el tiempo estimado para hacer efectivo el depósito dentro de la cuenta  
  7.- Muestra el tiempo estimado para hacer efectivo el depósito en la cuenta.

 

Acciones Alternas

Líneas 5 y 6: No existe conexión entre el sistema y el banco. Se cancela la operación, retornando la tarjeta y el sobre con el efectivo, advirtiendo al cliente que no existe conexión entre el banco y el sistema, sugiriendo que intente más tarde.

Línea 4: No hay sobres. Se cancela la operación, advirtiendo al cliente que no hay más sobres para realizar los depósitos, luego el sistema vuelve al nivel superior (transacciones monetarias).

Línea 2, 4: El cliente cancela la operación. Se vuelve al nivel de transacciones monetarias, además de generar mensaje por pantalla advirtiéndole que la operación ha sido cancelada a solicitud suya.

Linea 4: El cliente introduce un cheque en vez de efectivo dentro del sobre.
 

a.3) Sección Transferencia:
Acciones de los actores
Acciones del sistema
  1.- Se solicita al cliente que ingrese el tipo de cuenta sobre la cuál va a realizar la transacción.
2.- El cliente ingresa el tipo de cuenta.  
  3.- Se solicita que ingrese el número de cuenta donde se va a realizar la transacción.
4.- El cliente ingresa el número de cuenta.  
  5.- Se conecta con el banco para verificar existencia de numero de cuenta asociada al tipo que ingresó el usuario.
6.- El banco confirma existencia de cuenta y retorna verificación exitosa al sistema.  
  7.- Informa al usuario de la existencia de la cuenta, mostrando el nombre del titular de la misma.
  8.- Solicita al cliente que coloque el monto de la transferencia.
9.- El cliente ingresa el monto de la transferencia.  
  10.- Solicita al banco que proceda a registrar la transacción.
11.- El banco confirma como exitosa la transacción y retorna el nuevo saldo de la cuenta hacia el sistema.  
  12.- El sistema muestra nuevo saldo de la cuenta.

 

Acciones alternas:

Líneas 5, 6, 10, 11: No existe conexión entre el sistema y el banco. Se cancela la operación, retornando la tarjeta, advirtiendo al cliente que no existe conexión entre el banco y el sistema, sugiriendo que intente más tarde.

Línea 6: El banco no consigue la cuenta asociada al número y tipo descritos por el usuario. El banco confirma al sistema la inexistencia de la cuenta bajo las especificaciones dadas por el cliente, el sistema cancela esta operación, advirtiendo al cliente que no existe una cuenta bajo las especificaciones que dio. Luego vuelve a la línea 1.

Línea 11: No hay suficientes fondos en la cuenta para realizar la transferencia. El banco confirma como no exitosa o no realizable la transferencia. El sistema advierte al cliente de la falta de fondos en su cuenta, volviendo a la línea 8.

Líneas 2, 4, 9: El cliente cancela la operación. Se vuelve al nivel de transacciones monetarias, además de generar mensaje por pantalla advirtiéndole que la operación ha sido cancelada a solicitud suya.
 
 

b) Sección de obtención y modificación de datos de la cuenta:
 

Acciones de los actores
Acciones del sistema
  1.- Solicita al cliente que seleccione tipo de operación sobre los datos de la cuenta que desea realizar.
2.- El cliente selecciona:

    a) Cambiar clave: Ver sección de cambiar clave.
    b) Consultar estado de cuenta: Ver sección de estado de cuenta.

 
  3.- Pregunta al cliente si desea realizar otra operación sobre los datos de la cuenta.
4.- El cliente decide no realizar más operaciones sobre los datos de la cuenta.  
  5.- Se muestra la configuración final de los datos de la cuenta del cliente (nombre del titular, número de cuenta, y estado de cuenta).

 
 
 

Acciones alternas:

Línea 4: El cliente decide realizar mas operaciones sobre los datos de la cuenta. Vuelve a la línea 1.

Línea 2, 4: El cliente cancela la operación. Se vuelve al nivel de operaciones bancarias, además de generar mensaje por pantalla advirtiéndole que la operación ha sido cancelada a solicitud suya.
 

b.1) Sección cambio de clave:
Acciones de los actores
Acciones del sistema
  1.- Solicita al cliente que ingrese la antigua clave de la cuenta.
2.- El cliente ingresa la antigua clave.  
  3.- Solicita al cliente que ingrese la nueva clave de la cuenta.
4.- El cliente ingresa la nueva clave.  
  5.- Solicita una segunda entrada de la nueva clave para efectos de confirmación.
6.- El cliente ingresa por segunda vez la nueva clave.  
  7.- Envía al banco las claves antigua y nueva y solicita al mismo verificar si la antigua clave dada corresponde con el número de tarjeta.
8.- El banco confirma que la antigua clave corresponde con el número de tarjeta, y confirma al sistema como exitoso el cambio de clave efectuado por el cliente.  
  9.- El sistema informa al cliente que se ha hecho efectivo el cambio de clave.

 

Acciones alternas:

Líneas 7 y 8: No existe conexión entre el sistema y el banco. Se cancela la operación, retornando la tarjeta, advirtiendo al cliente que no existe conexión entre el banco y el sistema, sugiriéndole que intente más tarde.

Línea 8: La clave antigua es incorrecta. El banco confirma que la clave no corresponde con el número de tarjeta, y confirma al sistema como "no exitoso" o "no realizable" el cambio de clave. Éste a su vez, cancela la operación informando al usuario que la clave que introdujo era incorrecta. Luego vuelve a la línea 1.

Líneas 2,4,6: El cliente cancela la operación. Se vuelve al nivel de obtención y modificación de datos de la cuenta, además de generar mensaje por pantalla advirtiéndole que la operación ha sido cancelada a solicitud suya.
 
 

b.2) Sección estado de cuenta:
 

Acciones de los actores
Acciones del sistema
  1.- Envía al banco los datos del cliente y solicita al mismo su estado de cuenta
2.- El banco retorna el estado de cuenta (saldo) del cliente hacia el sistema.  
  3.- El sistema muestra por pantalla e imprime el estado de cuenta del cliente.

 

Acciones alternas:

Líneas 1 y 2: No existe conexión entre el sistema y el banco. Se cancela la operación, retornando la tarjeta, advirtiendo al cliente que no existe conexión entre el banco y el sistema, sugiriéndole que intente más tarde.

Justificación de los actores: Operador y Seguridad

Aunque en el Rumbaugh nunca se mencionan a estos dos actores, se considera importante incluirlos dentro del modelo de uso, pues para el sistema del cajero, eventualmente tendran que aparecer tanto personas que suministren dinero al cajero y lleven del mismo, así como personas que tengan que repararlo en caso de reportarse alguna avería. Estas personas son justamente las que se representan mediante estos dos nuevos actores.

En vista de que en la vida real se les diferencia según sus responsabilidades (el operador jamás tendrá la responsabilidad que asumen los efectivos de seguridad), se dividen estos actores en dos totalmente independientes y diferenciables.

Caso de UsoMantenimiento
 

Acción de los actores
Acción del sistema
1. El Operador desactiva el sistema parcialmente  
  2. Se deshabilita para el uso de clientes y desactiva las medidas de seguridad
3. El Operador revisa interna y externamente el cajero.  
4. El Operador reacomoda las fallas encontradas  
5. El Operador vuelve a acomodar la estructura del cajero (en caso de haberse abierto lo cierra)  
6. El Operador reactiva el sistema  
  7. Se rehabilita para el uso de clientes y se reactivan las medidas de seguridad

Acciones Alternas:

Línea 4: Si la falla no es solucionable, el operador cierra y desactiva el sistema del cajero y reactiva sus medidas de seguridad.

Caso de UsoSuministrar y extraer fondos
 

Acción de los actores
Acción del sistema
1. El agente de Seguridad desactiva el sistema parcialmente  
  2. Se deshabilita para el uso de clientes y desactiva las medidas de seguridad
3. El agente abre el cajero en sí  
4. El agente extrae los sobres de depósitos  
5. El agente evalúa la cantidad de dinero permaneciente en el cajero y completa hasta cierto límite  
6. El agente cierra el cajero  
7. El agente reactiva el sistema  
  8. Se rehabilita para el uso de clientes y se reactivan las medidas de seguridad.

 
 

Traza de eventos, escenarios (Diagrama dinamico) :

Cada escenario de uso en el cajero produce una traza de eventos, siendo análogos para en la mayoría de la traza, con ligeros cambios al final de esta (la primera parte, desde que se llega al cajero, es igual para todos los casos.
Ejemplificaremos con un escenario de transferencia exitoso:

 

Diagrama dinámico construido a partir de las trazas de eventos:


 

Enlaces:
Enlaces relacionados con el tema

Roger S. Pressman Web Site

Cetus: El Repositorio de Información sobre Orientación a Objetos

Object Management Group

 

Bibliografía :

Bibliografía consultada

Ingeniería de Software: Un enfoque práctico
Roger S. Pressman, Addison-Wesley 1992.

Modelaje y Diseño Orientado a Objetos
Rumbaugh, Blaha, Premrlani, Eddy, Lorensen. Prentice-Hall 1996


[ Anterior ] | [ Indice ] | [ Siguiente ]