You are on page 1of 71

OO programming and UML

Design

Dr. Zhen Jiang


West Chester University
E-mail: zjiang@wcupa.edu
Outline
 Introduction to object and class
 Introduction to UML
 Introduction to UML design
Introduction to object and class
 Why OO programming?
– Look at this picture carefully
– You need to identify it from VERY similar
pictures in the next slide
Introduction to object and class
 Why OO programming?
– Which one is shown before?

– In the next slide, your partner will see the selected


picture and other two pictures together. Write down
something to help your partner to pick up the same
picture correctly.
Introduction to object and class
 Why OO programming?
– Partner’s job
Introduction to object and class
 Why OO programming?
– Which one?
Introduction to object and class
 Why OO programming?
– From snapshot to the action
Introduction to object and class
 Why OO programming?
– From snapshot to the action

1
Introduction to object and class
 What’s object
– Identity
– State
– Behavior
Sequence Diagram

 Statechart Diagram

– Messages and methods


 What’s class
– Objects and Classes
– Class Attributes
– Operation (Method)
– Interfaces
– Interfaces and Implementation
What’s object

 Fundamentals of Object-Oriented
Programming
What’s object
 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 an action
 The structure and behaviour of similar
objects are defined in their common class
 Objects have three properties: identity , state,
and behaviour
Object Property 1: Identity
 Identity is that property of an object which
distinguishes it from all other objects
 Most programming languages use variable
names to refer to 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
descriptions of the object plus the current
values of each of these descriptions
Object Property 3: Behaviour
 Behaviour is how an object acts and reacts,
in terms of its state changes and message
passing
 The state of an object represents the
cumulative results of its behaviour
 In object-oriented programming, a
behaviour is invoked by sending a message
to an object
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
– Lamp
– Person
– Log
– The Earth
– Clock
– Machine
– Computer
– Saving account
 Answer: N, Y, Y, N, Y, Y, Y, Y, Y
What’s the relationship among
objects: Messages and Methods
 A object executes a method when it
sends/receives a message
 For example, we can ask/tell a dog to sit by
sending him the message "sit"
 In object-oriented programming, objects
send messages asking/telling others to
perform behaviors -- those other objects
invoke the method corresponding to the
message in order to execute the desired
behavior
What’s 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


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
Classes and objects
 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
 For example, we might write a stack class
and create multiple stack objects for use in
our program
 In a 2D drawing package, circles have a
radius, a line thickness, a line colour, and a
fill colour
 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
 Simply, a class is a group of objects with
common parts or behaviors (similar, not
necessary the exact same). That common
thing will be defined in class definition.
 An object is an instance which meets all the
description of its class.
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)
Interface and Implementation
 The class interface is its external (public)
view
 The class implementation is its internal
(private) view
 It is convenient to think of the interface as
describing "what the objects of this class can
do" and the implementation as "how the
objects of this class do it"
 The implementation of a class consists of all
the "behind the scenes" operations defined
in the interface of the class
Introduction to UML
 What’s UML
 Goals of UML
 Overview
– Class diagram
 Introduction
 Class icon
 Class relationship
 Constraints
– Other diagrams
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)
UML simplifies the process of software
design, making a "blueprint" for construction
In Essence: a tool used through the analysis and design
phases of system development for expressing the
constructs and relationships of complex systems

Target Usage: for building object-oriented and


component-based systems
Goals of UML
1. Provide users with a ready-to-use, expressive visual modeling
language so they can develop and exchange meaningful models
2. Provide extensibility and specialization mechanisms to extend
the core concepts.
3. Be independent of particular programming languages and
development processes.
4. Provide a formal basis for understanding the modeling
language.
5. Encourage the growth of the Object-Oriented tools market.
6. Support higher-level development concepts such as
collaborations, frameworks, patterns and components.
7. Integrate best practices.
Many free learning materials on the web
– e.g. www.rational.com/uml
Standard of UML
www.cs.wcupa.edu/~zjiang/01-09-67.pdf
Some recommended texts on UML:
– The Unified Modeling Language User Guide, [G.
Booch, J. Rumbaugh, I. Jacobson, 2000]
– UML Explained, [Kendall Scott, 2001]
– Applying UML and Patterns 2nd Ed., [Craig Larman,
2002]
– UML Distilled 2nd Ed., [Martin Fowler with K. Scott,
2000]
– UML and C++, [R. Lee & W. Tepfenhart, 2001]
UML Overview
 UML is a language for visualizing,
specifying, constructing and documenting
the artifacts of a software system
 The artifacts might include requirements,
architecture, design, source code, project
plans, tests, prototypes, releases
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
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
area()
in the following form:
– 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
UML Design
 UML class diagram is not object diagram.
 UML class diagram is not data flow chart.
 How to describe the behaviors/actions of
objects in UML class diagram?
 What kind of relationship is generalization?
 How to keep the consistency of all the
constraints?
 Common mistakes in Time Sequence Diagram
 Samples
UML class diagram is not object
diagram

•Should we add relation


between Bank and Other-
Loans?
Other-Loan •Can Bank change Other-
loans?
Customer Bank •Instance of Loan and Other-
Loan Loans?
UML class diagram is not object
diagram

Customer Loan

Bank Bank-Loan Other-Loan


UML class diagram is not data
flow chart

bargain
Customer Dealer
sign
buy sell report

Product Manager
authorize
UML class diagram is not data
flow chart

•Customer, Dealer, and Manager


•Bargain

Product

Customer Salesman

Dealer Manager
How to describe the
behaviors/actions of objects in
UML class diagram

Person

sSN
address
?
email

Customer
Faculty Casher
Student
How to describe the
behaviors/actions of objects in
UML class diagram
Use case (stories): Each use case defines an interaction
between an actor and the system

Use case
Use case

Use case Use case


Reception
Scenarios of a use case

Order
Check

? Waiting
Failure
Authorized

Success Failure
How to describe the
behaviors/actions of objects in
UML class diagram
– In design, see
www.cs.wcupa.edu/~zjiang/intro_uc.ppt.
– In programming, see time sequence
diagram, see
www.cs.wcupa.edu/~zjiang/intro_TS.ppt.
What kind of relationship is
generalization

Position
Point
x: int
y: int
Point
Position
People

Student Circle Rectangle


radius: double

*Tip 4: Class A is a super class of class B if and only if any


object of class B can also play the role as an object of class A.
How to keep the consistency of
all the constraints

1 1..6
Ticket-buyer Traveler
1 1

0..6
Dependent 1
How to keep the consistency of
all the constraints

0..1 0..1
Ticket-buyer Traveler
1 1

0..6
Dependent 0..1
How to keep the consistency of
all the constraints

Traveler

0..1
1 0..6
Ticket-buyer Dependent

You might also like