Problem Statement
A bank has several automated teller machines (ATMs) that are geographically distributed and connected via a wide area network to a central server. Each ATM machine has a card reader, a cash dispenser, a keyboard/display, and a receipt printer. By using the ATM machine, a customer can withdraw cash from either a checking or savings account, query the balance of an account, or transfer funds from one account to another.
Customer (Informal) Requirements
General Requirements:
A customer can withdraw cash from either a checking or savings account, query the balance of an account, or transfer funds from one account to another.
A transaction is initiated when a customer inserts an ATM card into the card reader.
Customer records, account records, and debit card records are all maintained at the server.
Card Verification Requirements:
The card reader should determine if the expiration date has not passed and the user entered the right PIN matches the one maintained by the system (encoded on the magnetic strip on the back of the PIN card number, start date, and expiration date).
The card reader should check whether the card is not lost or stolen (cards that have been reported lost or stolen are also confiscated).
The customer is allowed three attempts to enter the correct PIN; the card is confiscated if the third attempt fails.
Customer Actions Requirements:
If the PIN is validated satisfactorily, the customer is prompted for a withdrawal, query, or transfer transaction.
Before a withdrawal transaction can be approved, the system determines that sufficient funds exist in the requested account, that the maximum daily limit will not be exceeded, and that there are sufficient funds at the local cash dispenser.
If the transaction is approved, the requested amount of cash is dispensed, a receipt is printed that contains information about the transaction, and the card is ejected.
Before a transfer transaction can be approved, the system determines that the customer has at least two accounts and that there are sufficient funds in the account to be debited.
For approved query and transfer requests, a receipt is printed and the card ejected.
A customer may cancel a transaction at any time; the transaction is terminated, and the card is rejected.
ATM Operator Requirements:
An ATM operator may start up and close down the ATM to replenish the ATM cash dispenser and for routine maintenance.
The operator can never replenish the ATM if the machine is not turned off.
NOTE: It is assumed that functionality to open and close accounts and to create, update, and delete
customer and debit card records is provided by an existing system and is not part of this problem.
Task 1 - Domain Modeling
1. Identify the principal domain entities
2. Create a domain model using UML class diagrams to represent the relationships between the main entities in the domain. Note that you do not need to use a computer tool for this exercise, hand drawn diagrams will suffice. However, you can also use Microsoft Visio on your computer if you wish.