CmpE297A-OOAD

advertisement
Advanced Object-Oriented Analysis & Design
Dr. M.E. Fayad, Professor
Computer Engineering Department, Room #283I
College of Engineering
San José State University
One Washington Square
San José, CA 95192-0180
http://www.engr.sjsu.edu/~fayad
2003
SJSU -- CmpE
L15-S1
Relationships
Lesson 15:
Relationships
2
2003
SJSU -- CmpE M.E. Fayad
L15-S2
Relationships
Lesson Objectives

Objectives



Discuss UML Associations
Discuss UML – aggregation
Understand UML- inheritance
Understand How to identify UML
Artifacts
3
2003
SJSU -- CmpE M.E. Fayad
L15-S3
Relationships
Relationships

A relationship is a connection among things

Three most important relationships in OO
– dependencies
– generalizations
– associations

Different kind of lines are used to distinguish
various kinds of relationships
2003
SJSU -- CmpE M.E. Fayad
4
L15-S4
Relationships
Dependencies (1)

Dependencies are using relationships

State that a change in specification of one thing
(the supplier) may affect another thing that uses
it (the client), but not necessary the reverse

Graphically, it is rendered as a dashed directed
line
5
2003
SJSU -- CmpE M.E. Fayad
L15-S5
Relationships
Dependencies (2)
Dependent Class
Independent
Class
Client
Supplier
Order
Book
2003
SJSU -- CmpE M.E. Fayad
L15-S6
6
Relationships
Associations (1)

An association shows a two-way relationship between
objects (instances) of two or more classes and requiring
special implementation to ensure integrity.

A particular instance of an association is often called a link.

Associations between classes are required if the objects
need to communicate.

Associations are often named, and have role-names for
each side of the link.
7
2003
SJSU -- CmpE M.E. Fayad
L15-S7
Relationships
Types of Association

Unary association
– both ends of an association circle back to the same
class

Binary association
– an association that connects exactly two classes

N-ary association
– an association that connects more than two classes
8
2003
SJSU -- CmpE M.E. Fayad
L15-S8
Relationships
Associations (2)


Name
– an association can have a name, and the name is
used to describe the nature of the relationship
Role
– when a class participates in an association, it has a
specific role that it plays in that relationship
– a role is just the face the class at the near end of the
association presents to the class at the other end of
the association
9
2003
SJSU -- CmpE M.E. Fayad
L15-S9
Relationships
Associations (3)
Association Name
Car
model
year
# of doors
Person
Vehicle Registration
registeredCar
owner
name
age
address
Roles Names
10
2003
SJSU -- CmpE M.E. Fayad
L15-S10
Relationships
Associations (4)
Multiplicity
Name
1..*
Owns by
*
Person
employee
Company
employer
11
Role Name
2003
SJSU -- CmpE M.E. Fayad
L15-S11
Relationships
More on Associations

Simple example:
Window
displays
0..*
GeomFigure

An association has a name and a numerical specification (multiplicity
indication) of how many objects on one side of the association are
connected with how many objects on the other side.

Associations are called use relationships – even if this may seem
somewhat cheeky in the example below
Company
employs
Employer
2003
0..*
Person
Employee
SJSU -- CmpE M.E. Fayad
L15-S12
12
Relationships
More on Associations

Associations are directed (one way), bidirectional, and
undirected.

UML makes no distinction between bidirectional and
undirected associations.
Multiplicity
Stereotype
RelationName
{Constraints}
Class1
role1
2003
*
Class2
Role2: interface
SJSU -- CmpE M.E. Fayad
L15-S13
13
Relationships
More on Associations
2003

Recursive association: A class has a relation with itself.

It is also possible to model associations that are valid only
temporarily “stereotype or temporary”

Constraints may be used to restrict the relation under
specific aspects.

A role name describes how the object is seen by the
opposite object in the association.

An association can be described in more detail by means of
constraints, tagged values, and stereotypes.

Stereotypes are noted before or above the relation name,
constraints, and tagged values after or below the name.
SJSU -- CmpE M.E. Fayad
L15-S14
14
Relationships
More on Associations

Directed association is a one-way association, in
which one side knows the other, but not vice versa.

Multiplicity Specification:
– 1
exactly one
– 0, 1
zero or one
– 0..4
between zero and four
– 3, 7
either three or seven
15
2003
SJSU -- CmpE M.E. Fayad
L15-S15
Relationships
More on Associations

More multiplicity specifications:
– 0..*
greater than or equal to zero (default)
– *
ditto
– 1..*
greater than or equal to one
– 0..3, 7, 9..* between zero and three, or exactly seven, or
greater than or equal to nine.
16
2003
SJSU -- CmpE M.E. Fayad
L15-S16
Relationships
More Multiplicities
 Multiplicity
– how many objects may be connected across
an instance of an association
– can be a range of values or an explicit value
•
•
•
•
•
exactly one
zero or one (optional)
zero or more (many)
one or more (mandatory)
numerically specified
1
0..1
0..*
1..*
m..n
17
2003
SJSU -- CmpE M.E. Fayad
L15-S17
Relationships
More on Associations

Recursive associations are associations in which one
class is involved.
has
Patient
Employee
name
staffNo
roomNo
manager
office clerk
relative
*
*
1
Person
leads
18
reports to
2003
SJSU -- CmpE M.E. Fayad
L15-S18
Relationships
N-ary Association

An n-ary association is like a common (binary)
association, except that more than two association
roles involved in it.
N-ary
association
Class1
Class2
Ternary
association
19
Class3
2003
SJSU -- CmpE M.E. Fayad
L15-S19
Relationships
More on n-ary Association
Reservation
Train
date
trainNo
1..*
1
Seat
carriageNo
seatNo
1..*
Passenger
name
title
2003
SJSU -- CmpE M.E. Fayad
Ternary
association
L15-S20
20
Relationships
More on Associations
• Recursive Associations
• N-ary Associations
• Attributed Associations (Association Class)
• Association Constraints
• Qualified Associations
• Derived Associations
• Directed Associations
• Ordered Associations
• Realization/Refinements
• Dependency
2003
SJSU -- CmpE M.E. Fayad
L15-S21
21
Relationships
More on Associations
 Associations are usually bidirectional
 Allows each object involved in the relationship
to refer to the object to which it is related.
 Bidirectional association means at the
relationship has an inverse.
 Associations do not have to be bidirectional.
2003
SJSU -- CmpE M.E. Fayad
L15-S22
22
Relationships
Man
husband
Screen
Woman
Marriage
Windows
wife
Association Type
One-to-One
Window
One-to-Many
(One-to-Zero-or-More)
Nets
Authorization
User
Many-to-Many
Car
Trailer
Zero or One
2003
SJSU -- CmpE M.E. Fayad
L15-S23
23
Relationships
Association Type
Square
Line
Sides
Specified the # of instances
on the “many” side
Secure Room
Male
Person
Occupants
TraditionalFamily
father
Female
mother
Specify the possible # of
instances using “or”
Ternary relationship
children
Child
2003
24
SJSU -- CmpE M.E. Fayad
L15-S24
Relationships
Association Class
Server
Connection
Client
Connection
baudRate
protocol
wireType
disconnect
rerouteLink
• These attributes don’t belong
in either the Client or Server
class.
• They are attributes of the
connection itself.
• The association class can have behaviors as well as attributes.
2003
SJSU -- CmpE M.E. Fayad
L15-S25
25
Relationships
Aggregation & Composite

Aggregation is a special form of association.

Aggregation is used when the relationship is
“part/whole” or “contains/is-part-of”

Aggregation is transitive and operations on
“whole” often cascade down to “parts”.
26
2003
SJSU -- CmpE M.E. Fayad
L15-S26
Relationships
Aggregation & Composite
Server
Aggregation
Computer
“whole”
52
“part”
Client
*
CPU
Disk Drive
Keyboard
Mouse
27
2003
SJSU -- CmpE M.E. Fayad
L15-S27
Relationships
Aggregation & Composite
2003

Special diamond symbol used on “whole” side to indicate
aggregation.

Aggregation is an anti-symmetric that is, if A is part of B,
then B is not part of A.

DO NOT confuse aggregation with generalization

An essential property of aggregates is that the whole acts
as a proxy for its parts.

A composition is a strict form of aggregation, in which the
parts are existence-dependent on the entirely
SJSU -- CmpE M.E. Fayad
L15-S28
28
Relationships
Aggregation
Whole
Car
Anywhere from
four to many
1
1
1
1
1
4..*
Body
Motor
Wheel
29
2003
Part
SJSU -- CmpE M.E. Fayad
L15-S29
Relationships
Aggregation & Composite
Aggregation
Part
Entirely
Composition
ExistenceDependentPart
30
2003
SJSU -- CmpE M.E. Fayad
L15-S30
Relationships
Aggregation Problem

Mr. Clinton’s hand is part-of Mr. Clinton & Mr.
Clinton is part-of U.S.A.
2003

Therefore:

Mr. Clinton’s hand is part-of U.S.A.
SJSU -- CmpE M.E. Fayad
L15-S31
31
Relationships
Keypad
Cash Register
Example
*
Number Keys
Total Key
display
Subtotal Key
display
display
drawer
Drawer
Display
32
2003
SJSU -- CmpE M.E. Fayad
L15-S32
Relationships
Attributes

Attributes are simply the information associated with the
object.

The data type used to hold the attributes is often a
fundamental type, such as int or char.

Sometimes the attribute can be a non-fundamental type,
such as String type and Address type.

Avoid using attributes which might be better implemented
as an association to a new class.
33
2003
SJSU -- CmpE M.E. Fayad
L15-S33
Relationships
More on Attributes

For example:
 x
Using Association
Using Attributes
TV
String model
String serialNum
String manName
TV
product
String model
String serialNum *
Manufacturer
manufacturer
String name
Address address
• Why? Using an association to a Manufacturer class, the name
and address of each manufacturer will be stored in one place rather
than in each of the TV objects made by that manufacturer.
34
2003
SJSU -- CmpE M.E. Fayad
L15-S34
Relationships
More on Attributes

If attributes only make sense in some instances of a given class but not in
others. It will make sense to split the single class into two classes or more.
Employee
String name
float salary
Employee
String name
float salary
long clearanceNum
Split into two
classes
inheritance
ClearedEmployee
• Not all employees have clearances
long clearanceNum
35
openVault()
2003
SJSU -- CmpE M.E. Fayad
L15-S35
Relationships
Generalization (1)

A relationship between a general thing (called
the superclass or parent) and a more specific
kind of that thing (called the subclass or child)
– also known as the “is-a-kind-of” relationship

A child
– is substitutable for the parent
– inherits the properties of its parents
2003
SJSU -- CmpE M.E. Fayad
36
L15-S36
Relationships
Generalization (2)

A class
– may have zero, one, or more parents
– that has no parents and has one or more children is
called a root class or a base class
– that has no children is called a leaf class

Inheritance
– a class with exactly one parent uses single inheritance
– a class with more than one parent uses multiple
inheritance

2003
Graphically, it is rendered as a solid directed line
with a large open arrowhead, pointing to the
parent
37
SJSU -- CmpE M.E. Fayad
L15-S37
Relationships
Inheritance
2003

When a relationship exists between classes such that
lower-level classes (called subclasses) share certain
attributes and behaviors which can be defined once
in a higher-level class (called superclasses).

Subclasses inherit properties (attributes and
behaviors) of its superclass and then adds its own
unique properties and modifies any inherited
properties.

This is called Generalization or Inheritance.
SJSU -- CmpE M.E. Fayad
L15-S38
38
Relationships
Base and Leaf Classes
Base Class
Account
Bank book
Checking
Loan
39
Leaf Class
2003
SJSU -- CmpE M.E. Fayad
L15-S39
Relationships
More on Inheritance
Window
paintWindow
size
icon
bitmaps
textWindow
contents
40
2003
SJSU -- CmpE M.E. Fayad
L15-S40
Relationships
Single and Multiple Inheritance
Account
Bank book
Checking
Loan
Passenger Car
Service
Taxi
Private Car
Multiple
inheritance
Single
inheritance
2003
SJSU -- CmpE M.E. Fayad
L15-S41
41
Relationships
Aggregation vs. Inheritance
2003
Aggregation
Inheritance
Instances of distinct classes
Instances of a single class
“a-part-of”
“a-kind-of” or “is-a” (AKO)
(APO)
Contains
superclass-of
Aggregate + parts
Superclass + subclass
“and” relationship
“or” relationship
Propagated only if specified
Inheritance
SJSU -- CmpE M.E. Fayad
42
L15-S42
Relationships
Discussion Questions
2003
•
What are the other terms for attributes & operations?
•
Define an object and a class in UML
•
What is an association? Give examples
•
Associations are usually bidirectional. Please describe.
•
Describe the basic difference between aggregation and inheritance.
What do they have in common?
•
What do you think “multiple inheritance” means?
•
Which type of association is more likely to yield savings in the amount
of code required for implementation? why?
•
Define the process of identifying objects, classes, inheritance,
associations & aggregation, attributes, and behaviors
•
Define Polymorphism with examples
•
What do we mean by saying “Model/View/Controller”?
SJSU -- CmpE M.E. Fayad
L15-S43
43
Relationships
Download