Pregunta Java Avanzado
Pregunta Java Avanzado
DOCUMENTO DE REQUERIMIENTOS
Un banco local pequeño pretende instalar un nuevo cajero automático (CAJAMATICO) para
permitir a los usuarios (es decir clientes del banco) realicen transacciones financieras básicas
(figura 01)
Ventana
Dispensador
de Efectivo
Teclado
Numérico
Ranura para
Depósitos
Figura 01
Por cuestión de simpleza, cada usuario solo puede tener una cuenta en el banco. Los usuarios del
CAJAMATICO deben poder ver su saldo, retirar efectivo (es decir, sacar dinero de una cuenta) y
depositar fondos (es decir, colocar dinero en una cuenta).
La interfaz de usuario del cajero automático contiene los siguientes componentes de hardware:
❑ Una pantalla que muestra mensajes al usuario.
❑ Un teclado numérico que recibe entrada numérica del usuario
❑ Un dispensador de efectivo que entrega efectivo al usuario.
❑ Una ranura para depósitos que recibe dinero para depósitos del usuario.
El dispensador de efectivo comienza cada día cargado con 50000 billetes de S./ 200, 100, 50, 20
[Nota: debido al alcance limitado de este caso de estudio, ciertos elementos del CAJAMATICO que
se describen aquí simplifican varios aspectos de uno real. Por ejemplo, con frecuencia un
CAJAMATICO contiene un dispositivo que lee el número de cuenta del usuario de una tarjeta para
CAJAMATICO, mientras que este pide al usuario que escriba su número de cuenta en el teclado (el
cual usted simulara con el teclado que su computadora personal). Además, un CAJAMATICO real,
por lo general, imprime un recibo de papel al final de una sesión, y toda la salida de este
CAJAMATICO aparece en la pantalla].
El banco desea que usted desarrolle este software para realizar las transacciones financieras que
inicien los clientes del banco a través del CAJAMATICO. El banco integrara posteriormente el
Esta versión debe utilizar el monitor de la computadora para simular la pantalla del
CAJAMATICO y el teclado de la computadora para simular el teclado numérico del
CAJAMATICO.
Un sesión con el CAJAMATICO consiste en la autenticación de un usuario(es decir, proporcionar
la identidad del usuario) con base en un numero de cuenta y un numero de identificación personal
(NIP), seguida de la creación y la ejecución de transacciones financieras. Para autenticar un usuario
y realizar transacciones, el CAJAMATICO debe interactuar con la base de datos de información
sobre las cuentas del banco. Para cada cuenta de banco, la base de datos almacena un número de
cuenta, un NIP y un balance que indica la cantidad de dinero en la cuenta.
[Nota: el banco planea construir solo un CAJAMATICO, por lo que no necesitamos preocuparnos
porque varios CAJAMATICOs accedan a la base de datos al mismo tiempo. Lo que es mas,
supongamos que el banco no realizara modificaciones en la información que hay en la base de
datos mientras un usuario accede al CAJAMATICO. Además, cualquier sistema comercial como
un CAJAMATICO se topa con cuestiones de seguridad con una complejidad razonable, las cuales
va más allá del alcance de un curso de programación de primer o segundo semestre. No obstante,
para simplificar nuestro ejemplo supongamos que el banco confía en el CAJAMATICO para que
acceda a la información en la base de datos y la manipule sin necesidad de medidas de seguridad
considerables]
Al acceder al CAJAMATICO, el usuario deberá experimentar la siguiente secuencia de eventos
(Figura 02).
Una vez que el CAJAMATICO autentique al usuario, el menú principal (Figura 02) mostrara una
opción numerada para cada uno de los tres tipos de transacciones: solicitud de saldo (opción 1),
retiro (opción 2) y deposito (opción 3). El menú principal también mostrara una opción que
permita al usuario salir del sistema (opción 4). Después, el usuario elegirá si desea realizar una
transacción (oprimiendo 1, 2 o 3) o salir del sistema (4). Si el usuario introduce una opción
invalida, la pantalla mostrara un mensaje de error y volverá a mostrar el menú principal.
Si el usuario oprime 1 para solicitar su saldo, la pantalla mostrara el saldo de esa cuenta bancaria.
Para ello, el CAJAMATICO deberá obtener el saldo de la base de datos del banco.
Las siguientes acciones se realizan cuando el usuario elige la opción 2 para hacer un retiro:
1. La pantalla muestra un menú (Figura 03) que contenga montos de retiro estándar: S./ 20
(opción 1), S./ 40 (opción 2), S./ 60 (opción 3), S./ 100 (opción 4), S./ 200 (opción 5). El menú
también contiene la opción 6 que permite al usuario cancelar la transacción.
Figura 03
Las siguientes acciones se realizan cuando el usuario elige la opción 3 (del menú principal) para
hacer un depósito:
1. La pantalla pide al usuario que introduzca un monto de depósito o que escriba 0 (cero)
para cancelar la transacción.
2. El usuario introduce un monto de depósito ó 0 mediante el teclado numérico.
3. Si el usuario especifica un monto a depositar, el CAJAMATICO procede al paso 4. Si elije
cancelar la transacción escribiendo (0), el CAJAMATICO muestra el menú principal (Figura
02) y espera la entrada del usuario.
Una vez que el sistema ejecuta una transacción en forma exitosa, debe volver a mostrar el menú
principal (Figura 02) para que el usuario pueda realizar transacciones adicionales. Si el usuario
elije salir del sistema (opción 4), la pantalla debe mostrar un mensaje de agradecimiento y después
el mensaje de bienvenida para el siguiente usuario.