Goals of UML: A Picture Is Worth A Thousand Words, This Idiom Absolutely Fits Describing UML. Object-Oriented Concepts
Goals of UML: A Picture Is Worth A Thousand Words, This Idiom Absolutely Fits Describing UML. Object-Oriented Concepts
Goals of UML: A Picture Is Worth A Thousand Words, This Idiom Absolutely Fits Describing UML. Object-Oriented Concepts
UML (Unified Modeling Language) is a standard language for specifying, visualizing, constructing, and
documenting the artifacts of software systems. UML was created by the Object Management Group
(OMG) and UML 1.0 specification draft was proposed to the OMG in January 1997. It was initially
started to capture the behavior of complex software and non-software system and now it has become
an OMG standard. This tutorial gives a complete understanding on UML.
Audience
This tutorial has been prepared for beginners to help them understand the fundamentals of UML. After
completing this tutorial you will find yourself at a moderate level of expertise from where you can take
yourself to the next levels.
Prerequisites
No specific skill is required as a prerequisite to understand the learning material in this tutorial. The
reader must be enthusiastic to acquire knowledge on UML.
UML - Overview
UML is a standard language for specifying, visualizing, constructing, and documenting the artifacts of
software systems.
UML was created by the Object Management Group (OMG) and UML 1.0 specification draft was
proposed to the OMG in January 1997.
OMG is continuously making efforts to create a truly industry standard.
UML stands for Unified Modeling Language.
UML is different from the other common programming languages such as C++, Java, COBOL,
etc.
UML is a pictorial language used to make software blueprints.
UML can be described as a general purpose visual modeling language to visualize, specify,
construct, and document software system.
Although UML is generally used to model software systems, it is not limited within this boundary.
It is also used to model non-software systems as well. For example, the process flow in a
manufacturing unit, etc.
UML is not a programming language but tools can be used to generate code in various languages using
UML diagrams. UML has a direct relation with object oriented analysis and design. After some
standardization, UML has become an OMG standard.
Goals of UML
A picture is worth a thousand words, this idiom absolutely fits describing UML. Object-oriented concepts
were introduced much earlier than UML. At that point of time, there were no standard methodologies
to organize and consolidate the object-oriented development. It was then that UML came into picture.
There are a number of goals for developing UML but the most important is to define some general
purpose modeling language, which all modelers can use and it also needs to be made simple to
understand and use.
UML diagrams are not only made for developers but also for business users, common people, and
anybody interested to understand the system. The system can be a software or non-software system.
Thus it must be clear that UML is not a development method rather it accompanies with processes to
make it a successful system.
In conclusion, the goal of UML can be defined as a simple modeling mechanism to model all possible
practical systems in today’s complex environment.
Structural
Behavioral
Grouping
Annotational
Structural Things
Structural things define the static part of the model. They represent the physical and conceptual
elements. Following are the brief descriptions of the structural things.
Class − Class represents a set of objects having similar responsibilities.
Interface − Interface defines a set of operations, which specify the responsibility of a class.
Use case −Use case represents a set of actions performed by a system for a specific goal.
Behavioral Things
A behavioral thing consists of the dynamic parts of UML models. Following are the behavioral things
−
Interaction − Interaction is defined as a behavior that consists of a group of messages exchanged
among elements to accomplish a specific task.
State machine − 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
Grouping Things
Grouping things can be defined as a mechanism to group elements of a UML model together. There
is only one grouping thing available −
Package − Package is the only one grouping thing available for gathering structural and behavioral
things.
Annotational Things
Annotational things can be defined as a mechanism to capture remarks, descriptions, and comments
of UML model elements. Note - It is the only one Annotational thing available. A note is used to render
comments, constraints, etc. of an UML element.
Relationship
Relationship is another most important building block of UML. It shows how the elements are
associated with each other and this association describes the functionality of an application.
There are four kinds of relationships available.
Dependency
Dependency is a relationship between two things in which change in one element also affects the other.
Association
Association is basically a set of links that connects the elements of a UML model. It also describes how
many objects are taking part in that relationship.
Generalization
Generalization can be defined as a relationship which connects a specialized element with a
generalized element. It basically describes the inheritance relationship in the world of objects.
Realization
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
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 complete.
UML includes the following nine diagrams, the details of which are described in the subsequent
chapters.
Class diagram
Object diagram
Use case diagram
Sequence diagram
Collaboration diagram
Activity diagram
Statechart diagram
Deployment diagram
Component diagram
UML - Architecture
Any real-world system is used by different users. The users can be developers, testers, business
people, analysts, and many more. Hence, before designing a system, the architecture is made with
different perspectives in mind. The most important part is to visualize the system from the perspective
of different viewers. The better we understand the better we can build the system.
UML plays an important role in defining different perspectives of a system. These perspectives are −
Design
Implementation
Process
Deployment
The center is the Use Case view which connects all these four. A Use Case represents the functionality
of the system. Hence, other perspectives are connected with use case.
Design of a system consists of classes, interfaces, and collaboration. UML provides class diagram,
object diagram to support this.
Implementation defines the components assembled together to make a complete physical system.
UML component diagram is used to support the implementation perspective.
Process defines the flow of the system. Hence, the same elements as used in Design are also used
to support this perspective.
Deployment represents the physical nodes of the system that forms the hardware. UML deployment
diagram is used to support this perspective.
Structural Modeling
Structural modeling captures the static features of a system. They consist of the following −
Classes diagrams
Objects diagrams
Deployment diagrams
Package diagrams
Composite structure diagram
Component diagram
Structural model represents the framework for the system and this framework is the place where all
other components exist. Hence, the class diagram, component diagram and deployment diagrams are
part of structural modeling. They all represent the elements and the mechanism to assemble them.
The structural model never describes the dynamic behavior of the system. Class diagram is the most
widely used structural diagram.
Behavioral Modeling
Behavioral model describes the interaction in the system. It represents the interaction among the
structural diagrams. Behavioral modeling shows the dynamic nature of the system. They consist of the
following −
Activity diagrams
Interaction diagrams
Use case diagrams
All the above show the dynamic sequence of flow in a system.
Architectural Modeling
Architectural model represents the overall framework of the system. It contains both structural and
behavioral elements of the system. Architectural model can be defined as the blueprint of the entire
system. Package diagram comes under architectural modeling.
Classes
Object
Interface
Collaboration
Use case
Active classes
Components
Nodes
Class Notation
UML class is represented by the following figure. The diagram is divided into four parts.
Classes are used to represent objects. Objects can be anything having properties and responsibility.
Object Notation
The object is represented in the same way as the class. The only difference is the name which is
underlined as shown in the following figure.
As the object is an actual implementation of a class, which is known as the instance of a class. Hence,
it has the same usage as the class.
Interface Notation
Interface is represented by a circle as shown in the following figure. It has a name which is generally
written below the circle.
Interface is used to describe the functionality without implementation. Interface is 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 requirement.
Collaboration Notation
Collaboration is represented by a dotted eclipse as shown in the following figure. It has a name written
inside the eclipse.
Actor Notation
An actor can be defined as some internal or external entity that interacts with the system.
An actor is used in a use case diagram to describe the internal or external entities.
The usage of Initial State Notation is to show the starting point of a process.
The usage of Final State Notation is to show the termination point of a process.
Active Class Notation
Active class looks similar to a class with a solid border. Active class is generally used to describe the
concurrent behavior of a system.
Component Notation
A component in UML is shown in the following figure with a name inside. Additional elements can be
added wherever required.
Component is used to represent any part of a system for which UML diagrams are made.
Node Notation
A node in UML is represented by a square box as shown in the following figure with a name. A node
represents the physical component of the system.
Node is used to represent the physical part of a system such as the server, network, etc.
Behavioral Things
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 interactions and state machines.
Interactions can be of two types −
Package Notation
Package notation is shown in the following figure and is used to wrap the components of a system.
Annotational Things
In any diagram, explanation of different elements and their functionalities are very important. Hence,
UML has notes notation to support this requirement.
Note Notation
This notation is shown in the following figure. These notations are used to provide necessary
information of a system.
Relationships
A model is not complete unless the relationships between elements are described properly.
The Relationship gives a proper meaning to a UML model. Following are the different types of
relationships available in UML.
Dependency
Association
Generalization
Extensibility
Dependency Notation
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 in the following figure. The arrow head
represents the independent element and the other end represents the dependent element.
Association Notation
Association describes how the elements in a UML diagram are associated. In simple words, 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 in the following figure. 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.
Generalization Notation
Generalization describes the inheritance relationship of the object-oriented world. It is a parent and
child relationship.
Generalization is represented by an arrow with a hollow arrow head as shown in the following figure.
One end represents the parent element and the other end represents the child element.
Extensibility Notation
All the languages (programming or modeling) have some mechanism to extend its capabilities such as
syntax, semantics, etc. UML also has the following mechanisms to provide extensibility features.
Extensibility notations are used to enhance the power of the language. It is basically additional elements
used to represent some extra behavior of the system. These extra behaviors are not covered by the
standard available notations.
UML - Standard Diagrams
In the previous chapters, we have discussed about the building blocks and other necessary elements
of UML. Now we need to understand where to use those elements.
The elements are like components which can be associated in different ways to make a complete UML
picture, which is known as diagram. Thus, it is very important to understand the different diagrams to
implement the knowledge in real-life systems.
Any complex system is best understood by making some kind of diagrams or pictures. These diagrams
have a better impact on our understanding. If we look around, we will realize that the diagrams are not
a new concept but it is used widely in different forms in different industries.
We prepare UML diagrams to understand the system in a better and simple way. A single diagram is
not enough to cover all the aspects of the system. UML defines various kinds of diagrams to cover most
of the aspects of a system.
You can also create your own set of diagrams to meet your requirements. Diagrams are generally made
in an incremental and iterative way.
There are two broad categories of diagrams and they are again divided into subcategories −
Structural Diagrams
Behavioral Diagrams
Structural Diagrams
The structural diagrams represent the static aspect of the system. These static aspects represent those
parts of a diagram, which forms the main structure and are therefore stable.
These static parts are represented by classes, interfaces, objects, components, and nodes. The four
structural diagrams are −
Class diagram
Object diagram
Component diagram
Deployment diagram
Class Diagram
Class diagrams are the most common diagrams used in UML. Class diagram consists of classes,
interfaces, associations, and collaboration. Class diagrams basically represent the object-oriented view
of a system, which is static in nature.
Active class is used in a class diagram to represent the concurrency of the system.
Class diagram represents the object orientation of a system. Hence, it is generally used for
development purpose. This is the most widely used diagram at the time of system construction.
Object Diagram
Object diagrams can be described as an instance of class diagram. Thus, these diagrams are more
close to real-life scenarios where we implement a system.
Object diagrams are a set of objects and their relationship is just like class diagrams. They also
represent the static view of the system.
The usage of object diagrams is similar to class diagrams but they are used to build prototype of a
system from a practical perspective.
Component Diagram
Component diagrams represent a set of components and their relationships. These components
consist of classes, interfaces, or collaborations. Component diagrams represent the implementation
view of a system.
During the design phase, software artifacts (classes, interfaces, etc.) of a system are arranged in
different groups depending upon their relationship. Now, these groups are known as components.
Finally, it can be said component diagrams are used to visualize the implementation.
Deployment Diagram
Deployment diagrams are a set of nodes and their relationships. These nodes are physical entities
where the components are deployed.
Deployment diagrams are used for visualizing the deployment view of a system. This is generally used
by the deployment team.
Note − If the above descriptions and usages are observed carefully then it is very clear that all the
diagrams have some relationship with one another. Component diagrams are dependent upon the
classes, interfaces, etc. which are part of class/object diagram. Again, the deployment diagram is
dependent upon the components, which are used to make component diagrams.
Behavioral Diagrams
Any system can have two aspects, static and dynamic. So, a model is considered as complete when
both the aspects are fully covered.
Behavioral diagrams basically capture the dynamic aspect of a system. Dynamic aspect can be further
described as the changing/moving parts of a system.
UML has the following five types of behavioral diagrams −
Summary
UML 2.0 is an enhanced version where the new features are added to make it more usable and efficient.
There are two major categories in UML 2.0, one is UML super structure and another is UML
infrastructure. Although the new diagrams are based on the old concepts, they still have some
additional features.
UML 2.0 offers four interaction diagrams, the Sequence diagram, Communication diagram, Interaction
Overview diagram, and an optional Timing diagram. All four diagrams utilize the frame notation to
enclose an interaction. The use of frames support the reuse of interactions as interaction occurrences.