Keywords: object-oriented, analysis, design, UML, java

## Maintenance

This page lists various changes that might be made to the system. Modifying the various documents to incorporate one or more of these changes would make an interesting exercise for the reader.

### Corrective Maintenance

- The careful reader will note that the requirement that "Entries will be made in the log when the ATM is started up and shut down" has not been reflected in any of the diagrams or the code. What changes would be needed to implement this requirement?
- When the system asks the customer a question, it waits as long as necessary for the customer to answer. This could cause a severe security problem if the customer were to leave at this point without answering the question, since the ATM card would still be in the machine, generally with the customer's PIN having already been entered, thus allowing another user to "hijack" the session and perform operations like cash withdrawal from the customer's account.
  While this seems unlikely, it is conceivalbe in some cases that a distracted customer might make this mistake. For example, after performing a transaction, the system asks the user "Would you like to do another transaction?". If the customer has just withdrawn cash, it is conceivable that the customer might place the cash in his/her wallet and accidentally forget about answering the the question and retrieving the card.
  A real ATM typically has a timeout mechanism that begins beeping and ultimately ejects the card and ends the session if the user fails to respond within a certain amount of time. While a customer who leaves before this happens might inadvertently leave a card behind, at least the customer would not be "logged in" with his/her PIN. (Thus, the security risk is comparable to that resulting from a lost card, with the customer's account still PIN protected.) What changes would be needed to the system requirements, design, and code to improve security this way?

### Adaptive Maintenance

- Many ATM's have cash dispensers that can handle two different denominations of bills - often $20 and $5 - which allows a user to request cash in any amount that is a multiple of $5. Suppose the cash dispenser in the example (which only handles $20 bills) were replaced with such a dispenser. What changes would be needed to take advantage of the enhanced capabilities of such a dispenser?

### Perfective Maintenance

- When the customer's card is retained, an entry should be made in the log to this effect.
- Many ATM's offer the customer additional options beyond the basic four listed here - e.g. making a payment on a loan the customer has from one of the accounts linked to his/her card. What changes would be needed to make it possible for a customer to make a loan payment at the ATM?

Page of links for non frames-enabled browsers.

###### Copyright © 2000, 2001, 2007 - Russell C. Bjork. Permission for non-commercial reproduction for educational use is hereby granted; all other rights are reserved.