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 )
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.