You are on page 1of 38

Software Design

Specifications
Automated Teller Machine System
(ATMS)

Version: 1.0
Date: 11/04/ 2013

FOR LECTURER AND STUDENT USE


 Malaysian Software Testing Board

Revision 1, 2013

All rights reserved.


No part of this publication may be reprinted, reproduced, stored in a retrieval system or transmitted, in
any form or by any means, without the prior permission in writing from the owners.
This publication and related documents mentioned in this publication and documents attached with this
publication are solely for educational purpose. The use of the any materials provided with this publication
for any commercial and/or any consultancy work is strictly prohibited.

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

Document Name ATMS Software Design Specifications


Reference Number ATMS_SDS
Version 1.0
Project Code ABC_ATMS
Status In-use
Date Released 11th of April, 2013

Name Position Signature


Prepared By: Business Analyst
Ms. Business Analyst XYZ Bank

Reviewed By: Lead Developer


Mr. Reviewer XYZ Bank

Approved By: Project Manager


Mr. Client XYZ Bank

11 April, 2013 i
XYZ Bank ATMS_SDS 1.0

Version History

Version Release Date Section Amendments


1.0 11/04/2013 All Original document

11 April, 2013 ii
XYZ Bank ATMS_SDS 1.0

Table of Content

Document Control ........................................................................................................................ i


Version History............................................................................................................................ ii
Table of Content ........................................................................................................................ iii
1.0 Introduction .......................................................................................................................... 1
1.1 Purpose ............................................................................................................................ 1
1.2 Scope ............................................................................................................................... 1
1.3 Intended Audience............................................................................................................ 1
1.4 Product ............................................................................................................................. 1
1.5 Definition & Acronyms ...................................................................................................... 2
1.6 Overview .......................................................................................................................... 3
2.0 System Considerations ........................................................................................................ 5
2.1 Assumptions and Dependencies ...................................................................................... 5
2.1.1 Related Software and Hardware ................................................................................ 5
2.1.2 End User Characteristic ............................................................................................. 5
2.2 General Constraints .......................................................................................................... 5
2.3 Goals and Guidelines ....................................................................................................... 5
2.4 Development Methods ...................................................................................................... 6
3.0 System Architecture and Strategies ..................................................................................... 7
3.1 System Architecture ......................................................................................................... 7
3.2 Subsystem Architecture .................................................................................................... 8
3.2.1 Start Up ...................................................................................................................... 9
3.2.2 Shutdown ................................................................................................................... 9
3.2.3 Withdrawal ................................................................................................................. 9
3.2.4 Deposit......................................................................................................................10
3.2.5 Transfer ....................................................................................................................10
3.2.6 Balance Inquiry .........................................................................................................11
3.3 System States .................................................................................................................12
3.1.1 Start Up .....................................................................................................................12
3.1.2 Shut Down ................................................................................................................13
3.1.3 Session Verification ...................................................................................................14
3.1.4 Withdrawal ................................................................................................................15

11 April, 2013 iii


XYZ Bank ATMS_SDS 1.0

3.1.5 Cash Deposit ............................................................................................................17


3.1.6 Transfer ....................................................................................................................19
3.1.7 Balance Inquiry .........................................................................................................20
Appendix A – Sequence Diagrams............................................................................................23
A.1 Start Up ...........................................................................................................................23
A.2 Shut Down ......................................................................................................................23
A.3 Session Verification .........................................................................................................24
A.4 Transaction (General) .....................................................................................................25
Appendix B – Data Flow Diagram .............................................................................................27
Appendix C – Communication Diagrams ...................................................................................29
C.1 Withdrawal ......................................................................................................................29
C.2 Cash Deposit ..................................................................................................................30
C.3 Transfer ..........................................................................................................................31
C.4 Balance Inquiry ...............................................................................................................32

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.

1.3 Intended Audience

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

1.5 Definition & Acronyms

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.

Transaction A transaction is a task performed using ATM by a user, including a Cash


Withdrawal, Cash Deposit, Fund Transfer and Balance Inquiry.

User A user is a bank customer who holds an ATM card and is accessing the ATM.

Acronyms

SDS System Design Specifications

SRS System Requirement Specifications

ADA Americans with Disability Act

ATM Automated Teller Machine

ATMS Automated Teller Machine System

IEEE Institute of Electrical and Electronics Engineers

I/O Input or output

GUI Graphical User Interface

OOAD Object-Oriented Analysis and Design

PIN Personal Identification Number

RGB Red Green Blue (Colour model)

11 April, 2013 2
XYZ Bank ATMS_SDS 1.0

1.6 Overview

This document consists of 3 sections:


Section 1 contains the purpose, scope, intended audience, product, definitions & acronyms.
Section 2 contains the system considerations, including assumptions and constraints,
Section 3 contains system architecture of ATMS to be implemented.
Appendix A contains sequence diagrams of ATMS.
Appendix B contains data flow diagram of ATMS.
Appendix C contains communication diagrams of ATMS.

11 April, 2013 3
XYZ Bank ATMS_SDS 1.0

This page is intentionally left blank

11 April, 2013 4
XYZ Bank ATMS_SDS 1.0

2.0 System Considerations

2.1 Assumptions and Dependencies


The assumptions and dependencies of ATMS are as follows:

2.1.1 Related Software and Hardware

ATMS is embedded software which will only run on an ATM machine.

2.1.2 End User Characteristic

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.

Role Description Required Knowledge


Bank worker who performs Basic knowledge on ATM maintenance skills, including starting
Operator maintenance activities on up and shutting down ATM, refilling the ATM cash dispenser
ATM. and removing cash envelopes from ATM.
Basic knowledge on bank transactions, including how to
General individual who
User perform cash withdrawal, cash deposit, fund transfer and
uses the ATM.
balance inquiry.
Table 1.0 Intended Users & Required Knowledge

2.2 General Constraints

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.

2.3 Goals and Guidelines

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

2.4 Development Methods

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

3.0 System Architecture and Strategies

3.1 System Architecture

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.

Figure 1.0 ATMS System Architecture

11 April, 2013 7
XYZ Bank ATMS_SDS 1.0

3.2 Subsystem Architecture

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

Figure 2.0 Component Diagram – 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

Figure 3.0 Component Diagram – Shut Down

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

Figure 4.0 Component Diagram – 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

Figure 5.0 Component Diagram – Cash Deposit

The communication between the components can be found in the communication diagram
(Figure 21.0) located in Appendix C.

3.2.5 Transfer

Figure 6.0 Component Diagram – 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

3.2.6 Balance Inquiry

Figure 7.0 Component Diagram – Balance Inquiry

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.3 System States


This section explains the states of each feature.

3.1.1 Start Up

Off (S1)

_____On (O)_____
Perform Startup (PS)

Idle (S2)

Figure 8.0 State Diagram – System Start Up

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

3.1.2 Shut Down

Idle (S1)

_____Off (OF)_____
Perform Shutdown (PS)

Off (S2)

Figure 9.0 State Diagram – Shut Down

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

3.1.3 Session Verification

__Invalid Card (IC)___


Display Message (DM)
Reading Card (S1)
_3 Invalid PIN (3IP)
Retain Card (RC)

_Valid Card (VC)


_Invalid PIN (IP)_ Read Pin (RP)
Display Message (DM)
__Cancel (C)__
Eject Card (EC)
Reading Pin (S2)

___Valid PIN (VP)___


Display Transaction (DT)

__Cancel (C)__
Choose Transaction (CT)

Eject Card (EC)


______Yes (Y)_____

Choosing Transaction (S3)

_Transaction Type (TT)_


Perform Transaction (PT)

Performing Transaction (S4)

____No (N)___
Eject Card (EC)

Ejecting Card (S5)

Figure 10.0 State Diagram – Session Verification

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

Figure 11.0 State Diagram – 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).

S7: System terminates session and ejects card.

11 April, 2013 16
XYZ Bank ATMS_SDS 1.0

3.1.5 Cash Deposit

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)

Requesting Deposit Amount(S3)

Invalid Amount of Deposit(E10) [invalid]/


Prompt to confirm new transaction(A6)
Cancel(E5)/ Amount of Deposit(E3)/
Prompt to confirm new Insert envelope(A4)
transaction(A6)

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)

Requesting New Transaction(S6)

No(E8)/
Prompt to eject card(A8)

Ejecting Card(S7)

Figure 12.0 State Diagram – Deposit

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).

S7: System terminates session and ejects card.

11 April, 2013 18
XYZ Bank ATMS_SDS 1.0

3.1.6 Transfer

_______Yes (Y)_______ Cancel (C)


Choose Transaction (CT) Eject Card (EC)
Transaction Menu (S1)

Transfer (T)
Invalid Account Type (IAT) Waiting Input (WI)
Waiting Input (WI)
Cancel (C)
Waiting Input (WI)
Reading Account Transfer From (S2)

Valid Account Type (VAT)


Invalid Account Type (IAT) Waiting Input (WI)
Waiting Input (WI)
Cancel (C)
Waiting Input (WI)
Reading Account Transfer To (S3)

Valid Account Type (VAT)


Invalid Amount Value (IAV) Waiting Input (WI)
Record In Log (RL) & Display Message (DM)
Cancel (C)
Waiting Input (WI)
Reading Amount Value (S4)

Valid Amount Value (VAMV)


Record In Log (RL) & Print Receipt (PR)

Performing Transaction (S5)

____No (N)____
Eject Card (EC)

Ejecting Card (S6)

Figure 13.0 State Diagram – Transfer

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.

3.1.7 Balance Inquiry

_Cancel (C)_
Eject Card (EC)
Choosing Transaction (S1)
Display Transaction Menu (DT)
________Yes (Y)_________

_Invalid Account Type (IA)_


Re-Choose Account (RA)

_____Inquiry_(I)_____
Request Account Type (R) End Current Transaction (E)
_____Cancel (C)_____

Choosing Account Type (S2)

_Account Type (AC)_


Print Receipt (PR)

Performing Another Transaction (S3)

___No (N)____
Eject Card (EC)

Ejecting Card (S4)

Figure 14.0 State Diagram – Balance Inquiry

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

This page is intentionally left blank

11 April, 2013 22
XYZ Bank ATMS_SDS 1.0

Appendix A – Sequence Diagrams

The sequence diagrams of components in ATMS are shown below.

A.1 Start Up

Figure 15.0 Sequence Diagram –Start Up

A.2 Shut Down

Figure 16.0 Sequence Diagram –Shut Down

11 April, 2013 23
XYZ Bank ATMS_SDS 1.0

A.3 Session Verification

Figure 17.0 Sequence Diagram – Session

11 April, 2013 24
XYZ Bank ATMS_SDS 1.0

A.4 Transaction (General)

Figure 18.0 Transaction Sequence Diagram

11 April, 2013 25
XYZ Bank ATMS_SDS 1.0

This page is intentionally left blank

11 April, 2013 26
XYZ Bank ATMS_SDS 1.0

Appendix B – Data Flow Diagram

The data flow diagram of components in ATMS is shown below:

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

Figure 19.0 Data Flow Diagram – Overall

11 April, 2013 27
XYZ Bank ATMS_SDS 1.0

This page is intentionally left blank

11 April, 2013 28
XYZ Bank ATMS_SDS 1.0

Appendix C – Communication Diagrams

The communication diagrams of components in ATMS are shown below:

C.1 Withdrawal

Figure 20.0 Communication Diagram – Withdrawal

11 April, 2013 29
XYZ Bank ATMS_SDS 1.0

C.2 Cash Deposit

Figure 21.0 Communication Diagram – Deposit

11 April, 2013 30
XYZ Bank ATMS_SDS 1.0

C.3 Transfer

Figure 22.0 Communication Diagram – Transfer

11 April, 2013 31
XYZ Bank ATMS_SDS 1.0

C.4 Balance Inquiry

Figure 23.0 Communication Diagram – Balance Inquiry

11 April, 2013 32

You might also like