UML Diagrams
CLASS DIAGRAM
Class Diagrams
The main building block in object oriented modeling
They are used both for general conceptual modeling
of the systematics of the application, and for detailed
modeling translating the models into programming
code
The classes diagram represent both the main objects
and/or interactions in the application and the objects
to be programmed
In the diagram these classes are represented with
boxes which contain three parts
Class Diagrams
A class with three sections.
The upper part holds the name of the class
The middle part contains the attributes of the class
The bottom part gives the methods or operations the class can
take or undertake
Class Diagrams
In the system design of a system, a number of classes are
identified and grouped together in a class diagram which helps
to determine the static relations between those objects
With detailed modeling, the classes of the conceptual design are
often split in a number of subclasses
In order to further describe the behavior of systems, these
diagrams can be complemented by state diagram or UML state
machine
Also instead of class diagrams, Object role modeling can be
used if you just want to model the classes and their
relationships
The class icon
Defines
Persistent system state
System behavior
The class icon has
Name
Attributes
Operations
It’s a rectangle divided
into three
compartments.
Steps followed
Draw class symbol in the editor and
name it
List the class attributes
List the class operations/methods
Make the links and associations
Give notations
Structural Modeling: Core Elements
Construct Description Syntax
class a description of a set of objects
that share the same attributes,
operations, methods, relationships
and semantics.
interface a named set of operations that
«interface»
characterize the behavior of an
element.
component a modular, replaceable and
significant part of a system that
packages implementation and
exposes a set of interfaces.
node a run-time physical object that
represents a computational
resource.
Reference: OMG tutorial on UML by Cris Kobryn
Structural Modeling: Core Elements
(cont’d)
Construct Description Syntax
constraint¹ a semantic condition or restriction.
{constraint}
¹ An extension mechanism useful for specifying structural elements.
Reference: OMG tutorial on UML by Cris Kobryn
Structural Modeling:
Core Relationships
Construct Description Syntax
association a relationship between two or more
classifiers that involves connections
among their instances.
aggregation A special form of association that
specifies a whole-part relationship
between the aggregate (whole) and
the component part.
generalization a taxonomic relationship between a
more general and a more specific
element.
dependency a relationship between two modeling
elements, in which a change to one
modeling element (the independent
element) will affect the other modeling
element (the dependent element).
Reference: OMG tutorial on UML by Cris Kobryn
Structural Modeling:
Core Relationships (cont’d)
Construct Description Syntax
realization a relationship between a specification
and its implementation.
Reference: OMG tutorial on UML by Cris Kobryn
Interfaces: Longhand Notation
StoreHome Store
POSterminalHome -storeId: Integer
-POSlist: List
POSterminal +create()
<<use>> <<interface>> +login(UserName, Passwd)
POSterminal Store +find(StoreId)
+getPOStotals(POSid)
+getPOStotals(POSid) +updateStoreTotals(Id,Sales)
+updateStoreTotals(Id,Sales) +get(Item)
+get(Item)
Fig. 3-29, UML Notation Guide
Reference: OMG tutorial on UML by Cris Kobryn
Associations
An Association represents a Company Job
Person
employer employee
family of links
Binary associations (with two Job
ends) are normally
boss
salary
0..1
represented as a line, with worker
each end connected to a Manages
class box
Higher order associations Person
can be drawn with more {X or}
Account
than two ends; in such Corporation
cases, the ends are
connected to a central
diamond
Fig. 3-40, UML Notation Guide
Reference: OMG tutorial on UML by Cris Kobryn
Associations
An association can be Company Job
Person
employer employee
named, and the ends of an
association can be adorned
Job
with role names, ownership salary
boss
0..1
indicators, multiplicity, worker
visibility, and other Manages
properties
There are five different types Person
of association; bi-directional {X or}
and uni-directional Account
associations are the most
Corporation
common ones
Fig. 3-40, UML Notation Guide
Reference: OMG tutorial on UML by Cris Kobryn
Aggregations
Aggregation is a variant of the "has a" or association
relationship; aggregation is more specific than association
It is an association that represents a part-whole or part-of
relationship. As a type of association, an aggregation can be
named and have the same adornments that an association can
However, an aggregation may not involve more than two
classes
Aggregations
Aggregation can occur when a class is a collection or container
of other classes, but where the contained classes do not have
a strong life cycle dependency on the container—essentially, if
the container is destroyed, its contents are not
In UML, it is graphically represented as a hollow diamond
shape on the containing class end of the tree of lines that
connect contained class(es) to the containing class
Composition
Composition is a stronger variant of the "owns Window
a" or association relationship; composition is
more specific than aggregation scrollbar [2]: Slider
title: Header
It is represented with a solid diamond shape body: Panel
Has a strong life cycle dependency between
instances of the container class and instances Window
of the contained class(es): If the container is 1 1
1
destroyed, normally every instance that it
contains is destroyed as well scrollbar 2 title 1 body 1
Note that a part can (where allowed) be Slider Header Panel
removed from a composite before the
composite is deleted, and thus not be deleted
as part of the composite
The UML graphical representation of a
composition relationship is a filled diamond
shape on the containing class end of the tree of
lines that connect contained class(es) to the
containing class
Fig. 3-45, UML Notation Guide
Reference: OMG tutorial on UML by Cris Kobryn
Generalization
Indicates that one of the two related Shape
classes (the subtype) is considered to
Separate Target Style
be a specialized form of the other (the
super type) and supertype is Polygon Ellipse Spline . ..
considered as 'Generalization' of
subtype
In practice, this means that any Shape
instance of the subtype is also an Shared Target Style
instance of the supertype
An exemplary tree of generalizations
of this form is found in binomial Polygon ...
Ellipse Spline
nomenclature: human beings are a
subtype of simian, which are a
subtype of mammal, and so on. The
relationship is most easily understood
by the phrase 'A is a B' (a human is a
mammal, a mammal is an animal).
Fig. 3-47, UML Notation Guide Reference: OMG tutorial on UML by Cris Kobryn
Generalization
The UML graphical representation Shape
of a Generalization is a hollow
Separate Target Style
triangle shape on the supertype
end of the line (or tree of lines) that Polygon Ellipse Spline . ..
connects it to one or more
subtypes.
The generalization relationship is Shape
also known as the inheritance or Shared Target Style
"is a" relationship.
The supertype in the generalization
relationship is also known as the Polygon Ellipse Spline
...
"parent", superclass, base class, or base
type.
The subtype in the specialization
relationship is also known as the "child",
subclass, derived class, derived type,
inheriting class, or inheriting type.
Fig. 3-47, UML Notation Guide Reference: OMG tutorial on UML by Cris Kobryn
Generalization
Note that this relationship bears
Shape
no resemblance to the
Separate Target Style
biological parent/child
relationship: the use of these Polygon Ellipse Spline . ..
terms is extremely common,
but can be misleading
Generalization-Specialization
Shape
Shared Target Style
relationship
A is a type of B
...
E. g. "an oak is a type of tree", "an Polygon Ellipse Spline
automobile is a type of vehicle"
Generalization can only be
shown on class diagrams and
on Use case diagrams.
Fig. 3-47, UML Notation Guide Reference: OMG tutorial on UML by Cris Kobryn
Dependencies
Dependency is a weaker ClassA
«friend»
ClassB ClassD
form of relationship
«friend»
operationZ()
«instantiate»
which indicates that one «call» ClassC
class depends on «refine»
ClassC combines
another because it uses two logical classes
it at some point of time ClassD ClassE
It exists if a class is a
parameter variable or
local variable of a
method of another class
Fig. 3-50, UML Notation Guide
Reference: OMG tutorial on UML by Cris Kobryn
UML Class Diagram Examples
Reference: [Link]
Object Diagram
A diagram that shows a
complete or partial view
of the structure of a
modeled system at a
specific time
Focuses on some
particular set of object
instances and
attributes, and the links
between the instances
Object Diagram
A set of objects (instances of
classes) and their
relationships
A static snapshot of a
dynamic view of the system
Represents real or
prototypical cases
Very useful before
developing class diagrams
Worth saving as elaborations
of class diagrams
Instance Specifications
Each object and link is represented by an Instance
Specification
This can show an object's classifier (e.g. an abstract
or concrete class) and instance name, as well as
attributes and other structural features using slots
Each slot corresponds to a single attribute or feature,
and may include a value for that entity
Instance Specifications
The name on an instance specification optionally
shows …
an instance name,
a ':' separator, and
optionally one or more classifier names separated by
commas
The contents of slots, if any, are included below the
names, in a separate attribute compartment
A link is shown as a solid line, and represents an
instance of an association
Example
As an example, consider one possible way of
modeling production of the Fibonacci sequence
Example
In the first UML object diagram, the instance in the
leftmost instance specification …
is named v1,
has IndependentVariable as its classifier,
plays the NMinus2 role within the FibonacciSystem, and
has a slot for the val attribute with a value of 0
Example
The second object …
is named v2,
is of class IndependentVariable,
plays the NMinus1 role, and
has val = 1
Example
The DependentVariable object …
is named v3, and
plays the N role
Example
The topmost instance, an anonymous instance
specification, …
has FibonacciFunction as its classifier, and
may have an instance name, a role, and slots, but these are
not shown here
Example
The diagram also includes three named links, shown
as lines
Links are instances of an association
Example
After the first iteration, when n = 3, and f(n-2) = 1,
and f(n-1) = 1, then f(n) = 1 + 1 = 2
At a slightly later point in time, the
IndependentVariable and DependentVariable objects
are the same, but the slots for the val attribute have
different values
The role names are not shown here
Example
After several more iterations, when n = 7, and f(n-2)
= 5, and f(n-1) = 8, then f(n) = 5 + 8 = 13
In a still later snapshot, the same three objects are
involved
Their slots have different values
The instance and role names are not shown here
Usage
If you are using a UML modeling tool, you will
typically draw object diagrams using some other
diagram type, such as on a class diagram
An object instance may be called an instance
specification or just an instance
A link between instances is generally referred to as a
link
Other UML entities, such as an aggregation or
composition symbol (a diamond) may also appear on
an object diagram
More Examples
Object diagram
Class diagram
More Examples
What does this object
diagram tell us?
More Examples
What would the class
diagram look like that
goes along with this
object diagram?
More Examples
Does this make
sense to you?
More Examples