UML
Dr. Zhen Jiang
West Chester University
E-mail: zjiang@wcupa.edu
Outline
 Introduction to UML
 Objects and Classes
 Class Diagrams
◦ Class Icon
◦ Relationships
◦ Constraints
UML: Unified Modeling
Language
 The Unified Modeling Language (UML) is
an industry-standard language for
specifying, visualizing, constructing, and
documenting the artifacts of software
systems
 The UML definition was led by Grady
Booch, Ivar Jacobson, and Jim Rumbaugh
(all now at Rational Software)
Objects and Classes
 What’s object
◦ Identity
◦ State
◦ Behavior
 Sequence Diagram
 Statechart Diagram
 Messages and methods
 What’s class
◦ Objects and Classes
◦ Nature of a class
◦ Class Attributes
◦ Operation (Method)
◦ Interfaces
◦ Interfaces and Implementation
◦ Corresponding C++ code
Objects
 Conceptually, there are many ways to think
of an object
– something that can be seen or touched
– a thing to which some action is directed
– something that performs a query action
 The structure and behaviour of similar
objects are defined in their common class
 Objects have thee properties: identity , state,
and behaviour (query action)
Object Property 1: Identity
 Identity is that property of an object which
distinguishes it from all other objects
 Keep in mind, however, that an object may
not have a name; Similarly, an object might
have multiple names (aliases)
– For this reason, there is a subtle distinction
made between the concepts of "name" and
"identity"
Object Property 2: State
 The state of an object encompasses all of the
(usually static) properties of the object plus
the current (usually dynamic) values of each
of these properties
Object Property 3: Behaviour
 Behaviour is how an object acts and reacts,
in terms of its status changes and
message/information passing
 The state of an object represents the
cumulative results of its behaviour
Example Objects
 There are many physical objects we can
examine right in this room
– each person is an object
– any chair is not an object
– each light bulb is an object
– Any book is not an object
– this room itself is an object (full or not)
 See if the followings are objects or not:
◦ Desk
◦ Light
◦ Person
◦ Log
◦ The Earth
◦ Clock
◦ Machine
◦ Computer
◦ Saving account
 Answer: N,Y,Y, N,Y,Y,Y,Y,Y
Objects versus Classes
 How would we describe the state, behaviour,
and identity for each of these objects
 We have looked at objects and we have seen
that objects can be "classified" into classes
 As programmers, we work with both classes
and objects from those classes
Classes and Objects
 An object is called an "instance" of a class
 The terms instance and object are
interchangeable
 Creating an object from a class is often
called instantiation
 For example, there are many person objects
in this room -- each person is an instance of
the person class
The Nature of a Class
 A class describes the common structure
(attributes/state) and behaviour of its instances
 For example,
– 3.14, 2.71, and 5.5 can be classified as Floats
– the following shapes can be classified as Circles
 In a 2D drawing package, circles have a
radius, a line thickness, a line color, and a
fill color
 Each individual circle (instance) drawn by
the user has its own value for each attribute
 The programmer writes a Circle class and
the program instantiates a Circle object
every time the user draws a Circle
a snowman made from 9
Circle instances
Class Attributes
 An attribute is a named property of a class
that describes the range of values that
instances of the property may
hold.(Booch,1999)
 An attribute has a type that defines the
type of its instances.
 Only the object itself should be able to
change the value of its attributes.
 The values of the attributes define the
state of the object
Operation (Methods)
 An operation is the implementation of a
service that can be requested from any object
of the class to affect behavior (Booch, 1999)
 An operation can be:
– Question (does not change the value of the
object)
– Command (may change the value of the object)
Review
something
Object
action
action
state1 state2
operations/methods
attributes: {attribute1,
attribute2}
structure
operation/method
attribute1 attribute2
value
Light
Turn on/off
On Off
operations/methods:
Turn_on/off ( )
attributes: {True,
False}
structure
Turn_on
True False
Turn_off value
Class Diagram
 Introduction
 Class Icon
 Relationships
 Constraints
Introduction
 The class diagram is fundamental to object-
oriented programming
 UML’s class diagrams capture the attributes
and operations of each class as well the
relationships that exist between classes
Class Icon
 Class Icon
 Hiding Details
 Visibility Notation
 Attribute Specification
 Operation Specification
UML Class Icon
 The UML class icon is
a rectangle with three
compartments: Circle
– class name radius: float
– class attributes
center_x: int
– class operations
center_y: int
 Attributes are specified
in the following form: area()
– object:class name display()
Hiding Detail
 You can optionally leave out the attributes,
operations, or both in a class icon:
Circle Circle Circle
radius: float
area() center_x: int
display() center_y: int
UML Member Visibility
Notation
UML has three visibility prefixes for
members:
+ for public, # for protected, and – for
private
– e.g.
Circle
-radius: float
#area()
+display()
Full UML Attribute
Specification
 The full form of a UML attribute is as
follows:
[visibility] name [multiplicity] [: type] [= initial value]
[{property}]
– The property choices are changeable, addOnly, and frozen
Student Info
-id: string
-hasGraduated: bool = false
Full UML Operation
Specification
The full form of a UML operation is as
follows:
[visibility] name [(parameter-list)] [:return-type] [{property}]
– The property choices are sequential, concurrent, guarded, and
isQuery
The full form of a UML parameter is:
[direction] name : type [= default-value]
– The direction choices are in, out, and inout
UML Class Relationships
 A class relationship is a connection between
two (or more) classes
 The three most important class relationships
are generalizations, associations, and
aggregations
 UML provides a graphical representation for
each of the relationships using a different
line type for each relationship
Class Relationships
 Generalization
 Association
 Association Class
 Qualified Association
 Ternary Association
 Aggregation
Generalization
 A generalization is a relationship between a general
thing (superclass) and a more specific kind of that
thing (subclass)
 In the UML, generalization requires that objects of the
subclass may be used anywhere an object of the
superclass appears
Person
Student
Association
An association is a structural relationship that specifies
that objects of one thing are connected to objects of
another
Faculty Student
Association
Associations can be adorned with a name.
Teaching
Faculty Student
Association
Associations can be adorned with the roles.
teacher
Faculty learner Student
Association
Associations can be adorned with the multiplicity.
Faculty Student
1 4..*
Association Class (relation
attributes)
 Each object of association class is one
instance of relationship (link) in an
association.
1..*
Faculty 4..*
Student
Course
Qualified Association
 Qualified association relates two classes and
a qualifier.
 The qualifier is a special attribute that
reduces the effective multiplicity of an
association.
Directory file File
name
Ternary Association
 A ternary association is a structural relationship that
specifies that objects of one thing are connected to
objects of other two’s.
Project Language
Developer
Aggregation
 An aggregation is an association that
represents whole/part relationship
 The “whole” end of the association
relationship is adorned with an open
diamond shape (e.g. X is part of Y)
 e.g. door:Door is part of car:Car
X Y
Generalization, Aggregation, and
Association
 See if the following pairs of classes have
generalization, aggregation or association
 Faculty & student (as)
 Hospital & doctor (as)
 Door & Car (ag --<>)
 Member & Organization (ag --<>)
 People & student (ge <|-- )
 Circle & point (ge --|>)
 Department & Faculty (as)
 Employee & Faculty (ge <|--)
 Item & Printer (ge <|--)
 Account & Checking account (ge <|-- )
Constraints
 Constraints on Object
 Constraints on Relations (Ordering)
 General Constraints (Dependency)
Constraints on Object
The constraints restricts the values that
objects can be.
Example: No employee’s salary can exceed
the salary of the employee’s boss.
{salary <=boss.salary}
Employee Employer
Salary Salary
Constraints on Relations
(Ordering)
{Order} indicates that the elements of the
“many” end of an association have an explicit
order that must be preserved.
{ordered}
Paper 1
1.. Author
*
General Constraints
(Dependency)
 A dependency is a using relationship that states that a
change in specification of one thing may affect another
thing that uses it (but not necessarily the reverse)
General Constraints
(Dependency)
 Dependencies are often used when one class uses
another class as an argument of the operation
Aerodrome
Runway
checkRVR( r: Runway )
 Dependencies are also often used to express general
constraints.
member-of
Person {subset} Committee
chair-of
 (Class Name, attribute, method) vs (Table Name, field,
query)
 (Class & object) vs (Table & row)
 (Table 1, table 2, … ) vs Knowledge relearning with
OO techniques to quickly locate the information
Design
• Organize the data into “something” (i.e., object)
being queried.
• Observe the relationship between objects.
• Describe the queries into methods, changing,
updating, and even deleting the attribute information.
• If necessary, translate class, object, attribute value,
and method to table, row, field value, and query.