Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

Ambo University

Hachalu Hundessa Campus IOT


Advanced Software Engineering
Individual Assignment

School: Informatics and Electrical Engineering


Department: Information Technology
Assignment Title: Analysis of UML and UML Tools Survey

Name ID
1. Mikeyas Meseret PGR/47308/13

Submitted to: Dr. Tulu Tilahun (PhD)

May, 2021
Ambo Ethiopia
Table of Contents
1. Introduction to UML .............................................................................................................. - 1 -

2. Structured Diagrams ............................................................................................................... - 2 -

2.1 Class Diagram ...................................................................................................................... - 2 -

2.2 Component Diagram ............................................................................................................ - 3 -

2.3 Composite Structure Diagram .............................................................................................. - 4 -

2.4 Deployment Diagram ........................................................................................................... - 4 -

2.5 Object Diagram .................................................................................................................... - 5 -

2.6 Package Diagram.................................................................................................................. - 6 -

2.7 Profile Diagram .................................................................................................................... - 7 -

3. Behavior Diagrams ................................................................................................................. - 7 -

3.1 Activity Diagram ............................................................................................................. - 8 -

3.2 State Machine Diagram ................................................................................................... - 8 -

3.3 Use Case Diagram ........................................................................................................... - 9 -

3.4 Interaction Diagrams ..................................................................................................... - 10 -

3.4.1 Communication Diagram ....................................................................................... - 10 -

3.4.2 Interaction Overview Diagram .............................................................................. - 10 -

3.4.3 Sequence Diagram ................................................................................................. - 11 -

3.4.4 Timing Diagram ..................................................................................................... - 12 -

4. The Survey of UML Tools ................................................................................................... - 12 -

4.1 Edraw Max .................................................................................................................... - 12 -

4.2 Microsoft Visio ............................................................................................................. - 13 -

4.3 Draw.IO ......................................................................................................................... - 13 -

4.4 Gliffy ............................................................................................................................. - 14 -

References .................................................................................................................................... - 16 -

I
List of Figures

Figure 1 Types of UML Diagrams................................................................................................. - 1 -


Figure 2 Class diagram .................................................................................................................. - 3 -
Figure 3 Component Diagram ....................................................................................................... - 3 -
Figure 4 Composite Structure Diagram ......................................................................................... - 4 -
Figure 5 Deployment Diagram ...................................................................................................... - 5 -
Figure 6 Object Diagram ............................................................................................................... - 5 -
Figure 7 Package Diagram ............................................................................................................. - 6 -
Figure 8 Profile Diagram ............................................................................................................... - 7 -
Figure 9 State Machine Diagram ................................................................................................... - 9 -
Figure 10 Use Case Diagram ......................................................................................................... - 9 -
Figure 11 Communication Diagram ............................................................................................ - 10 -
Figure 12 Interaction Diagram ..................................................................................................... - 11 -
Figure 13 Sequence Diagram ....................................................................................................... - 11 -
Figure 14 Timing Diagram .......................................................................................................... - 12 -

II
1. Introduction to UML
Unified Modeling Language (UML) is a standardized general-purpose modeling language in the
field of object-oriented software engineering. UML includes a set of graphic notation techniques to
create visual models of object-oriented software systems. UML combines techniques from data
modeling, business modeling, object modeling, and component modeling and can be used
throughout the software development life-cycle and across different implementation technologies.
[1]
▪ Modeling
There is a difference between a UML model and the set of diagrams of a system. A diagram is a
partial graphic representation of a system’s model. The model also contains documentation that
drives the model elements and diagrams (such as written use cases). [2]
UML diagrams represent two different views of a system model:
o Static (or structural) view
This view emphasizes the static structure of the system using objects, attributes, operations, and
relationships. Ex: Class diagram, Composite Structure diagram.
o Dynamic (or behavioral) view
This view emphasizes the dynamic behavior of the system by showing collaborations among
objects and changes to the internal states of objects. Ex: Sequence diagram, Activity diagram, State
Machine diagram.
▪ Diagrams Overview
UML 2.2 has 14 types of diagrams divided into multiple categories as shown in the figure below.

Figure 1 Types of UML Diagrams

-1-
2. Structured Diagrams

A structure diagram is a conceptual modeling tool used to document the different structures that
make up a system such as a database or an application. It shows the hierarchy or structure of the
different components or modules of the system and shows how they connect and interact with each
other. It is a tool used to guide developers to ensure that all parts of the system work as intended in
relation to all the other parts. [3]

2.1 Class Diagram

Class diagram is a structure diagram that is used to show the classes and their association with
each other. The class diagram includes the notations such as classes, attributes, operations and
associations. Classes in UML diagrams are used to capture the information about the system to be
developed. A class is an artifact in UML diagrams which can create any number of objects that
share the attributes, operations, relationships among the objects, and some other semantics in the
diagrams. Abstract classes cannot have objects and are useful to define a common interface.
However, a subclass of an abstract class can have instances. A class in UML consists of three
compartments which contain class name, attributes and operations.

How to Draw a Class Diagram?


Step 1: Identify the class names
The first step is to identify the primary objects of the system.
Step 2: Distinguish relationships
Next step is to determine how each of the classes or objects are related to one another. Look out
for commonalities and abstractions among them; this will help you when grouping them when
drawing the class diagram.
Step 3: Create the Structure
First, add the class names and link them with the appropriate connectors. You can add attributes
and functions/ methods/ operations later.

-2-
Figure 2 Class diagram

2.2 Component Diagram

A component diagram, also known as a UML component diagram, describes the organization and
wiring of the physical components in a system. Component diagrams are often drawn to help
model implementation details and double-check that every aspect of the system's required function
is covered by planned development.

How to Draw a Component Diagram?

1. Decide on the purpose of the diagram


2. Add components to the diagram, grouping them within other components if appropriate
3. Add other elements to the diagram, such as classes, objects and interface
4. Add the dependencies between the elements of the diagram

Figure 3 Component Diagram

-3-
2.3 Composite Structure Diagram

A composite structure diagram is a UML structural diagram that contains classes, interfaces,
packages, and their relationships, and that provides a logical view of all, or part of a software
system. It shows the internal structure (including parts and connectors) of a structured classifier or
collaboration.

How to Draw Composite Structure Diagram?

1. Select Diagram > New from the application toolbar.


2. In the New Diagram window, select Composite Structure Diagram.
3. Click Next.
4. Enter the diagram name and description. The Location field enables you to select a model
to store the diagram.
5. Click OK.

Figure 4 Composite Structure Diagram

2.4 Deployment Diagram

A deployment diagram is a UML diagram type that shows the execution architecture of a system,
including nodes such as hardware or software execution environments, and the middleware
connecting them. Deployment diagrams are typically used to visualize the physical hardware and
software of a system.
How to draw Deployment Diagram?
1. Decide on the purpose of the diagram.
2. Add nodes to the diagram.
3. Add communication associations to the diagram.
4. Add other elements to the diagram, such as components or active objects, if required.

-4-
5. Add dependencies between components and objects, if required.

Figure 5 Deployment Diagram

2.5 Object Diagram

An object diagram is a UML structural diagram that shows the instances of the classifiers in
models. Object diagrams use notation that is similar to that used in class diagrams.
Class diagrams show the actual classifiers and their relationships in a system.

How to draw Object Diagram?

1. First, analyze the system and decide which instances have important data and association.
2. Second, consider only those instances, which will cover the functionality.
3. Third, make some optimization as the number of instances are unlimited.

Figure 6 Object Diagram

-5-
2.6 Package Diagram

Package diagram is UML structure diagram which shows structure of the designed system at the
level of packages. The following elements are typically drawn in a package diagram: package,
packageable element, dependency, element import, package import, package merge.
How to draw Package Diagram?
Step 1 - Identify the packages present in the system

1. There is a "track order" service, it has to talk with other module to know about the
order details, let us call it "Order Processing".
2. Next after fetching Order Details it has to know about shipping details, let us call that
as "Shipping".
3. Finally if knows the status of the order it has to update the information to the user, let us
call this module as "UI Framework".

Step 2 - Identify the dependencies

1. "Track order" package should get order details from "Order Processing" and on the
other hand, "Order Processing" also requires the tracking information from the "Track
Order" package, thus, the two modules are accessing each other which suffices
<<access>> dual dependency.

Step 3 - Finally, Track Order dependency to UI Framework is also mapped in to the diagram
which completes the Package Diagram for Track Order subsystem.

Figure 7 Package Diagram

-6-
2.7 Profile Diagram

A Profile diagram is any diagram created in a «profile» Package. Profiles provide a means of
extending the UML. They are based on additional stereotypes and Tagged Values that are applied
to UML elements, connectors and their components.
How to draw profile Diagram?
1. Select Stereotype in diagram toolbar.
2. Click on the diagram to create a stereotype.
3. In the Select Base Type of Stereotype window, select the base type of stereotype from the
model type tree. A base type is the type of model element that the stereotype will extend.
4. Click OK. Name the stereotype and press Enter to confirm creation.

Figure 8 Profile Diagram

3. Behavior Diagrams

It shows how the system behaves and interacts with itself and other entities (users, other systems).
They show how data moves through the system, how objects communicate with each other, how
the passage of time affects the system, or what events cause the system to change internal states.
These diagrams emphasize what must happen in the system being modeled. Since they illustrate
the behavior of a system, they are used extensively to describe the functionality of software
systems. [3]

-7-
3.1 Activity Diagram

An activity diagram is a behavioral diagram i.e., it depicts the behavior of a system. An activity
diagram portrays the control flow from a start point to a finish point showing the various decision
paths that exist while the activity is being executed.

Figure 9 Activity Diagram

3.2 State Machine Diagram

A state diagram is a type of diagram used in computer science and related fields to describe the
behavior of systems. State diagrams require that the system described is composed of a finite
number of states; sometimes, this is indeed the case, while at other times this is a reasonable
abstraction.

-8-
Figure 9 State Machine Diagram

3.3 Use Case Diagram

It is an effective technique for communicating system behavior in the user's terms by specifying all
externally visible system behavior. A use case diagram is usually simple. It does not show the
detail of the use cases: It only summarizes some of the relationships between use cases, actors, and
systems. UML use case diagrams are ideal for:
- Representing the goals of system-user interactions
- Defining and organizing functional requirements in a system
- Specifying the context and requirements of a system
- Modeling the basic flow of events in a use case

Figure 10 Use Case Diagram

-9-
3.4 Interaction Diagrams

Interaction diagrams are models that describe how a group of objects collaborate in some behavior
typically a single use-case. The diagrams show a number of example objects and the messages that
are passed between these objects within the use-case. These diagrams are a subset of behavior
diagrams, emphasizing the flow of control and data among the things in the system being modeled.

3.4.1 Communication Diagram


Shows the interactions between objects or parts in terms of sequenced messages. They represent a
combination of information taken from Class, Sequence, and Use Case Diagrams describing both
the static structure and dynamic behavior of a system.

Figure 11 Communication Diagram

3.4.2 Interaction Overview Diagram


Provides an overview in which the nodes represent communication diagrams. They are activity
diagrams in which every node, instead of being an activity, is a rectangular frame containing an
interaction diagram (i.e., a communication, interaction overview, sequence, or UML timing
diagram).

- 10 -
Figure 12 Interaction Diagram

3.4.3 Sequence Diagram


A sequence diagram is a type of interaction diagram because it describes how—and in what
order—a group of objects works together. These diagrams are used by software developers and
business professionals to understand requirements for a new system or to document an existing
process.

Figure 13 Sequence Diagram

- 11 -
3.4.4 Timing Diagram
A specific type of interaction diagram where the focus is on timing constraints. Timing diagrams
model sequence of events and their effects on states and property values. Time flows along a
horizontal axis from left to right. They can be used to show method execution profiling or
concurrency scenarios.

Figure 14 Timing Diagram

4. The Survey of UML Tools


There are many tools available in the market for designing UML diagrams. Following is a curated
list of Top 4 handpicked UML tools with popular features and the latest download links. This
comparison list contains open source as well as commercial tools. So, I have picked the best four
tools to be used for creating a UML diagram. I have listed below:

4.1 Edraw Max

Edraw Max is a UML builder software that helps you to make diagrams using ready-made symbols
and templates. It allows you to import your drawings to file formats such as PDF, PPT, Word,
HTML, etc. [4]
Features:
➢ You can create a flowchart, mind map, UML, electrical diagrams, network diagrams, etc.
➢ It provides a user-friendly interface similar to MS Word.
➢ Edraw Max helps you to share designs anytime, anywhere.
➢ This tool provides 280+ latest flowchart and diagram solutions.
Pros:
➢ "Superb software for helping having visibility in development flows."
➢ "Excellent product few updates to take care of and will be good."
➢ "It allows me to create great floorplans with ease and great network layouts, including server
rack layouts, for my work."

- 12 -
➢ "I absolutely love this program and would recommend it to anyone who wants to create
flowcharts for their organization/business."
Cons:
➢ “It is necessary to draw several diagrams. But only money and time are wasted."
➢ "Trying to scale the drawing is sometimes confusing. Would prefer the option of rescaling as
you draw."
➢ "Some of the icons are not scaled well compared to other icons. Sometimes the lines have
trouble snapping to the right locations or randomly disconnect."
➢ "The inability to deploy this on multiple computers that I own and the price."

4.2 Microsoft Visio

Microsoft Visio is a popular chart and visualization software. It belongs to office family so it can
easily be integrated with other Microsoft office products. [5]
Features:
➢ Visio helps you to create professional diagram by creating flowcharts, diagrams, org charts,
engineering designs, and more.
➢ Allows you to connect flowcharts and diagrams to real-time data.
➢ It allows you to work together on diagrams from a web browser, from almost anywhere.
Pros:
➢ Ready-to-use shapes
➢ Easy-to-understand diagrams for both technical and non-technical audiences
➢ Saves time with industry-standard shapes and templates
Cons:
➢ Microsoft Visio should be included in the suite of Microsoft Office products
➢ Autorotation feature sometimes creates issues--it should be more flexible
➢ Default shapes included can be more colorful, keeping business users in mind
➢ Microsoft Visio is not very easy to use for non-technical business users

4.3 Draw.IO

Draw.IO is a free online UML tool. It is one of the best UML tools that allows users to create and
manage the drawing easily these tools. A lot of the wide and early share available with this tool.
[6]

- 13 -
Features:
➢ No limit on the number of sizes
➢ Templates are present in software design itself.
➢ This free UML diagram tool allows you to save the model in your preferred location
Pros:
➢ A very good and friendly interface - easy to use since first time use.
➢ It's free.
➢ Integration to Google Drive, OneDrive, Drop Box, GitHub and GitLab repositories.
➢ Doesn't require client installation - It's completely web-based.
Cons:
➢ Not so complete as Visio, it lacks a few advanced features.

4.4 Gliffy

Gliffy is a free online drawing tool which provides support for drawing UML diagrams. It is one of
the most widely used online diagramming application. [7]
Features:
➢ Allows you to draw a diagram with ease
➢ This free UML tool offers the power of visual communication and collaboration.
➢ Fast and effective integration with Jira and Confluence
➢ Strong supports for BPMP process models
Pros:
➢ Gliffy is a great alternative if you need to create easy to understand process flows, diagrams,
wireframes, and organizational charts.
➢ The free version works for easy and simple diagrams, but you need to understand that your
documents will be public, which is not ideal.
➢ The paid version is still much less expensive than Visio at $7.99 a month. That will also give
you additional abilities not available in the free version.
➢ Callouts for comments are really nice. I can make a comment on a diagram and it's called out
with a big orange dot. There isn't any guessing on what piece of the diagram the comments
relate to.
Cons:
➢ The only reason I use Gliffy is because I can use the free version, and it's always in a pinch,
honestly, if someone needs a professional-looking process flow. I've gotten away with

- 14 -
sketching process flows in a notebook, taking a picture, and sending that too. It just depends
on client expectations.
➢ The Visio import doesn't work great. Everything is brought over usually without issue, but
you'll spend time reformatting.
➢ The import images feature isn't as user-friendly as I'd like. It's not hard to figure out but takes
a minute to understand how my image was imported, and then how to drag it onto the canvas.
If I click the image upload button and select my image, I want to just import the image once I
select the image, not put it in a staging area and then drag it over.
Notice: based on the pros and cons I have selected to work on Microsoft Visio because it is free
and easy to draw the diagrams and more.

- 15 -
References

[1] Douglass, B. P. (2014). Introduction to UML. In Real-Time UML Workshop for Embedded
Systems (pp. 1–32). Elsevier.
[2] Why UML Modeling? (n.d.). Retrieved May 21, 2021, from Visual-paradigm.com website:
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/why-uml-modeling/
[3] UML Structural Models. (n.d.). Retrieved May 21, 2021, from Sparxsystems.com website:
https://sparxsystems.com/enterprise_architect_user_guide/15.2/model_domains/structuraldiagr
ams.html
[4] Wikipedia contributors. (2020, December 29). Edraw Max. Retrieved May 21, 2021, from
Wikipedia, The Free Encyclopedia website:
https://en.wikipedia.org/w/index.php?title=Edraw_Max&oldid=996909103
[5] Flowchart maker and diagramming software. (n.d.). Retrieved May 21, 2021, from
Microsoft.com website: https://www.microsoft.com/en-ww/microsoft-365/visio/flowchart-
software
[6] diagrams.net. (n.d.). Retrieved May 21, 2021, from Capterra.com website:
https://www.capterra.com/p/166985/draw-io/
[7] (N.d.). Retrieved May 21, 2021, from Trustradius.com website:
https://www.trustradius.com/products/gliffy/reviews?qs=pros-and-cons

- 16 -

You might also like