Sie sind auf Seite 1von 6

1 Requirements and Business Flow

We have to implement both ATM client and server and simulate the basic transactions of the Automated teller machine. NetBeans IDE 6.5.1 will be the development environment and using scrum to manage the project. ATM simulator and server project will be divide into two phases. First phase will concentrate on develop the back-end server, the centralization of all of the transactions. Second phase will be developed the front-end ATM. In addition, we have to simulate both the interface and hardware of an ATM. Bank account can contain any kind of currency such as USD, VND, AUD, and so on. However, once it was created, it has to have maintained that currency for the life time of that account and each of bank account can only be opened by one customer and each of the bank account has different behavior. For example, saving account would behave differently to money market account. ATM card is used to access to a bank account through ATM. ATM card can be linked to more than one account, however, that ATM card will have a default account and the default account will be browse at the beginning. An ATM card is a combination of 16 digits ID and 3 special digits as PIN. One account can have more than 1 ATM card with the same 16 digits ID; however, the 3 special digits must be different. To use ATM, customer place their card into card reader and the customer only need to input the PIN number. The session is started when customer place their cart into card reader and finish when customer press reject button on ATM to get the ATM card back.

ATM Client should be able to support both console and graphical interface. In order work, the project should have the reusability, follow the OO principal and keep in mind: close for modification but open for extension. Some of the basic required transaction: o o o o o Transfer money Deposit money Withdraw money Exchange money Check account balance

2 Requirements
Deposit Money A customer can deposit money to a specific account. If the customer owns multiple accounts, the customer is able to choose which account to deposit to. You need to be able to simulate the process of a deposit. That includes any hardware that may be used to accept a deposit. Note: deposits are usually placed in a standard envelope which is given to the machine. Withdraw Cash A customer can withdraw cash from an account. An exchange is required if the currency withdrawn isnt the same as the account being withdrawn from. If the customer has multiple accounts, the customer is able to choose which account to withdraw from. Remember to consider the hardware aspects of the ABT. Think about what happens in the ATM machine when it doesnt have enough money. What happens if the hardware breaks? Can they withdraw any kind of currency denomination? Check Balance Get the balance of an account. The user can also get a balance of all accounts linked to the card Support Multiple Linked Accounts An ATM card, as mentioned above, can be linked to multiple accounts.

Redtea

Page 2

CONFIDENTIAL 11/12/2011

Notification After a transaction, if an account has reached a pre-determined level, a notification is automatically sent to the account holders email address & SMS sent to them. Balance Notification After a transaction, if an account has reached a pre-determined level, a notification is automatically sent to the account holders email address. Stat Session To start using an ATM, the customer inserts their card. They only need to enter a Personal Identification Number (PIN) for verification. Finish Session When the customer is finished using the ATM, they can choose to finish their session. The ATM will return their card. ATM User-Interfaces We have two types of ATMs. One type of ATM is GUI based and the other type is text based. We need to easily support both of them and still re-use source code specific to the ATM process. Communication We need to easily communicate with our server; however, we want this complete hidden from the objects you create. For example, when a user enters their PIN, we can simply code Pin.Validate. However, that command is really being executed on the server in some mystical way. Server: o Reporting Requirements - We have strict reporting requirements. As such, in the case of a user error or computer error, we need to be able to handle these situations dynamically. o Redo/Undo and Logging Every time a user takes an action within the ATM it has to be logged and time stamped within the central system. If someone, for example, enters their pin incorrectly, that will be logged. If they withdraw money, it will be logged, etc. There is a great pattern for this.

Redtea

Page 3

CONFIDENTIAL 11/12/2011

3 Functional Redtea
Transfer money from one account to another Deposit money into specific account Withdraw money from an account Exchange money as an extra step to deal with foreign currency. Check account balance

4 Non-Functional Redtea
Graphic user interface friendly Database system management

5 Diagram
Database relationship diagram

Redtea

Page 4

CONFIDENTIAL 11/12/2011

Redtea

Page 5

CONFIDENTIAL 11/12/2011

6 Design
7 Class Diagrams (Individual) 8 Class Diagram by Team Member
ATM Client class design (Draft only, by Trieu) ATM Server class design (Draft only, by Cuong) Bank account type (Draft only, by Phuc) Account behavior (Draft only, by Phuc)

Redtea

Page 6

CONFIDENTIAL 11/12/2011