[ Intro ]
[ Requirements ]
[ Domain Objects ]
[ Use Cases ]
[ CRC Cards ]
[ Class Diagram ]
[ Class Description Forms ]
[ Operation Description Forms ]
[ Code ]
[ Executable ]
| Name | ATM |
| Base class(es) | |
| Purpose | Manage the ATM and component parts |
| States | running |
| stopped | |
| Constructors | ATM(number, location) |
| Operations | |
| Mutators | startupOperation() |
| serviceCustomers(initialCash) | |
| Accessors | getPIN() |
| getTransactionChoice() | |
| getDoAnotherTransactionChoice() | |
| getAccountChoice(purpose) | |
| getWithdrawlAmountChoice() | |
| getAmountEntry() | |
| checkIfCashAvailable(amount) | |
| dispenseCash(amount) | |
| acceptEnvelope() | |
| issueReceipt(cardNumber, serialNumber, description, amount, balance, availableBalance) | |
| reEnterPIN() | |
| reportRejection(reason) | |
| ejectCard() | |
| retainCard() | |
| number() | |
| Fields | _state |
| _number | |
| _location | |
| _cardReader | |
| _display | |
| _keyboard | |
| _cashDispenser | |
| _envelopeAcceptor | |
| _receiptPrinter | |
| _operatorPanel |
View C++ class declaration code
| Name | CardReader |
| Base class(es) | |
| Purpose | Manage the magnetic stripe card reader |
| States | card not inserted |
| card inserted but unreadable | |
| card inserted and readable | |
| Constructors | CardReader() |
| Operations | |
| Mutators | ejectCard() |
| retainCard() | |
| checkForCardInserted() | |
| Accessors | cardNumber() |
| Fields | _status |
| _cardNumberRead |
View C++ class declaration code
| Name | Display |
| Base class(es) | |
| Purpose | Manage the video display unit |
| States | Each screen that can be displayed constitutes a distinct state |
| Constructors | Display() |
| Operations | |
| Mutators | displayScreen(whichScreen, extraInfo) |
| clearDisplay() | |
| Accessors | |
| Fields |
View C++ class declaration code
| Name | Keyboard |
| Base class(es) | |
| Purpose | Manage the keys used for customer input |
| States | |
| Constructors | Keyboard() |
| Operations | |
| Mutators | readPIN() |
| readTransactionChoice() | |
| readDoAnotherTransactionChoice() | |
| readAccountChoice() | |
| readWithdrawlAmountChoice() | |
| readAmountEntry() | |
| pressEnterToContinue() | |
| Accessors | |
| Fields |
View C++ class declaration code
| Name | CashDispenser |
| Base class(es) | |
| Purpose | Manage the cash dispenser |
| States | |
| Constructors | CashDispenser() |
| Operations | |
| Mutators | setCash(initialCash) |
| dispenseCash(amount) | |
| Accessors | currentCash() |
| Fields | _currentCash |
View C++ class declaration code
| Name | EnvelopeAcceptor |
| Base class(es) | |
| Purpose | Manage the slot that accepts a deposit envelope from the customer |
| States | |
| Constructors | EnvelopeAcceptor() |
| Operations | |
| Mutators | acceptEnvelope() |
| Accessors | |
| Fields |
View C++ class declaration code
| Name | ReceiptPrinter |
| Base class(es) | |
| Purpose | Manage the printer that produces customer receipts |
| States | |
| Constructors | ReceiptPrinter() |
| Operations | |
| Mutators |
printReceipt(theATMnumber, theATMlocation, cardNumber, serialNumber,description, amount, balance, availableBalance) |
| Accessors | |
| Fields |
View C++ class declaration code
| Name | OperatorPanel |
| Base class(es) | |
| Purpose | Manage the panel that allows the operator to start/stop the machine, and to enter initial cash amount. |
| States | Switch in running position |
| Switch in stopped position | |
| Constructors | OperatorPanel() |
| Operations | |
| Mutators | switchOn() |
| getInitialCash() | |
| Accessors | |
| Fields |
View C++ class declaration code
| Name | Session |
| Base class(es) | |
| Purpose | Perform a session use case |
| States | running |
| aborted due to repeated invalid PINs | |
| Constructors | Session(cardNumber) |
| Operations | |
| Mutators | doSessionUseCase() |
| doInvalidPINExtension() | |
| Accessors | cardNumber() |
| PIN() | |
| Fields | _state |
| _cardNumber | |
| _PIN | |
| _currentTransaction |
View C++ class declaration code
| Name | Transaction |
| Base class(es) | |
| Purpose | Abstract common features of the various types of transaction use cases |
| States | |
| Constructors | Transaction(session) |
| makeTransaction(type, session) | |
| Operations | |
| Mutators | doTransactionUseCase() |
| (abstract) getTransactionSpecificsFromCustomer() | |
| (abstract) sendToBank() | |
| (abstract) finishApprovedTransaction() | |
| Accessors | |
| Fields | _session |
| _serialNumber | |
| _newBalance | |
| _availableBalance | |
| static _lastSerialNumberAssigned |
View C++ class declaration code
| Name | WithdrawlTransaction |
| Base class(es) | Transaction |
| Purpose | Perform a withdrawl transaction use case |
| States | |
| Constructors | WithdrawlTransaction(session) |
| Operations | |
| Mutators | getTransactionSpecificsFromCustomer() |
| sendToBank() | |
| finishApprovedTransaction() | |
| Accessors | |
| Fields | _fromAccount |
| _amount |
View C++ class declaration code
| Name | DepositTransaction |
| Base class(es) | Transaction |
| Purpose | Perform a deposit transaction use case |
| States | |
| Constructors | DepositTransaction(session) |
| Operations | |
| Mutators | getTransactionSpecificsFromCustomer() |
| sendToBank() | |
| finishApprovedTransaction() | |
| Accessors | |
| Fields | _toAccount |
| _amount |
View C++ class declaration code
| Name | TransferTransaction |
| Base class(es) | Transaction |
| Purpose | Perform a transfer transaction use case |
| States | |
| Constructors | TransferTransaction(session) |
| Operations | |
| Mutators | getTransactionSpecificsFromCustomer() |
| sendToBank() | |
| finishApprovedTransaction() | |
| Accessors | |
| Fields | _fromAccount |
| _toAccount | |
| _amount |
View C++ class declaration code
| Name | InquiryTransaction |
| Base class(es) | Transaction |
| Purpose | Perform an inquiry transaction use case |
| States | |
| Constructors | InquiryTransaction(session) |
| Operations | |
| Mutators | getTransactionSpecificsFromCustomer() |
| sendToBank() | |
| finishApprovedTransaction() | |
| Accessors | |
| Fields | _fromAccount |
View C++ class declaration code
| Name | Bank |
| Base class(es) | |
| Purpose | Manage communications with the bank |
| States | |
| Constructors | Bank() |
| Operations | |
| Mutators |
initiateWithdrawl(cardNumber, PIN, ATMnumber, serialNumber, from, amount,newBalance, availableBalance) |
| finishWithdrawl(ATMnumber, serialNumber, succeeded) | |
|
initiateDeposit(cardNumber, PIN, ATMnumber, serialNumber, to, amount, newBalance, availableBalance) | |
| finishDeposit(ATMnumber, serialNumber, succeeded) | |
|
doTransfer(cardNumber, PIN, ATMnumber, serialNumber, from, to, amount, newBalance, availableBalance) | |
|
doInquiry(cardNumber, PIN, ATMnumber, serialNumber, from, newBalance, availableBalance) | |
| Accessors | accountName(type) |
| rejectionDescription(code) | |
| Fields |