Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Using the software requirement Specify how the solution can be broken down into

ID: 651424 • Letter: U

Question

Using the software requirement

Specify how the solution can be broken down into manageable pieces and what each piece will do

Determine which classes and objects are needed, and specify how they will interact

Low level design details include how individual methods will accomplish their tasks

Requirements Statement for ATM System

The software to be designed will control a simulated automated teller machine (ATM) having a magnetic stripe reader for reading an ATM card, a customer console (keyboard and display) for interaction with the customer, a slot for depositing envelopes, a dispenser for cash (in multiples of $20), a printer for printing customer receipts, and a key-operated switch to allow an operator to start or stop the machine. The ATM will communicate with the bank's computer over an appropriate communication link. (The software on the latter is not part of the requirements for this problem.)

The ATM will service one customer at a time. A customer will be required to insert an ATM card and enter a personal identification number (PIN) - both of which will be sent to the bank for validation as part of each transaction. The customer will then be able to perform one or more transactions. The card will be retained in the machine until the customer indicates that he/she desires no further transactions, at which point it will be returned - except as noted below.

The ATM must be able to provide the following services to the customer:

A customer must be able to make a cash withdrawal from any suitable account linked to the card, in multiples of $20.00. Approval must be obtained from the bank before cash is dispensed.

A customer must be able to make a deposit to any account linked to the card, consisting of cash and/or checks in an envelope. The customer will enter the amount of the deposit into the ATM, subject to manual verification when the envelope is removed from the machine by an operator. Approval must be obtained from the bank before physically accepting the envelope.

A customer must be able to make a transfer of money between any two accounts linked to the card.

A customer must be able to make a balance inquiry of any account linked to the card.

A customer must be able to abort a transaction in progress by pressing the Cancel key instead of responding to a request from the machine.

The ATM will communicate each transaction to the bank and obtain verification that it was allowed by the bank. Ordinarily, a transaction will be considered complete by the bank once it has been approved. In the case of a deposit, a second message will be sent to the bank indicating that the customer has deposited the envelope. (If the customer fails to deposit the envelope within the timeout period, or presses cancel instead, no second message will be sent to the bank and the deposit will not be credited to the customer.)

If the bank determines that the customer's PIN is invalid, the customer will be required to re-enter the PIN before a transaction can proceed. If the customer is unable to successfully enter the PIN after three tries, the card will be permanently retained by the machine, and the customer will have to contact the bank to get it back.

If a transaction fails for any reason other than an invalid PIN, the ATM will display an explanation of the problem, and will then ask the customer whether he/she wants to do another transaction.

The ATM will provide the customer with a printed receipt for each successful transaction, showing the date, time, machine location, type of transaction, account(s), amount, and ending and available balance(s) of the affected account ("to" account for transfers).

The ATM will have a key-operated switch that will allow an operator to start and stop the servicing of customers. After turning the switch to the "on" position, the operator will be required to verify and enter the total cash on hand. The machine can only be turned off when it is not servicing a customer. When the switch is moved to the "off" position, the machine will shut down, so that the operator may remove deposit envelopes and reload the machine with cash, blank receipts, etc.

The ATM will also maintain an internal log of transactions to facilitate resolving ambiguities arising from a hardware failure in the middle of a transaction. Entries will be made in the log when the ATM is started up and shut down, for each message sent to the Bank (along with the response back, if one is expected), for the dispensing of cash, and for the receiving of an envelope. Log entries may contain card numbers and dollar amounts, but for security will never contain a PIN.

Explanation / Answer

ATM software requirement

Breaking down the solution into manageable pieces:

The different aspects of the system are -

1. login - verification - authentication

2. enquire the required service

3. provide the required service

. cash withdrawal

cash deposit

cash transfer

Balance enquiry

print a receipt

exit

4. Background internal checking

5. Maintaining internal log

What classes and objects will be needed ?

1. Login class & object -

variable - accept the card reader input - card number

variable - to accept the pin number from user

method -

verify the card number from card reader input - validate with bank

verify pin number - check with the bank database

once verified - get details about previous transactions, get the balance available,

limits allowed - rights of the user etc into variables.

2. class service will inherit from the parent class login the details of the customer

method : display the various services available and ask for the choice

method : verify whether the service is allowed for the user.

method : invoke the method to perform the service

3. class services

methods :

deposit - accept the amount being deposited - (in multiples of 20 - validation required)

if cheque deposited - accept the cheque details - date, cheque number, bank name and branch (validation to be performed)

if cash deposited accept the denominations of the currency being deposited ( validate that total amount entered is equal to amount entered at the beginning)

  

withdrawal: accept amount for withdrawal - verify if in multiples of 20

verify if the amount is available in the account

verify if balance is more than minimum required

cash transfer : ask the account number where transfer is to be made

verify the account number

accept the amount to be transferred

verify the balance

                                      make the transfer