Sei sulla pagina 1di 65


Online banking (or Internet banking) allows customers to conduct financial transactions on a
secure website operated by their retail or virtual bank, credit union or building society.

Online banking system is a privileges software adapted by many corporations to meet the
demand & the desires of their customers. The most recent developed online banking system
includes many services like online payments of bills, cash withdrawals, e-commerce etc.
Through this system the co operations provide web portals as a bank on world wide web.

The customers can visit the bank, access the information about the bank, open the account,
access their accounts, request loans, get the insurance elaborately speaking the bank is
presented to the people at the screens of their computers. The transactions can be carried out
anywhere everywhere at any time. This methodology introduces fast banking to this busy
modern society.

The OBS software was introduced in the market in late 80¶s in the west through internet
which made a revolution in the available banking systems. This system made a tremendous
approach in time saving mechanisms of banking.



In this busy world people want to manage their work in an easy and faster way. Because there
was no alternative in old days the people especially one who had a tight schedule had to wait
in a long queue for hours for just making a small transaction. Even after the improvement of
technology threats like phishing, hacking, internet security existed.


We have proposed this system with total information security so as to assure transactions in
complete atomicity, compatibility, integrity & durabiliy. We have also implemented more
faster transactions with 100% assurance of minimal errors. We have attributed our system
with efficient softwares to avoid and stop malpractices.




Online banking system provides Balance Enquiry, Funds Transfer to another
account in the same bank, Request for cheque book/change of address/stop payment of
cheques, Mini statements (Viewing Monthly and annual statements).

The Traditional way of maintaining details of a user in a bank was to
enter the details and record them. Every time the user need to perform some
transactions he has to go to bank and perform the necessary actions, which
may not be so feasible all the time. It may be a hard-hitting task for the users
and the bankers too. The project gives real life understanding of Internet
banking and activities performed by various roles in the supply chain. Here,
we provide an automation for banking system through Internet. Internet
banking system project captures activities performed by different roles in real
life banking which provides enhanced techniques for maintaining the required
information up-to-date, which results in efficiency. The project gives real life
understanding of Internet banking and activities performed by various roles in
the supply chain.

This Project investigates the entry threshold for providing a new
transaction service channel via the real options approach, where the entry
threshold is established by using an Internet banking system designed for
the use of normal users(individuals), Industrialists, Entrepreneurs,
Educational Institutions(Financial sections), Organizations and
Academicians under transaction rate uncertainty.
V‘ ?ustomer must have a valid User Id and password to login to the
V‘ If a wrong password is given thrice in succession, that account
will be locked and the customer will not be able to use it. When
an invalid password is entered a warning is given to the user that
his account is going to get locked.
V‘ After the valid user logs in he is shown the list of accounts he has
with the bank.
V‘ On selecting the desired account he is taken to a page which
shows the present balance in that particular account number.
V‘ User can request for the details of the last µn¶ number of
transactions that the has performed. A report can also be taken of

V‘ User can make a funds transfer to another account in the same
bank. User is provided with a transaction password which is
different from the login password.
V‘ User can transfer funds from his account to any other account
with this bank. If the transaction is successful a notification
should appear to the customer, in case it is unsuccessful, a proper
message should be given to the customer as to why it failed.
V‘ User can request for cheque book/change of address/stop payment
of cheque¶s
V‘ User can view his monthly as well as annual statements. He can
also take print out of the same.
V‘ ñenerate reports at every section
V‘ Administrator can take a back up of the database for every
instance that is happening, periodically.
V‘ All users are authenticated to avail the services
V‘ FAQ section is also included for end users benefit.

! ‘ "#$#%#$&Ê $'()$*Ê++,#)%#$

a.‘ Ê*(#$#%)% He is the super user who can add new customers into
banking system, and assigns corresponding username, password, account
type and other details. When any customer withdraws his account from the
bank, he can delete their account and stop the transactions immediately.
He can generate different reports. He also takes the system backup.
+‘ %( After logging in he can request for balance enquiry in his
account, Funds Transfer to another account in the same bank, Request for
cheque book/change of address/stop payment of cheques, Mini statements.
c.‘ $*%#)-#%& $%$& .)$#/)%#$ )$* ) )*(# #)$ These
are another type of customers. They will have extra information to be
entered while logging in such as organization Id and so on. They can also
perform all the actions what the normal customers are going to perform.

V‘ d
 Hypertext Markup Language is a markup language used to
design static web pages.
V‘ 0  Enterprise Java Beans.
V‘ 0  Java 2 Enterprise Edition is a programming platform part of the
Java Platform for developing and running distributed multitier architecture
Java applications, based largely on modular software components running
on an application server.
V‘  DB2 Database is the database management system that delivers a
flexible and cost effective database platform to build robust on demand
business applications.
V‘ Ê Web sphere application server is an application server that runs
business applications and supports the J2EE and web services standards.
V‘ Ê  Web sphere studio application developer is a toolkit which is
designed for the creation of more complex projects, providing fully
dynamic web application utilizing EJB¶s. This consist of EJB tools , ?MP
,data mapping tools & a universal test client that is designed to aid testing
of EJB¶ s.
V‘ d Hypertext Transfer Protocol is a transaction oriented client/server
protocol between web browser & a Web Server.
V‘ dM Secure Hypertext Transfer Protocol is a HTTP over SSL (secure
socket layer)
V‘ 1 Transmission ?ontrol Protocol/Internet Protocol, the suite of
communication protocols used to connect hosts on the Internet. T?P/IP
uses several protocols, the two main ones being T?P and IP.
2 ‘ "$ 
‘ SRS (IEEE SRS Format and Format provided by TñM?)
‘ (online banking system)
‘ internet banking)

3 ,,#4
SRS includes two sections overall description and specific requirements.
]‘ Overall description will describe major role of the system components
and interconnections.
]‘ Specific requirements will describe roles & functions of the actors.

The following sections describe the general factors that affect the product and its requirements.
?ustomer must have a valid User Id and password to login to the system. After
the valid user logs in he is shown the list of accounts he has with the bank. On
selecting the desired account he is taken to a page which shows the present balance in
that particular account number, user can request details of the last µn¶ number of
transactions he has performed. User can make a funds transfer to another account in
the same bank. User is provided with a transaction password which is different from
the login password.
User can transfer funds from his account to any other account with this bank.
If the transaction is successful a notification should appear to the customer, in case it
is unsuccessful, a proper message should be given to the customer as to why it failed.
User can request for cheque book/change of address/stop payment of cheque¶s.
User can view his monthly as well as annual statements. He can also take print
out of the same. Appropriate help to be provided as and when requested by the user.

* % %#,

The client will have client interface in which he can interact with the banking
system. It is a web based interface which will be the web page of the banking
application. Starting a page is displayed asking the type of customer he is whether
ordinary or a corporate customer. Then the page is redirected to login page where the
user can enter the login details. If the login particulars are valid then the user is taken
to a home page where he has the entire transaction list that he can perform with the
bank. All the above activities come under the client interface.
The administrator will have an administrative interface which is a ñUI so that
he can view the entire system. He will also have a login page where he can enter the
login particulars so that he can perform all his actions. This administrative interface
provides different environment such that he can maintain database & provide backups
for the information in the database. He can register the users by providing them with
username, password & by creating account in the database. He can view the cheque
book request & perform action to issue the cheque books to the clients.

‘* %)%
The Internet banking system consists of following modulesM

‘ Login Process This module allows valid customers to access the functionalities
provided by the bank.
‘ Balance Enquiry This module maintains the balance details of a particular account.
‘ Update Profile This module allows the customer to update profile of their account.
‘ Funds Transfer This module allows the customers to transfer funds from one
account to another within the same bank.
‘ ?hange of Password This module allows customers to change their password.
‘ Mini Statements This module allows customers to view their transaction details.

!‘5)) %#%# 
?ustomers M The normal users will have an account of fixed or savings and
should have a minimum balance of 500 Rs. He can transfer funds to another account
of the same bank & may view his monthly or annual statements.
Industrialists, Entrepreneur, Organizations academiciansM These users will
have all the three accounts & should have a minimum balance of 20,000 Rs. He can
view the statements of his organization or industry

‘ Login and password is used for identification of customer¶s account
and there is no facility for non users to login.
‘ This system works only on a single server.
‘ ñUI is only in English
‘ Limited to HTTP/HTTPS protocols

3Ê(%#$)$* $*$ #

‘ The details of customers such as username, password, account type and
their corresponding authority details should be manually entered by the
administrator before using this system.
‘ Every user should be comfortable of working with computer and net
‘ He should be aware of the banking system.
‘ He must have basic knowledge of English too.

!  Ê 

!$ %#$)-6#($%

InputM Login
ProcessM The customer needs to enter the valid user id and password. He can then perform the
desired operations.
OutputM Display of home page.

!$ %#$)-6#($%

InputM Balance enquiry

ProcessM The customer can request for viewing the balance in the account to the
OutputM Display of balance to the customer.

!!$ %#$)-6#($%!

InputM Funds transfer
ProcessM The customer can request for transfering funds from one account to another account
by providing necessary details.
OutputM Transfer success

!2$ %#$)-6#($%2

InputM Update profile

ProcessM The customer can update his profile by changing his password,address, phone
number,email etc.
OutputM Profile is updated

!3$ %#$)-6#($%3

InputM ?heque book request

ProcessM The customert can request a cheque book by providing the necessary details.
OuputM ?heque book is sent to the customer

!7$ %#$)-6#($%7

InputM Mini statements

ProcessM The customer can request for mini statement i.e., monthly,annually or for µn¶
number of transactions.
OutputM Displays mini statement

!8$ %#$)-6#($%8

InputM Manage customers

ProcessM The administrator assigns new users when a new customer joins the online bank. He
can also delete an account when a customer leaves the bank organization.
OutputM Bank updates

!9$ %#$)-6#($%9

InputM System backup

ProcessM The administrator backup the database in order to prevent any loss of data in case of
system crash. He can backup entire database or a particular section.
OutputM Backup success

!:$ %#$)-6#($%:

InputM ñenerate reports

ProcessM The administrator is responsible for checking the logs of different customers for
auditing and maintaining the integrity of the system.
OutputM Report is generated



  Ê Ê 

$%* %#$
The unified modeling language(UML)is a standard language for writing software blue prints.
The UML is a language for
]‘ Visualizing
]‘ Specifying
]‘ ?onstructing
]‘ Documenting

The artifacts of a software systemM

UML is a language that provides vocabulary and the rules for combing words in that
vocabulary for the purpose of communication.
A modeling language is a language whose vocabulary and rules focus on the concept and
physical representation of a system. Vocabulary and rules of a language tell us how to create
and real well formed models, but they don¶t tell you what model you should create and when
should create them.

The UML is more than just a bunch of graphical symbols. In UML each symbol has well
defined semantics. In this manner one developer can write a model in the UML and another
developer or even another tools can interpret the model unambiguously.

UML is used fro specifying means building models that are precise, unambiguous and
complete.UML addresses the specification of all the important analysis, design and
implementation decisions that must be made in developing and deploying a software
intensive system.

UML is not a visual programming language but its models can be directly connected to a
variety of programming languages. This means that it is possible to map from a model in the
UML to a programming language such as java, c++ or Visual Basic or even to tables in a
relational database or the persistent store of an object-oriented database.This mapping permits
forward engineering. The generation of code from a UML model into a programming
language. The reverse engineering is also possible you can reconstruct a model from an
implementation back into the UML.

UML is a language for Documenting. A software organization produces all sorts of artifacts
in addition to raw executable code. These artifacts include Requirements, Architecture,
Design, Sourcecode, Project plans, Test, Prototype, Release.

Such artifacts are not only the deliverables of a project, they are also critical in controlling,
measuring and communicating about a system during its development and after its

$ %)-(*-"%5

To understand the UML, we need to form a conceptual model of the language and this
requires learning three major elements.

V‘ The UML Basic Building Blocks.

V‘ The Rules that direct how those building blocks may be put together.
V‘ Some common mechanisms that apply throughout the UML.

As UML describes the real time systems it is very important to make a conceptual model and
then proceed gradually. ?onceptual model of UML can be mastered by learning the following
three major elementsM

+#-*#$.+- < 
Rules to connect the building blocks
?ommon mechanisms of UML
This chapter describes all the UML building blocks. The building blocks of UML can be
defined asM
]‘ Things
]‘ Relationships
]‘ Diagrams

Things are the most important building blocks of UML. Things can beM
]‘ Structural
]‘ Behavioral
]‘ ñrouping
]‘ Annotational

Structural thingsM
The Structural things define the static part of the model. They represent physical and
conceptual elements. Following are the brief descriptions of the structural things.

-)?lass represents set of objects having similar responsibilities.


$%") Interface defines a set of operations which specify the responsibility of a class.



?ollaboration defines interaction between elements.


Use case represents a set of actions performed by a system for a specific goal.


?omponent describes physical part of a system.


A node can be defined as a physical element that exists at run time.


Êbehavioral thing consists of the dynamic parts of UML models. Following are the
behavioral thingsM

$%) %#$

Interaction is defined as a behavior that consists of a group of messages exchanged among

elements to accomplish a specific task.

%)%() 5#$

State machine is useful when the state of an object in its life cycle is important. It defines the
sequence of states an object goes through in response to events. Events are external factors
responsible for state change.


ñrouping things can be defined as a mechanism to group elements of a UML model together.
There is only one grouping thing available.

) <).

Package is the only one grouping thing available for gathering structural and behavioral


Annotational things can be defined as a mechanism to capture remarks, descriptions, and

comments of UML model elements. % is the only one Annotational thing available.


A note is used to render comments, constraints etc of an UML element.

 Ê d 

Relationship is another most important building block of UML. It shows how elements are
associated with each other and this association describes the functionality of an application.
There are four kinds of relationships available.

$*$ '

Dependency is a relationship between two things in which change in one element also affects
the other one.

Ê #)%#$

Association is basically a set of links that connects elements of an UML model. It also
describes how many objects are taking part in that relationship.


ñeneralization can be defined as a relationship which connects a specialized element with a

generalized element. It basically describes inheritance relationship in the world of objects.


Realization can be defined as a relationship in which two elements are connected. One
element describes some responsibility which is not implemented and the other one
implements them. This relationship exists in case of interfaces.


UML diagrams are the ultimate output of the entire discussion. All the elements, relationships
are used to make a complete UML diagram and the diagram represents a system.
The visual effect of the UML diagram is the most important part of the entire process. All the
other elements are used to make it a complete one.
UML includes the following nine diagrams and the details are described in the following

]‘ ?lass diagram
]‘ Object diagram
]‘ Use case diagram
]‘ Sequence diagram
]‘ ?ollaboration diagram
]‘ Activity diagram
]‘ Statechart diagram
]‘ Deployment diagram
]‘ ?omponent diagram

We would discuss all these diagrams in subsequent chapters of this tutorial.


The class diagram is a static diagram. It represents the static view of an application. ?lass
diagram is not only used for visualizing, describing and documenting different aspects of a
system but also for constructing executable code of the software application.
The class diagram describes the attributes and operations of a class and also the constraints
imposed on the system. The class diagrams are widely used in the modelling of object
oriented systems because they are the only UML diagrams which can be mapped directly
with object oriented languages.
The class diagram shows a collection of classes, interfaces, associations, collaborations and
constraints. It is also known as a µ   

The purpose of the class diagram is to model the static view of an application. The class
diagrams are the only diagrams which can be directly mapped with object oriented languages
and thus widely used at the time of construction.
The UML diagrams like activity diagram, sequence diagram can only give the sequence flow
of the application but class diagram is a bit different. So it is the most popular UML diagram
in the coder community.
So the purpose of the class diagram can be summarized asM
]‘ Analysis and design of the static view of an application.
]‘ Describe responsibilities of a system.
]‘ Base for component and deployment diagrams.
]‘ Forward and reverse engineering.

d4%*)4-) #).)(=
?lass diagrams are the most popular UML diagrams used for construction of software
applications. So it is very important to learn the drawing procedure of class diagram.
?lass diagrams have lot of properties to consider while drawing but here the diagram will be
considered from a top level view.
?lass diagram is basically a graphical representation of the static view of the system and
represents different aspects of the application. So a collection of class diagrams represent the
whole system.
The following points should be remembered while drawing a class diagramM
The name of the class diagram should be meaningful to describe the aspect of the system.
Each element and their relationships should be identified in advance.
Responsibility (attributes and methods) of each class should be clearly identified.
For each class minimum number of properties should be specified. Because unnecessary
properties will make the diagram complicated.
Use notes when ever required to describe some aspect of the diagram. Because at the end of
the drawing it should be understandable to the developer/coder.
Finally, before making the final version, the diagram should be drawn on plain paper and
rework as many times as possible to make it correct.
Æow the following diagram is an example of an E  µ
of an application. So it
describes a particular aspect of the entire application.
First of all E  and µ 
 are identified as the two elements of the system and they
have a   
 relationship because a customer can have multiple orders.
We would keep E  class is an abstract class and it has two concrete classes (inheritance
relationship)  E  and 
E .
The two inherited classes have all the properties as the E  class. In addition they have
additional functions like µ  and    .
So the following class diagram has been drawn considering all the points mentioned aboveM

5%-) #).)(=
?lass diagram is a static diagram and it is used to model static view of a system. The static
view describes the vocabulary of the system.
?lass diagram is also considered as the foundation for component and deployment diagrams.
?lass diagrams are not only used to visualize the static view of the system but they are also
used to construct the executable code for forward and reverse engineering of any system.
ñenerally UML diagrams are not directly mapped with any object oriented programming
languages but the class diagram is an exception.
?lass diagram clearly shows the mapping with object oriented languages like Java, ?++ etc.
So from practical experience class diagram is generally used for construction purpose.
]‘ So in a brief, class diagrams are used forM
]‘ Describing the static view of the system.
]‘ Showing the collaboration among the elements of the static view.
]‘ Describing the functionalities performed by the system.
]‘ ?onstruction of software applications using object oriented languages.

 0  ÊÊ

Object diagram shows a set of objects and their relationships. Object diagram
represents static snapshot of instances of the things found in class diagram.
These diagrams address static design view or static process view of a system.

 Ê  ÊÊ

To model a system the most important aspect is to capture the dynamic behaviour. To clarify
a bit in details,  
  means the behaviour of the system when it is running
operating. So only static behaviour is not sufficient to model a system rather dynamic
behaviour is more important than static behaviour. In UML there are five diagrams available
to model dynamic nature and use case diagram is one of them. Æow as we have to discuss
that the use case diagram is dynamic in nature there should be some internal or external
factors for making the interaction. These internal and external agents are known as actors. So
use case diagrams are consists of actors, use cases and their relationships. The diagram is
used to model the system/subsystem of an application. A single use case diagram captures a
particular functionality of a system. So to model the entire system numbers of use case
diagrams are used.

The purpose of use case diagram is to capture the dynamic aspect of a system. But this
definition is too generic to describe the purpose.
Because other four diagrams (activity, sequence, collaboration and State-chart) are also
having the same purpose. So we will look into some specific purpose which will distinguish it
from other four diagrams.
Use case diagrams are used to gather the requirements of a system including internal and
external influences. These requirements are mostly design requirements. So when a system is
analyzed to gather its functionalities use cases are prepared and actors are identified.
Æow when the initial task is complete use case diagrams are modelled to present the outside
So in brief, the purposes of use case diagrams can be as followsM
]‘ Used to gather requirements of a system.
]‘ Used to get an outside view of a system.
]‘ Identify external and internal factors influencing the system.
]‘ Show the interacting among the requirements are actors.

d4%*)4 ) #).)(=

Use case diagrams are considered for high level requirement analysis of a system. So when
the requirements of a system are analyzed the functionalities are captured in use cases.
So we can say that uses cases are nothing but the system functionalities written in an
organized manner. Æow the second things which are relevant to the use cases are the actors.
Actors can be defined as something that interacts with the system.
The actors can be human user, some internal applications or may be some external
applications. So in a brief when we are planning to draw an use case diagram we should have
the following items identified.
Functionalities to be represented as an use case

-)%#$5#)($.%5 ))$*) %
Use case diagrams are drawn to capture the functional requirements of a system. So after
identifying the above items we have to follow the following guidelines to draw an efficient
use case diagram.
The name of a use case is very important. So the name should be chosen in such a way so that
it can identify the functionalities performed.
ñive a suitable name for actors.
Show relationships and dependencies clearly in the diagram.
Do not try to include all types of relationships. Because the main purpose of the diagram is to
identify requirements.
Use note when ever required to clarify some important points.
The following is a sample use case diagram representing the order management system. So if
we look into the diagram then we will find three use cases (Order, SpecialOrder and
ÆormalOrder) and one actor which is customer.
The  E  and 
E  use cases are extended from E  use case. So they
have extends relationship. Another important point is to identify the system boundary which
is shown in the picture. The actor µ 
 lies outside the system as it is an external user of
the system.

  Ê  ÊÊ

We have two types of interaction diagrams in UML. One is sequence diagram and the other is
a collaboration diagram. The sequence diagram captures the time sequence of message flow
from one object to another and the collaboration diagram describes the organization of
objects in a system taking part in the message flow.
So the following things are to identified clearly before drawing the interaction diagramM

]‘ Objects taking part in the interaction.

]‘ Message flows among the objects.
]‘ The sequence in which the messages are flowing.
]‘ Object organization.

Following are two interaction diagrams modeling order management system. The first
diagram is a sequence diagram and the second is a collaboration diagram.

56$  #).)(
The sequence diagram is having four objects (?ustomer, Order, SpecialOrder and
The following diagram has shown the message sequence for  E  object and the
same can be used in case of 
E  object. Æow it is important to understand the time
sequence of message flows. The message flow is nothing but a method call of an object.
The first call is µ E  which is a method of E  object. The next call is 

which is a method of  E  object and the last call is µ  which is a method of
 E  object. So here the diagram is mainly describing the method calls from one
object to another and this is also the actual scenario when the system is running.

5--)+)%#$ #).)(
The second interaction diagram is collaboration diagram. It shows the object organization as
shown below. Here in collaboration diagram the method call sequence is indicated by some
numbering technique as shown below. The number indicates how the methods are called one
after another. We have taken the same order management system to describe the
collaboration diagram.
The method calls are similar to that of a sequence diagram. But the difference is that the
sequence diagram does not describe the object organization where as the collaboration
diagram shows the object organization.
Æow to choose between these two diagrams the main emphasis is given on the type of
requirement. If the time sequence is important then sequence diagram is used and if
organization is required then collaboration diagram is used.

5%$%) %#$ #).)(=

We have already discussed that interaction diagrams are used to describe dynamic nature of a
system. Æow we will look into the practical scenarios where these diagrams are used. To
understand the practical application we need to understand the basic nature of sequence and
collaboration diagram.
The main purposes of both the diagrams are similar as they are used to capture the dynamic
behaviour of a system. But the specific purposes are more important to clarify and
Sequence diagrams are used to capture the order of messages flowing from one object to
another. And the collaboration diagrams are used to describe the structural organizations of
the objects taking part in the interaction. A single diagram is not sufficient to describe the
dynamic aspect of an entire system so a set of diagrams are used to capture is as a whole.
The interaction diagrams are used when we want to understand the message flow and the
structural organization. Æow message flow means the sequence of control flow from one

object to another and structural organization means the visual organization of the elements in
a system.
In a brief the following are the usages of interaction diagramsM

]‘ To model flow of control by time sequence.

]‘ To model flow of control by structural organizations.
]‘ For forward engineering.
]‘ For reverse engineering.


The name of the diagram itself clarifies the purpose of the diagram and other details. It
describes different states of a component in a system. The states are specific to a
component/object of a system.
A Statechart diagram describes a state machine. Æow to clarify it state machine can be
defined as a machine which defines different states of an object and these states are
controlled by external or internal events. Activity diagram explained in next chapter, is a
special kind of a Statechart diagram. As Statechart diagram defines states it is used to model
lifetime of an object.

Statechart diagram is one of the five UML diagrams used to model dynamic nature of a
system. They define different states of an object during its lifetime. And these states are
changed by events. So Statechart diagrams are useful to model reactive systems. Reactive
systems can be defined as a system that responds to external or internal events.
Statechart diagram describes the flow of control from one state to another state. States are
defined as a condition in which an object exists and it changes when some event is triggered.
So the most important purpose of Statechart diagram is to model life time of an object from
creation to termination.
Statechart diagrams are also used for forward and reverse engineering of a system. But the
main purpose is to model reactive system.
Following are the main purposes of using Statechart diagramsM

]‘ To model dynamic aspect of a system.

]‘ To model life time of a reactive system.
]‘ To describe different states of an object during its life time.
]‘ Define a state machine to model states of an object.

d4%*)4%)% 5)% #).)(=

Statechart diagram is used to describe the states of different objects in its life cycle. So the
emphasis is given on the state changes upon some internal or external events. These states of
objects are important to analyze and implement them accurately.
Statechart diagrams are very important for describing the states. States can be identified as
the condition of objects when a particular event occurs.
Before drawing a Statechart diagram we must have clarified the following pointsM
]‘ Identify important objects to be analyzed.
]‘ Identify the states.
]‘ Identify the events.
The following is an example of a Statechart diagram where the state of E  object is
The first state is an idle state from where the process starts. The next states are arrived for
events like µ   µ , 
  µ , and µ  . These events are responsible
for state changes of order object.
During the life cycle of an object (here order object) it goes through the following states and
there may be some abnormal exists also. This abnormal exit may occur due to some problem
in the system. When the entire life cycle is complete it is considered as the complete
transaction as mentioned below.
The initial and final state of an object is also shown below.

5%%)% 5)% #).)(=

From the above discussion we can define the practical applications of a Statechart diagram.
Statechart diagrams are used to model dynamic aspect of a system like other four diagrams
disused in this tutorial. But it has some distinguishing characteristics for modeling dynamic

Statechart diagram defines the states of a component and these state changes are dynamic in
nature. So its specific purpose is to define state changes triggered by events. Events are
internal or external factors influencing the system.
Statechart diagrams are used to model states and also events operating on the system. When
implementing a system it is very important to clarify different states of an object during its
life time and statechart diagrams are used for this purpose. When these states and events are
identified they are used to model it and these models are used during implementation of the
system. If we look into the practical implementation of Statechart diagram then it is mainly
used to analyze the object states influenced by events. This analysis is helpful to understand
the system behaviour during its execution.
So the main usages can be described asM
]‘ To model object states of a system.
]‘ To model reactive system. Reactive system consists of reactive objects.
]‘ To identify events responsible for state changes.
]‘ Forward and reverse engineering.

 Ê  ÊÊ

Activity diagram is another important diagram in UML to describe dynamic aspects of the
system. Activity diagram is basically a flow chart to represent the flow form one activity to
another activity. The activity can be described as an operation of the system.
So the control flow is drawn from one operation to another. This flow can be sequential,
branched or concurrent. Activity diagrams deals with all type of flow control by using
different elements like fork, join etc.

The basic purposes of activity diagrams are similar to other four diagrams. It captures the
dynamic behaviour of the system. Other four diagrams are used to show the message flow
from one object to another but activity diagram is used to show message flow from one
activity to another.
Activity is a particular operation of the system. Activity diagrams are not only used for
visualizing dynamic nature of a system but they are also used to construct the executable
system by using forward and reverse engineering techniques. The only missing thing in
activity diagram is the message part.
It does not show any message flow from one activity to another. Activity diagram is some
time considered as the flow chart. Although the diagrams looks like a flow chart but it is not.
It shows different flow like parallel, branched, concurrent and single.
So the purposes can be described asM
Draw the activity flow of a system.
Describe the sequence from one activity to another.
Describe the parallel, branched and concurrent flow of the system.

d4%*)4Ê %#,#%' #).)(=
Activity diagrams are mainly used as a flow chart consists of activities performed by the
system. But activity diagram are not exactly a flow chart as they have some additional
capabilities. These additional capabilities include branching, parallel flow, swimlane etc.
Before drawing an activity diagram we must have a clear understanding about the elements
used in activity diagram. The main element of an activity diagram is the activity itself. An
activity is a function performed by the system. After identifying the activities we need to
understand how they are associated with constraints and conditions.
So before drawing an activity diagram we should identify the following elementsM
]‘ Activities
]‘ Association
]‘ ?onditions
]‘ ?onstraints
Once the above mentioned parameters are identified we need to make a mental layout of the
entire flow. This mental layout is then transformed into an activity diagram.
The following is an example of an activity diagram for order management system. In the
diagram four activities are identified which are associated with conditions. One important
point should be clearly understood that an activity diagram cannot be exactly matched with
the code. The activity diagram is made to understand the flow of activities and mainly used
by the business users.
The following diagram is drawn with the four main activitiesM
]‘ Send order by the customer
]‘ Receipt of the order
]‘ ?onfirm order
]‘ Dispatch order
After receiving the order request condition checks are performed to check if it is normal or
special order. After the type of order is identified dispatch activity is performed and that is
marked as the termination of the process.

5%) %#,#%' #).)(=
The basic usage of activity diagram is similar to other four UML diagrams. The specific
usage is to model the control flow from one activity to another. This control flow does not
include messages.
The activity diagram is suitable for modeling the activity flow of the system. An application
can have multiple systems. Activity diagram also captures these systems and describes flow
from one system to another. This specific usage is not available in other diagrams. These
systems can be database, external queues or any other system.
Æow we will look into the practical applications of the activity diagram. From the above
discussion it is clear that an activity diagram is drawn from a very high level. So it gives high
level view of a system. This high level view is mainly for business users or any other person
who is not a technical person.
This diagram is used to model the activities which are nothing but business requirements. So
the diagram has more impact on business understanding rather implementation details.
Following are the main usages of activity diagramM
]‘ Modeling work flow by using activities.
]‘ Modeling business requirements.
]‘ High level understanding of the system's functionalities.
]‘ Investigate business requirements at a later stage.


?omponent diagrams are different in terms of nature and behaviour. ?omponent diagrams are
used to model physical aspects of a system.
Æow the question is what are these physical aspects? Physical aspects are the elements like
executables, libraries, files, documents etc which resides in a node.
So component diagrams are used to visualize the organization and relationships among
components in a system. These diagrams are also used to make executable systems.

?omponent diagram is a special kind of diagram in UML. The purpose is also different from
all other diagrams discussed so far. It does not describe the functionality of the system but it
describes the components used to make those functionalities.
So from that point component diagrams are used to visualize the physical components in a
system. These components are libraries, packages, files etc.
?omponent diagrams can also be described as a static implementation view of a system.
Static implementation represents the organization of the components at a particular moment.
A single component diagram cannot represent the entire system but a collection of diagrams
are used to represent the whole.
So the purpose of the component diagram can be summarized asM
Visualize the components of a system.
?onstruct executables by using forward and reverse engineering.
Describe the organization and relationships of the components.

d4%*)4($$% #).)(=
?omponent diagrams are used to describe the physical artifacts of a system. This artifact
includes files, executables, libraries etc.
So the purpose of this diagram is different, ?omponent diagrams are used during the
implementation phase of an application. But it is prepared well in advance to visualize the
implementation details.
Initially the system is designed using different UML diagrams and then when the artifacts are
ready component diagrams are used to get an idea of the implementation.
This diagram is very important because without it the application cannot be implemented
efficiently. A well prepared component diagram is also important for other aspects like
application performance, maintenance etc.
So before drawing a component diagram the following artifacts are to be identified clearlyM
]‘ Files used in the system.
]‘ Libraries and other artifacts relevant to the application.
]‘ Relationships among the artifacts.
]‘ Æow after identifying the artifacts the following points needs to be followedM
]‘ Use a meaningful name to identify the component for which the diagram is to be
]‘ Prepare a mental layout before producing using tools.
]‘ Use notes for clarifying important points.
The following is a component diagram for order management system. Here the artifacts are
files. So the diagram shows the files in the application and their relationships. In actual the
component diagram also contains dlls, libraries, folders etc.

In the following diagram four files are identified and their relationships are produced.
?omponent diagram cannot be matched directly with other UML diagrams discussed so far.
Because it is drawn for completely different purpose.
So the following component diagram has been drawn considering all the points mentioned

5%($$% #).)(=
We have already described that component diagrams are used to visualize the static
implementation view of a system. ?omponent diagrams are special type of UML diagrams
used for different purposes.
These diagrams show the physical components of a system. To clarify it, we can say that
component diagrams describe the organization of the components in a system.
Organization can be further described as the location of the components in a system. These
components are organized in a special way to meet the system requirements.
As we have already discussed those components are libraries, files, executables etc. Æow
before implementing the application these components are to be organized. This component
organization is also designed separately as a part of project execution.
?omponent diagrams are very important from implementation perspective. So the
implementation team of an application should have a proper knowledge of the component
Æow the usage of component diagrams can be described asM
]‘ Model the components of a system.
]‘ Model database schema.
]‘ Model executables of an application.
]‘ Model system's source code.


Deployment diagrams are used to visualize the topology of the physical components of a
system where the software components are deployed.
So deployment diagrams are used to describe the static deployment view of a system.
Deployment diagrams consist of nodes and their relationships.

The name  
 itself describes the purpose of the diagram. Deployment diagrams are
used for describing the hardware components where software components are deployed.
?omponent diagrams and deployment diagrams are closely related.
?omponent diagrams are used to describe the components and deployment diagrams shows
how they are deployed in hardware.
UML is mainly designed to focus on software artifacts of a system. But these two diagrams
are special diagrams used to focus on software components and hardware components.
So most of the UML diagrams are used to handle logical components but deployment
diagrams are made to focus on hardware topology of a system. Deployment diagrams are
used by the system engineers.
]‘ The purpose of deployment diagrams can be described asM
]‘ Visualize hardware topology of a system.
]‘ Describe the hardware components used to deploy software components.
]‘ Describe runtime processing nodes.

d4%*)4 -'($% #).)(=
Deployment diagram represents the deployment view of a system. It is related to the
component diagram. Because the components are deployed using the deployment diagrams.
A deployment diagram consists of nodes. Æodes are nothing but physical hardwares used to
deploy the application.
Deployment diagrams are useful for system engineers. An efficient deployment diagram is
very important because it controls the following parameters
]‘ Performance
]‘ Scalability
]‘ Maintainability
]‘ Portability
So before drawing a deployment diagram the following artifacts should be identifiedM
Relationships among nodes
The following deployment diagram is a sample to give an idea of the deployment view of
order management system. Here we have shown nodes asM
]‘ Monitor
]‘ Modem
]‘ ?aching server
]‘ Server
The application is assumed to be a web based application which is deployed in a clustered
environment using server 1, server 2 and server 3. The user is connecting to the application
using internet. The control is flowing from the caching server to the clustered environment.
So the following deployment diagram has been drawn considering all the points mentioned

5% -'($% #).)(=
Deployment diagrams are mainly used by system engineers. These diagrams are used to
describe the physical components (hardwares), their distribution and association.
To clarify it in details we can visualize deployment diagrams as the hardware
components/nodes on which software components reside.
Software applications are developed to model complex business processes. Only efficient
software applications are not sufficient to meet business requirements. Business requirements
can be described as to support increasing number of users, quick response time etc.
To meet these types of requirements hardware components should be designed efficiently and
in a cost effective way.
Æow a day's software applications are very complex in nature. Software applications can be
stand alone, web based, distributed, mainframe based and many more. So it is very important
to design the hardware components efficiently.
So the usage of deployment diagrams can be described as followsM
]‘ To model the hardware topology of a system.
]‘ To model embedded system.
]‘ To model hardware details for a client/server system.
]‘ To model hardware details of a distributed application.
]‘ Forwar
]‘ d and reverse engineering.


UML notations are the most important elements in modeling. Efficient and appropriate use of
notations is very important for making a complete and meaningful model. The model is
useless unless its purpose is depicted properly.
So learning notations should be emphasized from the very beginning. Different notations are
available for things and relationships. And the UML diagrams are made using the notations
of things and relationships. Extensibility is another important feature which makes UML
more powerful and flexible.
The chapter describes the UML Basic Æotations in more details. This is just an extension to
the UML buildling block section I have discussed in previous chapter.
% %)-5#$.
ñraphical notations used in structural things are the most widely used in UML. These are
considered as the nouns of UML models. Following are the list of structural things.
]‘ Interface
]‘ ?ollaboration
]‘ Use case
]‘ Active classes
]‘ ?omponents
]‘ Æodes
]‘ ?lass ÆotationM
UML µµ is represented by the diagram shown below. The diagram is divided into four
]‘ The top section is used to name the class.
]‘ The second one is used to show the attributes of the class.
]‘ The third section is used to describe the operations performed by the class.
]‘ The fourth section is optional to show any additional components.

?lasses are used to represent objects. Objects can be anything having properties and


+> % %)%#$
The   is represented in the same way as the class. The only difference is the 
is underlined as shown below..

As object is the actual implementation of a class which is known as the instance of a class. So
it has the same usage as the class.

$%")  %)%#$

Interface is represented by a circle as shown below. It has a name which is generally written
below the circle.

Interface is used to describe functionality without implementation. Interface is the just like a
template where you define different functions not the implementation. When a class
implements the interface it also implements the functionality as per the requirement.

--)+)%#$ %)%#$

?ollaboration is represented by a dotted eclipse as shown below. It has a name written inside
the eclipse.

?ollaboration represents responsibilities. ñenerally responsibilities are in a group.

 ) %)%#$

Use case is represented as an eclipse with a name inside it. It may contain additional

Use case is used to capture high level functionalities of a system.

Ê % %)%#$

An actor can be defined as some internal or external entity that interacts with the system.

Actor is used in a use case diagram to describe the internal or external entities.
Initial State ÆotationM

Initial state is defined show the start of a process. This notation is used in almost all

The usage of Initial State Æotation is to show the starting point of a process.

#$)-%)% %)%#$

Final state is used to show the end of a process. This notation is also used in almost all
diagrams to describe the end.

The usage of Final State Æotation is to show the termination point of a process.
Active class ÆotationM
Active class looks similar to a class with a solid border. Active class is generally used to
describe concurrent behaviour of a system.

Active class is used to represent concurrency in a system.

($$% %)%#$

A component in UML is shown as below with a name inside. Additional elements can be
added wherever required.

?omponent is used to represent any part of a system for which UML diagrams are made.

* %)%#$

A node in UML is represented by a square box as shown below with a name. A node
represents a physical component of the system.

Æode is used to represent physical part of a system like server, network etc.

Dynamic parts are one of the most important elements in UML. UML has a set of powerful
features to represent the dynamic part of software and non software systems. These features
include   µ and µ  
Interactions can be of two typesM
]‘ Sequential (Represented by sequence diagram)
]‘ ?ollaborative (Represented by collaboration diagram)

$%) %#$ %)%#$
Interaction is basically message exchange between two UML components. The following
diagram represents different notations used in an interaction.

Interaction is used to represent communication among the components of a system.
State machine ÆotationM
State machine describes the different states of a component in its life cycle. The notations are
described in the following diagram.

State machine is used to describe different states of a system component. The state can be
active, idle or any other depending upon the situation.


Organizing the UML models are one of the most important aspects of the design. In UML
there is only one element available for grouping and that is package.

) <). %)%#$

Package notation is shown below and this is used to wrap the components of a system.


In any diagram explanation of different elements and their functionalities are very important.
So UML has  µ notation to support this requirement.
Æote ÆotationM
This notation is shown below and they are used to provide necessary information of a system.


A model is not complete unless the relationships between elements are described properly.
The p  µ gives a proper meaning to an UML model. Following are the different types
of relationships available in UML.
]‘ Dependency
]‘ Association
]‘ ñeneralization
]‘ Extensibility

$*$ ' %)%#$

Dependency is an important aspect in UML elements. It describes the dependent elements

and the direction of dependency.
Dependency is represented by a dotted arrow as shown below. The arrow head represents the
independent element and the other end the dependent element.

Dependency is used to represent dependency between two elements of a system.

Ê #)%#$ %)%#$
Association describes how the elements in an UML diagram are associated. In simple word it
describes how many elements are taking part in an interaction.
Association is represented by a dotted line with (without) arrows on both sides. The two ends
represent two associated elements as shown below. The multiplicity is also mentioned at the
ends (1, * etc) to show how many objects are associated.

Association is used to represent the relationship between two elements of a system.

$)-#/)%#$ %)%#$

ñeneralization describes the inheritance relationship of the object oriented world. It is parent
and child relationship.
ñeneralization is represented by an arrow with hollow arrow head as shown below. One end
represents the parent element and the other end child element.

ñeneralization is used to describe parent-child relationship of two elements of a system.

?%$#+#-#%' %)%#$

All the languages (programming or modeling) have some mechanism to extend its
capabilities like syntax, semantics etc. UML is also having the following mechanisms to
provide extensibility features.
Stereotypes (Represents new elements)
Tagged values (Represents new attributes)
?onstraints (Represents the boundaries)

Extensibility notations are used to enhance the power of the language. It is basically
additional elements used to represent some extra behaviour of the system. These extra
behaviours are not covered by the standard available notations.

Ê+%) %#$-)%#$5#

An abstraction relationship is a dependency between model elements that represents the same
concept at different levels of abstraction or from different viewpoints. You can add
abstraction relationships to a model in several diagrams, including use-case, class, and
component diagrams.

Ê %#,#%'*.
In activity diagrams, an activity edge is a relationship between two activity nodes that you
can use to represent the control flow or object flow in an activity diagram.

An aggregation relationship depicts a classifier as a part of, or as subordinate to, another

Ê #)%#$-)%#$5#
In UML models, an association is a relationship between two classifiers, such as classes or
use cases, that describes the reasons for the relationship and the rules that govern the

In UML models, a binding relationship is a relationship that assigns values to template
parameters and generates a new model element from the template.

(($# )%#$)%5
In UML modeling, a communication path is a type of association between nodes in a
deployment diagram that shows how the nodes exchange messages and signals.

A composition relationship, which was named composition association relationship in UML
1.4, represents whole±part relationships and is a form of aggregation. A composition
relationship specifies that the lifetime of the part classifier is dependent on the lifetime of the
whole classifier.

$*$ '-)%#$5#
In UML modeling, a dependency relationship is a relationship in which changes to one model
element (the supplier) impact another model element (the client). You can use dependency
relationships in class diagrams, component diagrams, deployment diagrams, and use case

In UML modeling, deployment relationships specify that a particular node type supports the
deployment of an artifact type.
# %*) #)%#$-)%#$5#
In UML models, directed association relationships are associations that are navigable in only
one direction.

In UML modeling, a generalization relationship is a relationship in which one model element
(the child) is based on another model element (the parent). ñeneralization relationships are
used in class, component, deployment, and use case diagrams.

In UML modeling, an implementation relationship is a specialized type of realization
relationship between a classifier and a provided interface. The implementation relationship
specifies that the realizing classifier must conform to the contract that the provided interface

$ -*-)%#$5#
In UML modeling, an include relationship is a relationship in which one use case (the base
use case) includes the functionality of another use case (the inclusion use case). The include
relationship supports the reuse of functionality in a use case model.

In UML modeling, a manifestation relationship shows which model elements, such as
components or classes, are manifested in an artifact. The artifact manifests, or includes, a
specific implementation for, the features of one or several physical software components.

In UML modeling, a realization relationship is a relationship between two model elements, in
which one model element (the client) realizes the behavior that the other model element (the
supplier) specifies. Several clients can realize the behavior of a single supplier. You can use
realization relationships in class diagrams and component diagrams.

In UML modeling, a usage relationship is a type of dependency relationship in which one
model element (the client) requires another model element (the supplier) for full
implementation or operation.


 #"# )%#$

textual statement of syntax & semantics

diagrams give view of specification


elements in UML - unique graphical notation

adornments - added information about class

(($ #,##$

general property vs. specific instance

class vs. object
use case vs. use case instance
UML syntaxM underline name of instance
separation of interface & implementation
interface - contract
implementation - concrete realization of contract



allows creation of new kinds of building blocks from existing ones


allows creation of new information in specification


allows addition of new rules & modification of existing rules


]‘ specify what model should look like
]‘ semantic rules for
’‘ names
’‘ scope
’‘ visibility
’‘ integrity
’‘ execution
’‘ ?ommon properties of models
’‘ elided - hide some elements for simplicity
’‘ incomplete
’‘ inconsistent
’‘ rules of UML make it easier to address these problems


Any real world system is used by different users. The users can be developers, testers,
business people, analysts and many more. So before designing a system the architecture is
made with different perspectives in mind. The most important part is to visualize the system
from different viewer.s perspective. The better we understand the better we make the system.
UML plays an important role in defining different perspectives of a system. These
perspectives areM
]‘ Design
]‘ Implementation
]‘ Process
]‘ Deployment

And the centre is the ) view which connects all these four. A  ) represents the
functionality of the system. So the other perspectives are connected with use case.

#.$ of a system consists of classes, interfaces and collaboration. UML provides class
diagram, object diagram to support this.

(-($%)%#$ defines the components assembled together to make a complete physical
system. UML component diagram is used to support implementation perspective.

  defines the flow of the system. So the same elements as used in  µ  are also used
to support this perspective.

-'($% represents the physical nodes of the system that forms the hardware. UML
deployment diagram is used to support this perspective.


UML 2.2 has 14 types of diagrams divided into two categories.[10] Seven diagram types
represent structural information, and the other seven represent general types of behavior,
including four that represent different aspects of interactions. These diagrams can be
categorized hierarchically as shown in the following class diagramM
UML does not restrict UML element types to a certain diagram type. In general, every UML
element may appear on almost all types of diagrams; this flexibility has been partially
restricted in UML 2.0. UML profiles may define additional diagram types or extend existing
diagrams with additional notations.
In keeping with the tradition of engineering drawings, a comment or note explaining usage,
constraint, or intent is allowed in a UML diagram.

% %*#).)(
% %*#).)((5)#/45)%%5#$.(%+#$%5'%(+#$.(*-*

]‘ ?lass diagramM the class diagrams describes the structure of a system by showing the
system's classes, their attributes, and the relationships among the classes.
]‘ ?omponent diagramM depicts how a software system is split up into components and
shows the dependencies among these components.
]‘ ?omposite structure diagramM describes the internal structure of a class and the
collaborations that this structure makes possible.
]‘ Deployment diagramM serves to model the hardware used in system implementations,
and the execution environments and artifacts deployed on the hardware.
]‘ Object diagramM shows a complete or partial view of the structure of a modeled
system at a specific time.

]‘ Package diagramM depicts how a system is split up into logical groupings by showing
the dependencies among these groupings.
]‘ Profile diagramM operates at the metamodel level to show stereotypes as classes with the
<<stereotype>> stereotype, and profiles as packages with the <<profile>> stereotype. The
extension relation (solid line with closed, filled arrowhead) indicate what metamodel element
a given stereotype is extending.
Since structure diagrams represent the structure they are used extensively in documenting the
architecture of software systems.
Behavior diagrams emphasize what must happen in the system being modeledM
]‘ Activity diagramM represents the business and operational step-by-step workflows of
components in a system. An activity diagram shows the overall flow of control.
]‘ State machine diagramM standardized notation to describe many systems, from
computer programs to business processes.
]‘ Use case diagramM shows the functionality provided by a system in terms of actors,
their goals represented as use cases, and any dependencies among those use cases.


d Ê  




    "##$ "   " "















 )*#).)(" %()$*+)$<()$).




6$ *#).)("-.#$


‘  ‘%‘ 

‘  Ì  

‘ ‘ ÌÌ



6$ *#).)("-)$)-# )%#$


‘  ‘‘ ‘

‘  ‘ ‘ 

‘  ‘ 


‘ ÌÌ  Ì

  ‘ ÌÌ  

6$ *#).)(""$*%)$"









!     Ì

"   ÌÌ# 


6$ *#).)(" 56+<

Ì    ‘   

‘ ‘‘Ì! ‘  

 ‘ ‘‘  ‘   

‘ ‘  ‘   

‘  ‘  


‘Ì!Ì‘      ‘ ‘Ì! 

"‘    ‘     

#‘   ‘ ÌÌ   

6$ *#).)("*)%"#-



$ $ 


   $ $ 

 $$ $ $$  



   $  $ 

6$ *#).)("(#$#%)%($%


$ $ 


Ì$ $$ 



   $ Ì  $ 


















--)+)%#$*#).)(" 56+< 



Ì Ì    Ì 








$ $  

$Ì$ $$  

$ $$  
$   $ Ì  $ 
$  $   

$  $ $ 




$ $ $ $$ $ 

$   $ $ 

$   $ $ 


$$ $ 


Ê %#,#%'*#).)(",)--'%(#$.>#$)$*"<











Ê %#,#%'*#).)("-.#$






Ê %#,#%'*#).)(""$*%)$"#$.4#(-)$



µ‘! ‘
 µ µ
µ  ‘ µ‘


 ‘‘µ ‘

 ‘ µ

‘ µµ


µ ‘ µ

%  &

% &

µ  ‘ 

 ‘  µ


% µ&



! µ‘‘


% µ&

‘ ‘  ‘
µ  ‘µ ‘


Ê %#,#%'*#).)("*)%"#-

$ %#"& "#
µ µ µ







Ê %#,#%'*#).)(" 56+<6%








Ê %#,#%'*#).)("(#$#%)%($%










%)% 5)%*#).)(",)--'%(



Y (








& &( &  &(



Ì  $ Ì  $ Ì  $