Professional Documents
Culture Documents
Specifications
Automated Teller Machine System
(ATMS)
Version: 1.0
Date: 11/04/ 2013
Revision 1, 2013
This software requirements document is restructured according to IEEE 830:1998 then republished and
redistributed by Malaysian Software Testing Board. This particular document is a derivative from IEEE
830:1998, and the original author for ATMS is Mr. Russell C. Bjork.
Copyright © for 1996, 1997, 1998, 2000, 2001, 2002, 2004 versions belong to Mr. Russell C. Bjork for
the Automated Teller Machine System (ATMS) software which includes the software’s source code and
the software requirements, which are reproduced under Software Requirement Specification (SRS) and
Software Design Specification (SDS). Permission for the non-commercial reproduction for educational
use only is hereby granted by the owner (all other non-educational use are reserved).
Russell C. Bjork
Professor of Computer Science
Gordon College
255 Grapevine Road
Wenham, MA 01984
(978) 927-2300 x 4377
bjork@gordon.edu
XYZ Bank ATMS_SDS 1.0
Document Control
11 April, 2013 i
XYZ Bank ATMS_SDS 1.0
Version History
11 April, 2013 ii
XYZ Bank ATMS_SDS 1.0
Table of Content
11 April, 2013 iv
XYZ Bank ATMS_SDS 1.0
1.0 Introduction
1.1 Purpose
The purpose of this SDS document is to provide the details of the design of the system. This
document gives a better understanding of the design process for this system. It addresses the
design implementation of Automated Teller Machine System.
1.2 Scope
This document is written for the ATMS. This document contains information about the system
consideration, system architecture, low level design and high level design.
The intended audiences of this document are the ABC Software Development Team from ABC
Sdn. Bhd. and the representatives from the client, XYZ Bank.
1.4 Product
The name of product is Automated Teller Machine System or “ATMS” in short. ATMS is an
application which allow user to deposit, withdraw, inquire and transfer money to/from their
account(s).
11 April, 2013 1
XYZ Bank ATMS_SDS 1.0
Definitions
ATM An Automated Teller Machine (ATM) is the physical machine that offers
transaction services to a user, including cash withdrawal, cash deposit, fund
transfer and balance inquiry.
Idle A state of ATMS where the system is “On” but not servicing any user. In this
state, ATMS is waiting for the insertion of an ATM card to initiate a user session.
Operator A bank personnel responsible for physical maintenance activities on the ATM,
including but not limited to starting up and shutting down ATM, refilling the cash
dispenser in ATM and removing cheque envelopes from ATM.
User A user is a bank customer who holds an ATM card and is accessing the ATM.
Acronyms
11 April, 2013 2
XYZ Bank ATMS_SDS 1.0
1.6 Overview
11 April, 2013 3
XYZ Bank ATMS_SDS 1.0
11 April, 2013 4
XYZ Bank ATMS_SDS 1.0
There are mainly two roles targeted by ATMS, including operator and user. The following table
(Table 1.0) shows the expected level of knowledge for each role.
ATMS is built as a Java application and can only run in an environment that enables Java.
ATMS can only perform a transaction while having an active connection with the bank
transaction server.
The major goal of the ATMS is to provide the required services to end users in a design similar
to the ATM currently in-use by the industry. This is to avoid confusion to users due to total
unfamiliarity.
11 April, 2013 5
XYZ Bank ATMS_SDS 1.0
The Object-Oriented Analysis and Design (OOAD) was identified as the most desirable
approach and therefore adopted for the system design. The process method is as follow:
1. Analyzing requirement
2. UML design (Use Case Diagram)
3. Analyzing the classes that will be needed for implementation
4. Designing the class diagram, sequence diagram and state charts.
5. Detailed design and implementation
6. Testing
7. Maintenance
11 April, 2013 6
XYZ Bank ATMS_SDS 1.0
The architecture used for ATMS consists of two layers of classes. The “top-level” classes are
ATMMain and ATMApplet. Both classes allow the system to be run as an application or an
Applet. Only one of the two would be instantiated in any particular use of the system. Each of
these classes, in turn, depends on the package “atm” which contains the class ATM that
represents the system as a whole, and the class Session that represents one session. ATM
depends on Session, and vice versa - since the ATM creates Sessions, and each Session, in
turn, uses the ATM to interact with the customer. The sequence diagram for Session (Figure
17.0) is attached in Appendix A. For data flow of ATMS, refer to Figure 19.0 in Appendix B.
The sub package transaction contains the classes used to represent individual transactions that
a customer initiates. The class Session depends on the transaction package because it creates
individual transaction objects. These depend on the ATM to interact with the customer.
The sub package physical contains the classes that represent the various physical components
of the ATM. The class ATM makes use of these components, and Session and the various
kinds of transaction gain access to them through ATM to perform the needed operations. The
general sequence diagram for Transaction (Figure 18.0) is attached in Appendix A.
11 April, 2013 7
XYZ Bank ATMS_SDS 1.0
This section illustrates the components within each subsystem of ATMS using component
diagrams.
The subsystems of ATMS are listed in the table below (Table 2.0), along with their tasks:
Component Tasks
OperatorPanel - Inform ATM of changes to state of switch.
- Allow operator to specify amount of initial cash.
ATM - Start up when switch is turn on by operator.
- Shut down when switch is turned off by operator.
- Start a new session when card is inserted by customer.
- Provide access to component parts for sessions and transactions.
CashDispenser - Keep track of cash on hand, starting with initial amount.
- Report whether enough cash is available.
- Dispense cash.
CustomerConsole - Display a message.
- Display a prompt, accept a PIN from keyboard.
- Display a prompt and menu, accept a choice from keyboard.
- Display a prompt, accept a dollar amount from keyboard.
- Respond to cancel key being passed by customer.
CardReader - Inform ATM when card is inserted.
- Read information from card.
- Eject card.
- Retain card.
Log - Log storage account information of customer.
- Log dispensing of cash.
- Log receiving an envelope.
Receipt - Represent information to be printed on a receipt.
ReceiptPrinter - Print receipt.
EnvelopeAcceptor - Accept envelope from customer; report if time out or cancelled.
Table 2.0 ATMS Subsystems
11 April, 2013 8
XYZ Bank ATMS_SDS 1.0
3.2.1 Start Up
The sequence in which the components function can be found in the sequence diagram (Figure
15.0) located in Appendix A.
3.2.2 Shutdown
The sequence in which the components function can be found in the sequence diagram (Figure
16.0) located in Appendix A.
3.2.3 Withdrawal
The communication between the components can be found in the communication diagram
(Figure 20.0) located in Appendix C.
11 April, 2013 9
XYZ Bank ATMS_SDS 1.0
3.2.4 Deposit
The communication between the components can be found in the communication diagram
(Figure 21.0) located in Appendix C.
3.2.5 Transfer
The communication between the components can be found in the communication diagram
(Figure 22.0) located in Appendix C.
11 April, 2013 10
XYZ Bank ATMS_SDS 1.0
The communication between the components can be found in the communication diagram
(Figure 23.0) located in Appendix C.
11 April, 2013 11
XYZ Bank ATMS_SDS 1.0
3.1.1 Start Up
Off (S1)
_____On (O)_____
Perform Startup (PS)
Idle (S2)
S1: In “Off” state, the ATM screen displays the message “Not available”.
S2: After turning it on, the system enters the “Idle” state where it displays the message “Please
insert card”. In “Idle” state, the system can start a session when a user inserts a card.
11 April, 2013 12
XYZ Bank ATMS_SDS 1.0
Idle (S1)
_____Off (OF)_____
Perform Shutdown (PS)
Off (S2)
S1: In “Idle” State, the operator can turn off the system for maintenance activities, leaving it in
“Off” state
S2: In “Off” state, the ATM screen displays the message “Not available”.
11 April, 2013 13
XYZ Bank ATMS_SDS 1.0
__Cancel (C)__
Choose Transaction (CT)
____No (N)___
Eject Card (EC)
S1: During the start of a session, the system reads the card inserted and verifies the validity of
the card. In case it is unreadable, the card is ejected, ending the session (S5).
S2: Otherwise, the system proceeds to read the PIN entered by the customer. This stage can
be cancelled by customer by pressing the “Cancel” button, resulting in ejection of the card (S5).
S3: When the PIN is received, the system displays a list of transaction that the customer can
perform. This stage can be cancelled by customer by pressing the “Cancel” button, resulting in
ejection of the card (S5).
11 April, 2013 14
XYZ Bank ATMS_SDS 1.0
S4: After performing a transaction, user can perform another transaction or ends the session.
3.1.4 Withdrawal
S1: User chooses “Withdrawal” as Transaction Type at this state to proceed with withdrawal
(S2).
S2: User chooses the Account Type to withdraw from. System will return to this state as long as
the account type chosen is invalid. Alternatively, user can cancel transaction, returning to
Transaction Menu (S1).
S3: User chooses the amount to withdraw. System will return to this state as long as the input
for amount is invalid. Alternatively, user can cancel transaction, returning to Transaction Menu
(S1).
11 April, 2013 15
XYZ Bank ATMS_SDS 1.0
S4: Then, system checks for the balance in account. If balance is sufficient, system proceeds to
dispensing cash and print receipt (S5). If balance is insufficient, system proceeds to ask if user
wants to continue the session (S6).
S5: User can choose to continue to perform another transaction, where system proceeds to
Transaction Menu (S1). Otherwise, system will eject card (S7).
S6: User can choose to continue to perform another transaction after a failed transaction, where
system proceeds to Transaction Menu (S1). Otherwise, system will eject card (S7).
11 April, 2013 16
XYZ Bank ATMS_SDS 1.0
Selecting Transaction(S1)
Deposit(E1)/
Prompt to select account type(A1)
Yes(E6)/
Prompt to select transaction type(A7)
Invalid Account Type(E9) [invalid]/
Selecting Account(S2)
Prompt to select account type again(A2)
Cancel(E5)/
Prompt to confirm new
transaction(A6) Account Type(E2)/
Prompt to enter amount of deposit(A3)
Inserting Envelope(S4)
Cancel(E5)/
Prompt to confirm new Envelope(E4)/
transaction(A6) Print receipt(A5)
Printing Receipt(S5)
Take Receipt(E7)/
Prompt to confirm new transaction(A6)
No(E8)/
Prompt to eject card(A8)
Ejecting Card(S7)
S1: User chooses “Deposit” as Transaction Type at this state to proceed with deposit (S2).
11 April, 2013 17
XYZ Bank ATMS_SDS 1.0
S2: User chooses the Account Type to deposit. System will return to this state as long as the
account type chosen is invalid. Alternatively, user may choose to cancel transaction, resulting in
system asking if user wants to perform another transaction (S6).
S3: User inputs the amount to deposit. If amount is invalid, system will ask if user wants to
perform another transaction. Alternatively, user may choose to cancel transaction, resulting in
system asking if user wants to perform another transaction (S6).
S4: User inserts the cash envelope. Alternatively, user may choose to cancel transaction,
resulting in system asking if user wants to perform another transaction (S6).
S5: System prints receipt. Then, system asks if user wants to perform another transaction.
S6: User can choose to continue to perform another transaction, where system proceeds to
Transaction Menu (S1). Otherwise, system will eject card (S7).
11 April, 2013 18
XYZ Bank ATMS_SDS 1.0
3.1.6 Transfer
Transfer (T)
Invalid Account Type (IAT) Waiting Input (WI)
Waiting Input (WI)
Cancel (C)
Waiting Input (WI)
Reading Account Transfer From (S2)
____No (N)____
Eject Card (EC)
S1: In this state the system ask user what type of transaction does the user want to do,
Withdraw, Transfer, Balance Enquiry & Deposit. If Cancel button is pressed, the system will
directly go to S6.
S2: After choosing Transfer in S1, the user will be required to enter account type to transfer
from and if the input is valid user will be directed to S3. Upon invalid input, the system will
continue to display the same screen which required user to enter account type to transfer from.
If Cancel button is pressed, the system will directly go to S5.
S3: After entering valid account to transfer from, the user will be required to enter account type
to transfer to and if the input is valid user will be directed to S4. Upon invalid input, the system
11 April, 2013 19
XYZ Bank ATMS_SDS 1.0
will continue to display the same screen which required user to enter account type to transfer to.
If Cancel button is pressed, the system will directly go to S5.
S4: After entering valid account to transfer to, the user will be required to enter amount to
transfer and if the input is valid user will be directed to S5. Upon invalid input or if Cancel button
is pressed, the system will directly go to S5.
S5: This state will ask user whether user want to perform another transaction or not. Upon
invalid input, the system will continue to display the same screen which will ask user whether
user want to perform another transaction or not. If user wants to perform another transaction,
the system will lead user back to S1. Else, system will go to S6.
S6: At this state, user session is cancelled and user card is ejected.
_Cancel (C)_
Eject Card (EC)
Choosing Transaction (S1)
Display Transaction Menu (DT)
________Yes (Y)_________
_____Inquiry_(I)_____
Request Account Type (R) End Current Transaction (E)
_____Cancel (C)_____
___No (N)____
Eject Card (EC)
11 April, 2013 20
XYZ Bank ATMS_SDS 1.0
S1: User chooses “Fund Transfer” as Transaction Type at this state to proceed with withdrawal
(S2). Alternatively, user can press “Cancel”, resulting in system ejecting card (S4).
S2: User chooses the Account Type to inquire. If account is invalid, system will stay in this state,
requesting user to re-enter account. Alternatively, user can cancel transaction, resulting in
system asking if user wants to perform another transaction (S3).
S3: System asks if user wants to perform another transaction. If user chooses “Yes”, system will
display Transaction Menu (S1). If user chooses “No”, system will terminate session and ejects
card (S4).
11 April, 2013 21
XYZ Bank ATMS_SDS 1.0
11 April, 2013 22
XYZ Bank ATMS_SDS 1.0
A.1 Start Up
11 April, 2013 23
XYZ Bank ATMS_SDS 1.0
11 April, 2013 24
XYZ Bank ATMS_SDS 1.0
11 April, 2013 25
XYZ Bank ATMS_SDS 1.0
11 April, 2013 26
XYZ Bank ATMS_SDS 1.0
Card
Transaction Type
Amount of Money
User
Transaction Information
Transaction Information
Account Type
Account Information
2.0
1.0 3.0 4.0
PIN Obtain
Validate Validate Process
Transaction
ATM Card Account Transaction Transaction
Information
Validation Information
Bank Account Information
Transaction Transaction Information
Server
Cash
Receipt
11 April, 2013 27
XYZ Bank ATMS_SDS 1.0
11 April, 2013 28
XYZ Bank ATMS_SDS 1.0
C.1 Withdrawal
11 April, 2013 29
XYZ Bank ATMS_SDS 1.0
11 April, 2013 30
XYZ Bank ATMS_SDS 1.0
C.3 Transfer
11 April, 2013 31
XYZ Bank ATMS_SDS 1.0
11 April, 2013 32