ATM Case Study Objective
A local bank intends to install a new automated teller machine (ATM) to allow users (i.e., bank customers) to perform basic financial transactions. You have to develop software to perform the financial transactions initiated by bank customers through the ATM.
Software should encapsulate the functionality of the hardware devices within software components, but it need not concern itself with how these devices perform their duties. Use the computer's monitor to simulate the ATM's screen, and the computer's keyboard to simulate the ATM's keypad.
The ATM software system meets the following requirements.
§ Each user can have multiple accounts at the bank.
§ ATM users can perform the following actions:
§ fast cash (withdraw $20 - $100);
§ transfer money from one account to another;
§ withdraw cash (max $400);
§ deposit funds;
§ perform balance inquiry;
§ receive mini-statement (e.g., last 10 transactions).
§ An ATM session consists of
§ authenticating a user based on an account number and personal identification number (PIN);
§ creating and executing financial transactions.
§ To authenticate a user and perform transactions:
§ interact with the bank's account information database;
§ for each account, the database stores an owner name, an account number, a PIN and a balance indicating the amount of money in the account. Additionally,
• savings account stores a rate that represents the annual interest;
• checking account stores a fee that represents the cost of clearing one check.
Note: You have to choose a bank and learn their terms and rules for different types of accounts. You have to come up with a few more requirements and implementation details in the design of your ATM system based on the bank of your choice.
§ the bank plans to build only one ATM, so we need not worry about multiple ATMs accessing this database at the same time;
§ the bank does not make any changes to the information in the database while a user is accessing the ATM;
§ an ATM faces reasonably complicated security issues (you should come up with a few solutions in your design);
§ the bank trusts the ATM to access and manipulate the information in the database without significant security measures.
Implementation DetailsATM user interface
§ a screen that displays messages to the user;
§ a keypad that receives numeric input from the user;
§ a cash dispenser that dispenses cash to the user and;
§ a deposit slot that receives deposit envelopes from the user;
§ a printer slot that sends receipts of the transactions;
§ a card reader.
§ The cash dispenser begins each day loaded with 500 $20 bills.
§ Details of the user interface implementation will be discussed in class.
Implement the design into Java code.
· Design stage
o initial class diagram, use case scenarios and prototype screens - discussion in class: April 17 - April 19 (Week 14)
o final class diagram, use case scenarios and prototype screens: April 24 (Week 15)
· Implementation stage
o writing code: (Week 15 - Week 16)
· Project Presentation
o power point and the application presentation: May 7
Appendix: Example of the use case scenario
'Make a deposit'
- The screen prompts the user to enter a deposit amount or type 0 (zero) to cancel.
- The user enters a deposit amount or 0 using the keypad.
- If the user specifies a deposit amount, the ATM proceeds to Step 4. If the user chooses to cancel the transaction (by entering 0), the ATM displays the main menu and waits for user input.
- The screen displays a message telling the user to insert a deposit envelope.
- If the deposit slot receives a deposit envelope within two minutes, the ATM credits the deposit amount to the user's account in the bank's database (i.e., adds the deposit amount to the user's account balance) and displays the message ' ...'.
This needs to be a gui application created in Java, need change pin and mini statements. Need all classes and all code.