Title: OO programming and UML Design
1OO programming and UML Design
- Dr. Zhen Jiang
- West Chester University
- E-mail zjiang_at_wcupa.edu
2Outline
- Introduction to object and class
- Introduction to UML
- Introduction to UML design
3Introduction 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
4Introduction 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.
5Introduction to object and class
- Why OO programming?
- Partners job
6Introduction to object and class
- Why OO programming?
- Which one?
7Introduction to object and class
- Why OO programming?
- From snapshot to the action
8Introduction to object and class
- Why OO programming?
- From snapshot to the action
3
2
1
9Introduction to object and class
- Whats object
- Identity
- State
- Behavior
- Sequence Diagram
- Statechart Diagram
- Messages and methods
- Whats class
- Objects and Classes
- Class Attributes
- Operation (Method)
- Interfaces
- Interfaces and Implementation
10Whats object
- Fundamentals of Object-Oriented Programming
11Whats 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
12Object 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"
13Object 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
14Object 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
15Example 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)
16- 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
17Whats 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
18Whats 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
19Classes 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
20Classes 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
21- 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
22- 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.
23Class 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
24Operation (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)
25Interface 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
26Introduction to UML
- Whats UML
- Goals of UML
- Overview
- Class diagram
- Introduction
- Class icon
- Class relationship
- Constraints
- Other diagrams
27UML 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)
28- 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
29Goals 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.
30- 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
31UML 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
32Review
something
Object
action
action
state1
state2
operations/methods
attributes attribute1,
attribute2
structure
operation/method
attribute1
attribute2
value
33Light
Turn on/off
On
Off
operations/methods
Turn_on/off ( )
attributes True, False
structure
Turn_on
True
False
value
Turn_off
34Class Diagram
- Introduction
- Class Icon
- Relationships
- Constraints
35Introduction
- The class diagram is fundamental to
object-oriented programming - UMLs class diagrams capture the attributes and
operations of each class as well the
relationships that exist between classes
36Class Icon
- Class Icon
- Hiding Details
- Visibility Notation
- Attribute Specification
- Operation Specification
37Class Icon
- The UML class icon is a rectangle with three
compartments - class name
- class attributes
- class operations
- Attributes are specified in the following form
- objectclass name
Circle
radius float center_x int center_y int
area() display()
38Hiding Detail
- You can optionally leave out the attributes,
operations, or both in a class icon
Circle
area() display()
Circle
radius float center_x int center_y int
Circle
39UML Member Visibility Notation
- UML has three visibility prefixes for members
for public, for protected, and for private - e.g.
Circle
-radius float
area() display()
40Full UML Attribute Specification
- The full form of a UML attribute is as
followsvisibility name multiplicity
type initial value property - The property choices are changeable, addOnly, and
frozen
Student Info
-id string -hasGraduated bool false
41Full UML Operation Specification
- The full form of a UML operation is as
followsvisibility name (parameter-list)
return-type property - The property choices are sequential, concurrent,
guarded, and isQuery - The full form of a UML parameter isdirection
name type default-value - The direction choices are in, out, and inout
42UML 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
43Class Relationships
- Generalization
- Association
- Association Class
- Qualified Association
- Ternary Association
- Aggregation
44Generalization
- 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
45Association
- An association is a structural relationship that
specifies that objects of one thing are connected
to objects of another
Faculty
Student
46Association
- Associations can be adorned with a name.
Teaching
Faculty
Student
47Association
- Associations can be adorned with the roles.
teacher
Faculty
Student
learner
48Association
- Associations can be adorned with the
multiplicity.
Faculty
Student
4..
1
49Association Class (relation attributes)
- Each object of association class is one instance
of relationship (link) in an association.
1..
Faculty
Student
4..
Course
50Qualified 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
51Ternary Association
- A ternary association is a structural
relationship that specifies that objects of one
thing are connected to objects of other twos.
Language
Project
Developer
52Aggregation
- 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. doorDoor is part of carCar
X
Y
53Generalization, Aggregation, and Association
- See if the following pairs of classes have
generalization, aggregation or association - Faculty student (as)
- Hospital doctor (as)
- Door Car (ag --ltgt)
- Member Organization (ag --ltgt)
- People student (ge lt-- )
- Circle point (ge --gt)
- Department Faculty (as)
- Employee Faculty (ge lt--)
- Item Printer (ge lt--)
- Account Checking account (ge lt-- )
54Constraints
- Constraints on Object
- Constraints on Relations (Ordering)
- General Constraints (Dependency)
55Constraints on Object
- The constraints restricts the values that objects
can be. - Example No employees salary can exceed the
salary of the employees boss.
salary ltboss.salary
Employee Salary
Employer Salary
56Constraints 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
Author
1
1..
57General 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)
58General Constraints (Dependency)
- Dependencies are often used when one class uses
another class as an argument of the operation - Dependencies are also often used to express
general constraints.
Aerodrome
checkRVR( r Runway )
Runway
member-of
Person
Committee
subset
chair-of
59UML 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
60UML class diagram is not object diagram
- Should we add relation between Bank and
Other-Loans? - Can Bank change Other-loans?
- Instance of Loan and Other-Loans?
Other-Loan
Customer
Bank
Loan
61UML class diagram is not object diagram
Customer
Loan
Bank
Bank-Loan
Other-Loan
62UML class diagram is not data flow chart
bargain
Customer
Dealer
sign
buy
sell
report
Product
Manager
authorize
63UML class diagram is not data flow chart
- Customer, Dealer, and Manager
- Bargain
Product
Customer
Salesman
Dealer
Manager
64How to describe the behaviors/actions of objects
in UML class diagram
?
Person
Based on Use Case analysis
sSN address email
Student
Casher
Faculty
Customer
65How 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
System
Use case
Use case
66Reception
Check
?
Order
Waiting
Failure
Authorized
Success
Failure
67How 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.
68What kind of relationship is generalization
x int y int
Position
Point
Position
Point
People
?
Student
radius double
Rectangle
Circle
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.
69How to keep the consistency of all the constraints
1
1..6
Ticket-buyer
Traveler
1
1
0..6
Dependent
1
70How to keep the consistency of all the constraints
0..1
0..1
Ticket-buyer
Traveler
1
1
0..6
Dependent
0..1
71How to keep the consistency of all the constraints
Traveler
0..1
1
0..6
Ticket-buyer
Dependent