You are on page 1of 44

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: www.smartdraw.com
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

You might also like