Texts: A typical picture of an ATM system is shown in the figure. You are given a task to develop software for such an ATM system. The manager of the bank explains the first requirements of the system: The user can open and close accounts. He or she withdraws and deposits cash. The user can view his/her accounts and can make cash transfers between his/her accounts.
Welcome!
Please enter your account number: 12345
Screen
Enter your PIN: 54321
Take cash here
Cash Dispenser
Keypad
Insert deposit envelope here
Deposit Slot
The following detailed requirements are given for the withdrawal transaction by the bank manager to you:
After the user is authenticated with a card and password, he or she selects the withdrawal transaction. The ATM machine first displays a menu of withdrawal amounts and an option to cancel. Then it inputs the menu selection. If the user cancels the transaction, you exit. Otherwise (if the user selects an amount), it sets the amount attribute, gets the available balance of the user's account from the database. If the required amount is greater than the available balance, it displays an appropriate error message. Otherwise, it tests whether sufficient cash is available in the cash dispenser. If there is insufficient cash in the cash dispenser, it displays an appropriate error message. Otherwise, it interacts with the database to debit the amount from the user's account. Then it dispenses cash and instructs the user to take the cash. If the user does not take the cash within 60 seconds, it takes the cash back and updates the database accordingly.
a) You are given the task of developing a module to be used in an ATM (Auto Teller Machine) of a Bank. What development methodology will be appropriate for this project? Why?
b) Find objects and relations between objects, and draw a class diagram. Try to use inheritance and composition.
c) What kind of software architecture will be appropriate for this system? Explain.
d) Describe two OO design patterns that can be used to improve the quality of this software system. Explain how these are useful for this system.