UML 2.4 Diagrams Overview

A UML diagram is a partial graphical representation (view) of a model of a system
under design, implementation, or already in existence.
UML diagram contains graphical elements (symbols) - UML nodes connected with edges
(also known as paths or flows) - that represent elements in the UML model of the designed system.
The UML model of the system might also contain other documentation such as use cases written as
templated texts.

UML specification does not preclude mixing of different kinds of diagrams,
e.g. to combine structural and behavioral elements to show a state machine nested inside
a use case.
Consequently, the boundaries between the various kinds of diagrams are not strictly enforced.
At the same time, some UML Tools do restrict set of available graphical elements
which could be used when working on specific type of diagram.

Classification of UML 2.4 Diagrams

Structure diagrams
show the static structure of the system and its parts on
different abstraction and implementation levels and how they are related to each other.
The elements in a structure diagram represent the meaningful concepts of a system, and may include abstract,
real world and implementation concepts.

Behavior diagrams
show the dynamic behavior of the objects in a system,
which can be described as a series of changes to the system over time.

UML 2.4 diagrams could be categorized hierarchically as shown below:

UML 2.4 Diagrams Overview

Structure Diagrams

Structure diagram shows static structure of the system and its parts on
different abstraction and implementation levels and how those parts are related to each other.
The elements in a structure diagram represent the meaningful concepts of a system, and may include abstract,
real world and implementation concepts.

Structure diagrams are not utilizing time related concepts, do not show the details of dynamic behavior.
However, they may show relationships to the behaviors of the classifiers exhibited in the structure diagrams.

Object diagram
was defined in now obsolete UML 1.4.2 specification as
"a graph of instances, including objects and data values. A static object diagram is an instance
of a class diagram; it shows a snapshot of the detailed state of a system at a point in time."
It also stated that object diagram is
"a class diagram with objects and no classes."UML 2.4 specification simply provides no definition of object diagram.

Model diagram
is UML auxiliary structure diagram which shows some abstraction or specific view of a system,
to describe architectural, logical or behavioral aspects of the system.
It could show, for example, architecture of a multi-layered (aka multi-tiered) application -
multi-layered application model.

Note, that components
were directly deployed to nodes in UML 1.x deployment diagrams.
In UML 2.x artifacts
are deployed to nodes, and artifacts could
manifest
(implement) components. Components are deployed to nodes indirectly through artifacts.

Because manifestation diagrams
are not defined by UML 2.4 specification, manifestation of components by artifacts could be shown
using either component diagrams or deployment diagrams.

Deployment diagrams could also be used to show logical or physical network architecture
of the system. This kind of deployment diagrams - not formally defined in UML 2.4 - could be called
network architecture diagrams.

Profile diagram
is auxiliary UML diagram which allows defining custom stereotypes, tagged values, and constraints.
The Profile mechanism has been defined in UML for providing a
lightweight extension mechanism to the UML standard.
Profiles allow to adapt the UML metamodel for different

platforms (such as J2EE or .NET), or

domains (such as real-time or business process modeling).

Profile diagrams were first introduced in UML 2.0.

Behavior Diagrams

Behavior diagrams show the dynamic behavior of the objects in a system,
which can be described as a series of changes to the system over time.

Use case diagrams
are behavior diagrams used to describe a set of actions
(use cases)
that some system or systems (subject) should or can perform in collaboration with one or more
external users of the system
(actors)
to provide some observable and valuable results to the actors or other stakeholders of the system(s).

Note, that UML 2.4 specification also defines use case diagrams
as specialization of
class diagrams
(which are
structure diagrams).
Use case diagrams could be considered as a special case of class diagrams where classifiers are restricted
to be either actors or use cases and the most used relationship is
association.

Activity diagram
shows sequence and conditions for coordinating lower-level behaviors,
rather than which classifiers own those behaviors.
These are commonly called control flow and object flow models.

State machine diagram
is used for modeling discrete behavior through finite state transitions.
In addition to expressing the behavior of a part of the system, state machines can also be
used to express the usage protocol of part of a system.
These two kinds of state machines are referred to as behavioral state machines and
protocol state machines.

Sequence diagram
is the most common kind of interaction diagrams, which focuses on the message interchange between
lifelines (objects).

Communication diagram
(previously known as Collaboration Diagram) is a kind of
interaction diagram, which focuses on the interaction between lifelines
where the architecture of the internal structure and how this corresponds with the
message passing is central.
The sequencing of messages is given through a sequence numbering scheme.

Interaction overview diagram
defines interactions through a variant of
activity diagrams
in a way that promotes overview of the control flow.
Interaction overview diagrams focus on the overview of the flow of control where the nodes are
interactions or
interaction uses.
The lifelines and the messages do not appear at this overview level.

Timing diagrams
are used to show interactions when a primary purpose of the diagram
is to reason about time.
Timing diagrams focus on conditions changing within and among Lifelines along a linear time axis.

Noticed a spelling error? Select the text using the mouse and press Ctrl + Enter.