University of Benghazi Faculty of Information Technology ATM System Simulation Project (MY - ATM)
University of Benghazi Faculty of Information Technology ATM System Simulation Project (MY - ATM)
In System Design Life Cycle SDLC, a framework of software production, the documentation is
the output of many system design phases, also the input of the next phase. Software development
stage requirement analysis, design, testing and deployment are known as the most important
phases in SDLC, which have an output for each.This sheet is an instance of the documentation
process, in a technical report, of a Automated Teller Machine ATM case study and include a
system specification for simple ATM simulation .The Unified Modeling Language UML
diagrams used to make system specification and these diagrams iterate in each system design life
phases, more details added in each iteration .
1. Introduction
Recently, Automated Teller Machine ATM software design has become a familiar case study,
which is used as an example for an Object Oriented Programming (OOP) approach. This report
presents a documentation process for a project called MY-ATM which is considered to be a
simulation for an ATM. In this document, Unified Modeling Language (UML) diagrams use case
diagram , class diagram and sequence diagram were used to describe the specification of both of
static and dynamic views of the system, in addition to, communication diagram, which is, in fact,
does not belong to the UML nations diagrams, but they are provide a better understanding to the
communication between classes .
2. System Scenario
In the My- ATM case study scenario , each bank client has a bank card with a card number that
refers to account number , and user password refers to a card PIN, which is stored in the client
account record in the bank database server . The bank client can use his card to make specific
operations withdraw, deposit and make a check on his account balance. In the ATM system, as it
is known, there is a daily withdrawal amount constraint that can not be violated by the client,
and this daily amount is presented to the client by checking balance operation or through the
withdrawal process to let him know how much money he could withdraw. Also the Bank client
can make a deposit process by providing a deposit slot with cash money.For more flexible
services ,the client can choose his favorite language from two types of languages one for an
Arabic Interfaces or an English Interfaces. The last third service provided by My- ATM
system is check-in client balance either the available daily withdrawal amount or the total client
account balance .
3. Use case diagram :
Requirements captured in UML are specified within the Use Case Model, which is a functional
requirement expressed as a set of interrelated use cases. The Use Case Diagram is a high level
1
view of those related use cases. The output for the Use Case Model are the use case diagram and
use case scenario for each of interrelated use cases. In figure 1 a use case diagram that specifies
the project domain. In the use case diagram four major parts included : System/Domain
Boundary, Actors, Use Cases and Communication Associations - interactions between actors and
use cases.
● Withdrawal
● Deposit
● Check balance
● Change Language
2
For each one of the above functions there is at least one corresponding scenario, but in fact each
one must have two, one for the normal scenario and second for the exemption may occur as the
client enters an incorrect PIN. In this documentation report two normal scenarios included,
which express Withdraw and Deposit functions and one exception scenario for Withdraw if the
user enters an incorrect PIN .
3
7.5 The user chose the deposit option a.
7.6 The ATM requests cash in the deposit slot list .
7.7 The user inserts the deposit cash amount in the deposit slot .
7.8 The ATM count deposit cash amount , dispensing confirmation message .
7.9 The user confirms the process .
7.10 The ATM finished the deposit process and displayed the process success .
Note : In MY -ATM simulation project, the deposit amount is generated randomly in each
deposit process .
From the project scenarios, there is a tow table produced , the first called The requirements list
,which is including use case names, their functional requirements and the second one is for the
Actors that interact with the each use case, in MY - ATM simulation project, there is five use
cases and tow Actors which are in the tables 1,2 .Table ( 1 ) includes use case in project domain
3 Retrieve both of available Withdrawal amount and total bank account Check Account
4 Authenticated user login , return user account to use in ATM Find Account
operations
2 Bank sever The bank database server which stores all account transactions
and information.
4
9. Candidate Classes
After the requirement capturing process, that is specified by using use cases diagram and use
case scenarios , extracting system classes by detecting objects takes place. Candidate Classes is
the process which is implemented by seeking for nouns and noun-phrases in the scenarios, also
some functions could be specified in this phase by extracting verbs from use cases scenarios too.
The output for this process is known as the Candidate Classes table , nouns are listed in this table
and analysis to choose the correct Classes. In this phase some mistakes in Candidate Classes may
occur but this is normal and with the iteration of those diagrams in next stages of the system
design the facts must be declared correctly .
Candidate Classes is one of the most important early stages because it will form the basis of the
other models: Class Diagrams, Sequence Diagrams, Collaboration Diagrams and Statecharts.
Some of those models will be presented in this report, the most famous ones .In deciding which
objects may end up as classes, it is useful to categorize and list the nouns and noun-phrases as
probable, possible or unlikely as in table ( 3 ) .
5
In MY - ATM simulation project, there are seven classes Account, SoftWareStartUp,
InterFaceControler, MyATM, WOnScreen, InterFaceLangauge and Operations, which are stand
on the candidates nouns MY-ATM, System, Account, Screen, Languages and Interface.
Some changes are occur to the names of the classes spelling due to two reasons, first reason, that
some of the candidates nouns is similar to reserved words (e.g., Screen, System become
WOnScreen, SoftWareStartUp), and the second reason is to simplify both of discover and
member there roles by the IT profisints when some of the try to understand what the behavior for
each of the system classes, and that was don by adding words to describe the classes nature (e.g.,
Languages become InterFaceLangauge). In some cases the two reasons implemented together
(e.g., Screen became WOnScreen), in this case Screen turned to WOnScreen based on Write On
Screen .
In the real world system designs, the first cut diagram, in usual, expresses the entity classes only,
which will be save in the database system, but in My - ATM case study it is bringing together
either of entity, control, and interface classes, so My - ATM system classes could be grouped
according to classes categories in fact like bellow :
● MY-ATM, SoftWareStartUp class are an Interface class
● Account class is an entity class
● InterFaceControler, WOnScreen,InterFaceLangauge and Operations are control classes .
6
11. Communication diagram
In order to go ahead in extracting system functions and its internal messages, the
communication diagram can lead to a better understanding of the interaction and messages
between objects, in a process called use case realizations. It is a good programming practice to
use the communication diagram to declare the interaction and collaboration between the system
units and objects. In figure ( 3 ) the communication diagram of the part of withdrawal use case
to the client login from step 1 to step 4, and displaying the main screen in MY - AT system .
figure ( 3 ) the communication diagram for withdrawal use case from step 1 to the step 4
7
In figure ( 4 ), the communication diagram for the withdrawal use case from step 5 to step 8
describes the interaction between classes to finish the withdrawal function .
Figure ( 4 ) the communication diagram for the withdrawal use case from step 5 to step 8
8
included in a more advanced stage, after examining the relation between each two classes
individually .
9
13. The relationship between classes
The relationships or associations between the classes are an important component of the class
diagram. There are three main kinds of association: simple, generalization (inheritance) and
aggregation.In order to enhance class, the generalization is applied to classes and it's also an
important concept in ( OOP ) . Associations act like a pipe or channel connecting a number of
objects of both classes which associate with each other called a multiplicity of associations. It
may occur in 1:1 or 1:M or N:M . The associations always are verbs present the relation between
classes. Figure ( 6 ) shows a set of relationships or associations that bring each two classes
together in MY - ATM .
Always, the associations are one direction relationships, in many cases, it is possible found two
associations between two classes one on each direction, as in Figure ( 7 ) SoftWareStartUp class
10
could send the keypad input string to the WOnScreen class, also WOnScreen class could set the
text alignment for ATMDisplay screen control .
11
15. Sequence Diagram
In order to deliver the dynamic view of any UML design including MY - ATM project, the use of
Sequence Diagram is the first step to do, the dynamic view of the application domain is
expressing the behavior of it, the interaction of its objects with each other. That is the most
benfest retrieved by using sequence diagrams,although it is so important to go through the static
diagrams but the dynamic could go farther to describe the lifetime of the classes and objects . In
figure ( 9) the system classes interact together to perform the withdrawal process .
12
Also, in figure ( 10 ), the system classes of MY - ATM system communicated in interaction
behavior style to perform the process of making cash deposit .
In the System Design Life Cycle, the sequence diagram may apperded several times either in
analysis phases or in design phases, it is expressed system units in the forms of Objects,
interfaces, Actor involved in the Use Case, time life lines and messages sent between objects. In
some cases some differences may occur in the sequence diagram as it comes in the software
design textbooks but the main general idea is still the same in each. For this report, the sequence
diagram is the last diagram used to specify the project .
13
● Summary
In this technical report, Automated Teller Machine ATM is considered as a case study ,and the
report represents documentation processes corresponding to the most important phases in the
system design lifetime. Seven different classes are delivered in this document, which are:
Account, SoftWareStartUp, InterFaceControler, MyATM, WOnScreen,InterFaceLangauge and
Operations class. An Account class is a famous model that has no new ideas to perform, however
, in the other classes, new ideas were expressed in the style of operating the system. MyATM is
the main thread starter in this system which is called the SoftWareStartUp class.After
SoftWareStartUp is called, it constructs the system Interface. SoftWareStartUp establishes a set
of activity listeners that detect user's interactions, After SoftWareStartUp detected an event it is
send a message to the InterFaceControler class which determine the action type based on a
public state variables ( layOutStack, UAction ) which are locate the current layout and the
current user action by using control statements ( IF, Switch). The system displays its
functionalities in menus and the user chooses his desired service by using input control, and
InterFaceControler class sends a message to Operations class to perform the desired services . In
addition send results to the ATM screen is the responsibility of InterFaceControler which is call
the WOnScreen class .When WOnScreen reserved a message to display it is detecte user
preferred language based on language flag variable ( langaugeFlag ), and call for
InterFaceLangauge to run its getter and setter functions to change the text variables for the
system menus.All these functionalities are performed based on OOP programming concepts and
implemented in Java Eclipse IDE.
References
14