You are on page 1of 42

UML

UML Overview:
 UML is a general purpose modeling language.

 It was initially started to capture the behavior of complex software

 UML provides elements and components to support the requirement of complex


systems.

 UML follows the object oriented concepts and methodology. So object oriented systems
are generally modeled using the pictorial language.

 UML diagrams are drawn from different perspectives like design, implementation,
deployment etc.

 At the conclusion UML can be defined as a modeling language to capture the


architectural, behavioral and structural aspects of a system.

 Objects are the key to this object oriented world. The basic requirement of object
oriented analysis and design is to identify the object efficiently. After that the
responsibilities are assigned to the objects. Once this task is complete the design is done
using the input from analysis.

 The UML has an important role in this OO analysis and design, The UML diagrams are
used to model the design. So the UML has an important role to play.

UML notations:
 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.

UML Diagrams:
Diagrams are the heart of UML. These diagrams are broadly categorized as structural and
behavioral diagrams.

 Structural diagrams are consists of static diagrams like class diagram, object diagram etc.

1
 Behavioral diagrams are consists of dynamic diagrams like sequence diagram,
collaboration diagram etc.

The static and dynamic nature of a system is visualized by using these diagrams.

UML diagrams

Structural UML diagrams

Class diagram

Component diagram

Composite structure diagram

Deployment diagram

Object diagram

Package diagram

Profile diagram

Behavioral UML diagrams

Activity diagram

Communication diagram

Interaction overview diagram

Sequence diagram

State diagram

Timing diagram

Use case diagram

2
Class diagrams:
Class diagrams are the most popular UML diagrams used by the object oriented community. It
describes the objects in a system and their relationships. Class diagram consists of attributes and
functions.

A single class diagram describes a specific aspect of the system and the collection of class
diagrams represents the whole system. Basically the class diagram represents the static view of
a system.

Class diagrams are the only UML diagrams which can be mapped directly with object oriented
languages. So it is widely used by the developer community.

UML Class Diagram Relationships, Aggregation, Composition

There are five key relationships between classes in a UML class diagram : dependency,
aggregation, composition, inheritance and realization. These five relationships are depicted
in the following diagram:

3
UML Class Relationships

The above relationships are read as follows:

 Dependency : class A uses class B

 Aggregation : class A has a class B

 Composition : class A owns a class B

 Inheritance : class B is a Class A (or class A is extended by class B)

 Realization : class B realizes Class A (or class A is realized by class B)

Dependency is represented when a reference to one class is passed in as a method


parameter to another class. For example, an instance of class B is passed in to a method of
class A:

4
public class A {

public void doSomething(B b) {

Now, if class A stored the reference to class B for later use we would have a different
relationship called Aggregation. A more common and more obvious example of
Aggregation would be via setter injection:

public class A {

private B _b;

public void setB(B b) { _b = b; }

Aggregation is the weaker form of object containment (one object contains other
objects). The stronger form is called Composition. In Composition the containing object
is responsible for the creation and life cycle of the contained object (either directly or
indirectly). Following are a few examples of Composition. First, via member
initialization:

public class A {

private B _b = new B();

Second, via constructor initialization:

public class A {

private B _b;

public A() {

_b = new B();

} // default constructor

Third, via lazy init

public class A {

private B _b;

public void doSomethingUniqueToB() {

if (null == _b) {

5
_b = new B();

return _b.doSomething();

} // doSomethingUniqueToB()

Inheritance is a fairly straightforward relationship to depict in Java:

public class A {

...

} // class A

public class B extends A {

....

} // class B

6
7
Object Diagram:
An object diagram is an instance of a class diagram. So the basic elements are similar to a class
diagram. Object diagrams are consists of objects and links. It captures the instance of the system
at a particular moment.

Object diagrams are used for prototyping, reverse engineering and modeling practical scenarios.

The following diagram is an example of an object diagram. It represents the Order management
system which we have discussed in Class Diagram. The following diagram is an instance of the
system at a particular time of purchase. It has the following objects

 Customer

 Order

 SpecialOrder

 NormalOrder

Now the customer object (C) is associated with three order objects (O1, O2 and O3). These order
objects are associated with special order and normal order objects (S1, S2 and N1). The customer
is having the following three orders with different numbers (12, 32 and 40) for the particular time
considered.

8
UML - Use Case Diagrams

Overview:
 To model a system the most important aspect is to capture the dynamic behaviour.

 To clarify a bit in details, dynamic behaviour 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. 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.

Purpose:
The purpose of use case diagram is to capture the dynamic aspect of a system. Because other
four diagrams (activity, sequence, collaboration and Statechart) 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.

Now when the initial task is complete use case diagrams are modelled to present the outside
view.

So in brief, the purposes of use case diagrams can be as follows:

9
 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.

How to draw Use Case Diagram?


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

 Actors

 Relationships among the use cases and actors.

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.

 Give 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.

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
NormalOrder) and one actor which is customer.

The SpecialOrder and NormalOrder use cases are extended from Order use case. So they have
extends relationship. Another important point is to identify the system boundary which is shown
in the picture. The actor Customer lies outside the system as it is an external user of the system.

10
Online shopping UML use case diagram examples

Purpose: Provide top level use cases for a web customer making purchases online.

Summary: Web customer actor uses some web site to make purchases online. Top level use
cases are View Items, Make Purchase and Client Register.

11
Credit card processing system

Purpose: Define major use cases for a credit card processing system (credit card payment
gateway).

Summary: The merchant submits a credit card transaction request to the credit card payment
gateway on behalf of a customer. Bank which issued customer's credit card is actor which could
approve or reject the transaction. If transaction is approved, funds will be transferred to
merchant's bank account.

Website administration

Purpose: Website management or administration UML use case diagrams example.

12
Summary: Website Administrator actor could manage user groups, users, user sessions, and
logs. Help Desk staff uses a subset of functions available to the Website Administrator.

```````````````````````````````````````````````````````````````````````

13
Where to Use Case Diagrams?
As we have already discussed there are five diagrams in UML to model dynamic view of a
system. Now each and every model has some specific purpose to use. Actually these specific
purposes are different angles of a running system.

So to understand the dynamics of a system we need to use different types of diagrams. Use case
diagram is one of them and its specific purpose is to gather system requirements and actors.

Use case diagrams specify the events of a system and their flows. But use case diagram never
describes how they are implemented. Use case diagram can be imagined as a black box where
only the input, output and the function of the black box is known.

These diagrams are used at a very high level of design. Then this high level design is refined
again and again to get a complete and practical picture of the system. A well structured use case
also describes the pre condition, post condition, exceptions. And these extra elements are used
to make test cases when performing the testing.

Although the use cases are not a good candidate for forward and reverse engineering but still
they are used in a slight different way to make forward and reverse engineering. And the same is
true for reverse engineering. Still use case diagram is used differently to make it a candidate for
reverse engineering.

In forward engineering use case diagrams are used to make test cases and in reverse engineering
use cases are used to prepare the requirement details from the existing application.

So the following are the places where use case diagrams are used:

 Requirement analysis and high level design.

 Model the context of a system.

 Reverse engineering.

 Forward engineering.

14
UML - Interaction Diagrams

Overview:
 From the name Interaction it is clear that the diagram is used to describe some type of
interactions among the different elements in the model. So this interaction is a part of
dynamic behaviour of the system.

 This interactive behaviour is represented in UML by two diagrams known as Sequence


diagram and Collaboration diagram. The basic purposes of both the diagrams are
similar.

 Sequence diagram emphasizes on time sequence of messages and collaboration diagram


emphasizes on the structural organization of the objects that send and receive messages.

Purpose:
The purposes of interaction diagrams are to visualize the interactive behaviour of the system.
Now visualizing interaction is a difficult task. So the solution is to use different types of models
to capture the different aspects of the interaction.

That is why sequence and collaboration diagrams are used to capture dynamic nature but from a
different angle.

So the purposes of interaction diagram can be describes as:

 To capture dynamic behaviour of a system.

 To describe the message flow in the system.

 To describe structural organization of the objects.

 To describe interaction among objects.

How to draw Interaction Diagram?


As we have already discussed that the purpose of interaction diagrams are to capture the
dynamic aspect of a system. So to capture the dynamic aspect we need to understand what a
dynamic aspect is and how it is visualized. Dynamic aspect can be defined as the snap shot of
the running system at a particular moment.

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 diagram:

15
 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.

The Sequence Diagram:


The sequence diagram is having four objects (Customer, Order, SpecialOrder and
NormalOrder).

The following diagram has shown the message sequence for SpecialOrder object and the same
can be used in case of NormalOrder object. Now 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 sendOrder () which is a method of Order object. The next call is confirm
()which is a method of SpecialOrder object and the last call is Dispatch () which is a method
ofSpecialOrder 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.

Sequence diagram for ATM

16
The Collaboration Diagram:
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.

17
Now 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.

Where to use Interaction Diagrams?


We have already discussed that interaction diagrams are used to describe dynamic nature of a
system. Now 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 understood.

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. Now 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 diagrams:

 To model flow of control by time sequence.

 To model flow of control by structural organizations.

18
 For forward engineering.

 For reverse engineering.

UML - Statechart Diagrams


Purpose:
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 diagrams:

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

How to draw Statechart Diagram?


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 points:

19
 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 Order object is
analyzed.

The first state is an idle state from where the process starts. The next states are arrived for
events like send request, confirm request, and dispatch order. 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.

20
Second Example of an ATM system

Where to use Statechart Diagrams?


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

21
disused in this tutorial. But it has some distinguishing characteristics for modeling dynamic
nature.

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 as:

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

22
UML - Activity Diagrams

Overview:
 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 from 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.

Purpose:
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 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 as:

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

How to draw Activity Diagram?


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 elements:

23
 Activities

 Association

 Conditions

 Constraints

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 activities:

 Send order by the customer

 Receipt of the order

 Confirm 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.

24
25
Where to use Activity Diagrams?

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

Now 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 diagram:

 Modeling work flow by using activities.

 Modeling business requirements.

 High level understanding of the system's functionalities.

 Investigate business requirements at a later stage.

27
Component Diagram:

Purpose:
 Component diagrams are used to model physical aspects of a system.

 Physical aspects are the elements like executables, libraries, files, documents etc which
resides in a node.

 Component diagrams are used to visualize the organization and relationships among
components in a system. These diagrams are also used to make executable systems.

 Component 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 as:

 Visualize the components of a system.

 Construct executables by using forward and reverse engineering.

 Describe the organization and relationships of the components.

28
29
Deployment Diagram:

Overview:

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

Purpose:
The name Deployment itself describes the purpose of the diagram. Deployment diagrams are
used for describing the hardware components where software components are deployed.
Component diagrams and deployment diagrams are closely related.

Component diagrams are used to describe the components and deployment diagrams shows how
they are deployed in hardware.

30
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 as:

 Visualize hardware topology of a system.

 Describe the hardware components used to deploy software components.

 Describe runtime processing nodes.

Deployment diagrams are useful for system engineers. An efficient deployment diagram is very
important because it controls the following parameters

 Performance

 Scalability

 Maintainability

 Portability

The following deployment diagram is a sample to give an idea of the deployment view of order
management system. Here we have shown nodes as:

 Monitor

 Modem

 Caching 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
above:

31
32
33
General[edit]
Late
First
st Ope
Platfo publi Programming
stabl n Software
Name Creator rm / c language
e sour license
OS relea used
relea ce
se
se

Cross-
2011- Java, C++ (as
ArgoUML Tigris.org platform 1998-04 Yes EPL
12-15[1] module)
(Java)

Commercial,
Windows
Free trial, Free
Change , 2009- 2016- Java, C++, C#,
Astah No edition
Vision, Inc. macOS, 10-19 09-28 PHP
(Community
Linux
version)

Obeo, INRIA
Cross-
Free 2010-
ATL platform Unknown Yes EPL Java
software 06-23
(Java)
community

Cross-
Borland
Borland platform Unknown 2008 No Commercial Unknown
Together
(Java)

Commercial st
Cross- 2005- 2016- arting from C++/Qt and Java
BOUML Bruno Pagès No
platform 02-26 06-04 v5.0,[2] GPL ("plug-out")
before v5.0

CaseCompl Serlio
Windows 2004 2013-04 No Commercial C#
ete Software

34
Late
First
st Ope
Platfo publi Programming
stabl n Software
Name Creator rm / c language
e sour license
OS relea used
relea ce
se
se

ConceptDra Windows 2010


CS Odessa 1993 No Commercial Unknown
w PRO , macOS (v9)

Alexander Cross-
2012-
Dia Larsson/GN platform 2004? Yes GPL C
07-05
OME Office (GTK+)

Cross-
Eclipse UM Eclipse 2009-
platform 2007 Yes EPL? Java
L2 Tools[3] Foundation 06-19
(Java)

Windows
Edraw Max Edrawsoft , Linux, 2004 2015-03 No Commercial C++
macOS

Windows
(support
s Linux
Enterprise Sparx 2015-
and 2000 No Commercial C++
Architect Systems 06-18
macOS
installati
on)

Chrome,
Safari,
Firefox, 2006- 2015-01 Commercial, HTML5 and
Gliffy Gliffy No
Internet 08-01 (v. 5.1) Free trial JavaScript
Explorer
9+

Lucidchart Lucid Windows 2008-12 2014- No Commercial / HTML5 and Java


Software , 10-07 Free Script
macOS,

35
Late
First
st Ope
Platfo publi Programming
stabl n Software
Name Creator rm / c language
e sour license
OS relea used
relea ce
se
se

Linux,
(educational)
Solaris

Cross- 2014-
MagicDraw No Magic platform 1998 11-17 No Commercial Java
(Java) (v18.1)

Microsoft 2016
Microsoft Windows 1992 No Commercial Unknown
Visio (v16.0)

Community &
Express
editions:
Microsoft Registerware;
2016-
Visual Microsoft Windows 1997-02 No Enterprise, C++, C#
06-27
Studio Professional &
Others
editions:
Trialware

Microsoft
SQL Server
Microsoft Windows 2005 2014 No Freeware C++, C#
Manageme
nt Studio

Windows 2016-
GPL and
Modelio Modeliosoft , Linux, 2009 12-14 Yes Java
Commercial
macOS (3.6.0)

Windows
MyEclipse Genuitec 2003[4] Unknown No Commercial Java
, Linux

36
Late
First
st Ope
Platfo publi Programming
stabl n Software
Name Creator rm / c language
e sour license
OS relea used
relea ce
se
se

Windows
Community: C++, C#,
MySQL Oracle , 2015-
Unknown Yes GPL; Standard: Objective-C,
Workbench Corporation macOS, 12-15
Commercial. Python
Linux

Windows
,
Balazs 2006- 2011-
NClass macOS, Yes GPL C#
Tihanyi 10-15 06-06
Linux,
Unix

Windows
,
Oracle 2013-
NetBeans[5] macOS, 1996 Yes CDDL or GPL2 Java
Corporation 02-21
Linux,
Unix

2010-
objectiF microTOOL Windows 1992 No Commercial Java, C#, C++
09-21

Open Cross-
2009-
ModelSphe Grandite platform 2002-02 Yes GPL Java
11-04
re (Java)

Cross-
Oracle Oracle
platform Unknown Unknown No Freeware Java
JDeveloper Corporation
(Java)

Oracle SQL Oracle Cross- Unknown Unknown No Freeware Java


Developer Corporation platform
Data (Java)
Modeler based
on Oracl

37
Late
First
st Ope
Platfo publi Programming
stabl n Software
Name Creator rm / c language
e sour license
OS relea used
relea ce
se
se

e
JDevelo
per

Commissaria Windows
t à l'Énergie , Linux, 2013- 2017-
Papyrus Yes EPL Java
Atomique, At macOS 06-27 01-09
os Origin (Java)

Cross-
Arnaud 1999- 2014-
PlantUML platform Yes GPL Java
Roques 04-30 10-23
(Java)

Cross-
Poseidon
Gentleware platform Unknown 2009 No Commercial Java
for UML
(Java)

PowerDesi
Sybase Windows 1989 2011 No Commercial Unknown
gner

Prosa UML 2013-


Insoft Oy Windows 1996 No Commercial C/C++
Modeller 10-19

2015-
Rational Windows C, C++, C#,
IBM 1996 07-01 No Commercial
Rhapsody , Linux Java, Ada
(8.1.3)

Windows
Rational
IBM , Linux, Unknown Unknown No IBM EULA Unknown
Rose XDE
Unix

38
Late
First
st Ope
Platfo publi Programming
stabl n Software
Name Creator rm / c language
e sour license
OS relea used
relea ce
se
se

Rational
Windows Early 2015-
Software IBM No IBM EULA Java/C++
, Linux 1990s 09-18
Architect

Rational
Windows 2004-
Software IBM 2008-09 No IBM EULA Unknown
, Linux 10-13
Modeler

Rational
2013-
System IBM Windows Unknown No Commercial Unknown
03-15
Architect

Windows Commercial,
Reactive , 2011- 2016- Free
Bitreactive No Java
Blocks macOS, 11-13 09-16 Community
Linux Edition

RISE to
Windows 2010-
RISE Bloome 2008 No Freeware C#
(.NET) 09-03
Software

Commercial,
Windows
Software Freeware for
Dusan (.NET), 2009- 2016-
Ideas No non- C#
Rodina Linux 08-06[6] 06-21
Modeler commercial
(Mono)
use

Windows
, 2005- 2016-
StarUML MKLab No Commercial Delphi
macOS, 11-01 11-15
Linux

39
Late
First
st Ope
Platfo publi Programming
stabl n Software
Name Creator rm / c language
e sour license
OS relea used
relea ce
se
se

Umbrello
Umbrello Unix-like; 2006- 2016-
UML Yes GPL C++, KDE
Team Windows 09-09 08-14
Modeller

Windows
UML , 2016-
Obeo 2012 Yes EPL Java, Sirius
Designer macOS, 08-03
Linux

Windows
The UMLet , 2005- 2016-
UMLet Yes GPL Java
Team macOS, 11-05[7] 11-24[7]
Linux

2013- Java, C#, Visual


UModel Altova Windows 2005-05 No Commercial
06-12 Basic

Commercial,
Visual Visual Cross-
2002- 2016- Free
Paradigm Paradigm platform No Java
06-20 02-03 Community
for UML Int'l Ltd. (Java)
Edition

Windows
,
yWorks 2016-
yEd macOS, Unknown No Free Java
GmbH 07-15[8]
Linux,
Unix

First Latest
Platform Open Software Programming
Name Creator public stable
/ OS source license language used
release release

40
Top 10 Open Source Unified Modeling
Language Tools
UML (Unified Modeling Language) in Software engineering is a universal modeling
language for providing users standard way of visualizing the blueprint of a certain
system. To clear things for you, we compiled 10 UML open source tools, which are
very useful.

 1 ArgoUML
 2 ATL
 3 Dia
 4 Modelio
 5 NClass

41
 6 NetBeans
 7 Papyrus
 8 Umbrello UML Modeller

42

You might also like