1.
Explain the UML concepts in detail with an example
Unified Modeling Language (UML) is a general purpose modelling language. The
main aim of UML is to define a standard way to visualize the way a system has been
designed. It is quite similar to blueprints used in other fields of engineering.
UML is not a programming language, it is rather a visual language. We use UML
diagrams to portray the behavior and structure of a system. UML helps software
engineers, businessmen and system architects with modelling, design and analysis.
The Object Management Group (OMG) adopted Unified Modelling Language as a
standard in 1997. Its been managed by OMG ever since. International Organization
for Standardization (ISO) published UML as an approved standard in 2005. UML has
been revised over the years and is reviewed periodically.
UML is linked with object oriented design and analysis. UML makes the use of
elements and forms associations between them to form diagrams. Diagrams in UML
can be broadly classified as:
1. Structural Diagrams – Capture static aspects or structure of a system.
Structural Diagrams include: Component Diagrams, Object Diagrams, Class
Diagrams and Deployment Diagrams.
2. Behavior Diagrams – Capture dynamic aspects or behavior of the system.
Behavior diagrams include: Use Case Diagrams, State Diagrams, Activity
Diagrams and Interaction Diagrams.
1
Object Oriented Concepts Used in UML –
1. Class – A class defines the blue print i.e. structure and functions of an object.
2. Objects – Objects help us to decompose large systems and help us to
modularize our system. Modularity helps to divide our system into
understandable components so that we can build our system piece by piece. An
object is the fundamental unit (building block) of a system which is used to
depict an entity.
3. Inheritance – Inheritance is a mechanism by which child classes inherit the
properties of their parent classes.
4. Abstraction – Mechanism by which implementation details are hidden from
user.
5. Encapsulation – Binding data together and protecting it from the outer world
is referred to as encapsulation.
6. Polymorphism – Mechanism by which functions or entities are able to exist in
different forms.
2
Structural UML Diagrams –
1. Class Diagram – The most widely use UML diagram is the class diagram. It is
the building block of all object oriented software systems. We use class diagrams
to depict the static structure of a system by showing system’s classes,their
methods and attributes. Class diagrams also help us identify relationship between
different classes or objects.
2. Composite Structure Diagram – We use composite structure diagrams to
represent the internal structure of a class and its interaction points with other
parts of the system. A composite structure diagram represents relationship
between parts and their configuration which determine how the classifier (class, a
component, or a deployment node) behaves. They represent internal structure of
a structured classifier making the use of parts, ports, and connectors. We can also
model collaborations using composite structure diagrams. They are similar to
class diagrams except they represent individual parts in detail as compared to the
entire class.
3. Object Diagram – An Object Diagram can be referred to as a screenshot of the
instances in a system and the relationship that exists between them. Since object
diagrams depict behaviour when objects have been instantiated, we are able to
study the behaviour of the system at a particular instant. An object diagram is
similar to a class diagram except it shows the instances of classes in the system.
We depict actual classifiers and their relationships making the use of class
diagrams. On the other hand, an Object Diagram represents specific instances of
classes and relationships between them at a point of time.
4. Component Diagram – Component diagrams are used to represent the how
the physical components in a system have been organized. We use them for
modelling implementation details. Component Diagrams depict the structural
relationship between software system elements and help us in understanding if
functional requirements have been covered by planned development. Component
Diagrams become essential to use when we design and build complex systems.
Interfaces are used by components of the system to communicate with each
other.
5. Deployment Diagram – Deployment Diagrams are used to represent system
hardware and its software.It tells us what hardware components exist and what
software components run on them.We illustrate system architecture as
distribution of software artifacts over distributed targets. An artifact is the
information that is generated by system software. They are primarily used when
a software is being used, distributed or deployed over multiple machines with
different configurations.
6. Package Diagram – We use Package Diagrams to depict how packages and
their elements have been organized. A package diagram simply shows us the
3
dependencies between different packages and internal composition of packages.
Packages help us to organise UML diagrams into meaningful groups and make
the diagram easy to understand. They are primarily used to organise class and use
case diagrams.
Behavior Diagrams –
1. State Machine Diagrams – A state diagram is used to represent the condition
of the system or part of the system at finite instances of time. It’s a behavioral
diagram and it represents the behavior using finite state transitions. State
diagrams are also referred to as State machines and State-chart Diagrams .
These terms are often used interchangeably.So simply, a state diagram is used to
model the dynamic behavior of a class in response to time and changing external
stimuli.
2. Activity Diagrams – We use Activity Diagrams to illustrate the flow of control
in a system. We can also use an activity diagram to refer to the steps involved in
the execution of a use case. We model sequential and concurrent activities using
activity diagrams. So, we basically depict workflows visually using an activity
diagram.An activity diagram focuses on condition of flow and the sequence in
which it happens. We describe or depict what causes a particular event using an
activity diagram.
3. Use Case Diagrams – Use Case Diagrams are used to depict the functionality
of a system or a part of a system. They are widely used to illustrate the functional
requirements of the system and its interaction with external agents(actors). A use
case is basically a diagram representing different scenarios where the system can
be used. A use case diagram gives us a high level view of what the system or a
part of the system does without going into implementation details.
4. Sequence Diagram – A sequence diagram simply depicts interaction between
objects in a sequential order i.e. the order in which these interactions take
place.We can also use the terms event diagrams or event scenarios to refer to a
sequence diagram. Sequence diagrams describe how and in what order the
objects in a system function. These diagrams are widely used by businessmen
and software developers to document and understand requirements for new and
existing systems.
5. Communication Diagram – A Communication Diagram(known as
Collaboration Diagram in UML 1.x) is used to show sequenced messages
exchanged between objects. A communication diagram focuses primarily on
objects and their relationships. We can represent similar information using
4
Sequence diagrams,however, communication diagrams represent objects and
links in a free form.
6. Timing Diagram – Timing Diagram are a special form of Sequence diagrams
which are used to depict the behavior of objects over a time frame. We use them
to show time and duration constraints which govern changes in states and
behavior of objects.
7. Interaction Overview Diagram – An Interaction Overview Diagram models a
sequence of actions and helps us simplify complex interactions into simpler
occurrences. It is a mixture of activity and sequence diagrams.
Example of UML Class Diagram
Creating a class diagram is a straightforward process. It does not involve many
technicalities. Here, is an example:
ATMs system is very simple as customers need to press some buttons to receive cash.
However, there are multiple security layers that any ATM system needs to pass. This
helps to prevent fraud and provide cash or need details to banking customers.
Below given is a UML Class Diagram example:
5
Class Diagram in Software Development Lifecycle
Class diagrams can be used in various software development phases. It helps in
modeling class diagrams in three different perspectives.
1. Conceptual perspective: Conceptual diagrams are describing things in the real
world. You should draw a diagram that represents the concepts in the domain under
study. These concepts related to class and it is always language-independent.
2. Specification perspective: Specification perspective describes software
abstractions or components with specifications and interfaces. However, it does not
give any commitment to specific implementation.
6
3. Implementation perspective: This type of class diagrams is used for
implementations in a specific language or application. Implementation perspective,
use for software implementation.
Best practices of Designing of the Class Diagram
Class diagrams are the most important UML diagrams used for software application
development. There are many properties which should be considered while drawing a
Class Diagram. They represent various aspects of a software application.
Here, are some points which should be kept in mind while drawing a class diagram:
The name given to the class diagram must be meaningful. Moreover, It should
describe the real aspect of the system.
The relationship between each element needs to be identified in advance.
The responsibility for every class needs to be identified.
For every class, minimum number of properties should be specified. Therefore,
unwanted properties can easily make the diagram complicated.
User notes should be included whenever you need to define some aspect of the
diagram. At the end of the drawing, it must be understandable for the software
development team.
Lastly, before creating the final version, the diagram needs to be drawn on
plain paper. Moreover, It should be reworked until it is ready for final
submission.
Conclusion
UML is the standard language for specifying, designing, and visualizing the
artifacts of software systems
A class is a blueprint for an object
A class diagram describes the types of objects in the system and the different
kinds of relationships which exist among them
It allows analysis and design of the static view of a software application
Class diagrams are most important UML diagrams used for software
application development
Essential elements of UML class diagram are 1) Class 2) Attributes 3)
Relationships
Class Diagram provides an overview of how the application is structured before
studying the actual code. It certainly reduces the maintenance time
7
The class diagram is useful to map object-oriented programming languages like
Java, C++, Ruby, Python, etc.