0% found this document useful (0 votes)
3 views42 pages

Lecture - 6

The document discusses class compatibility and polymorphism in object-oriented modeling, explaining how subclasses (subtypes) can replace their base classes while maintaining functionality. It provides examples of geometric shapes and file types to illustrate these concepts, emphasizing the benefits of polymorphism for flexible and reusable system design. Additionally, it outlines the process of identifying classes, associations, attributes, operations, and inheritance in the context of developing a graphic editor.

Uploaded by

farhanabid327426
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views42 pages

Lecture - 6

The document discusses class compatibility and polymorphism in object-oriented modeling, explaining how subclasses (subtypes) can replace their base classes while maintaining functionality. It provides examples of geometric shapes and file types to illustrate these concepts, emphasizing the benefits of polymorphism for flexible and reusable system design. Additionally, it outlines the process of identifying classes, associations, attributes, operations, and inheritance in the context of developing a graphic editor.

Uploaded by

farhanabid327426
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 42

Class Compatibility

A class is behaviorally compatible with


another if it supports all the operations of the
other class

Such a class is called subtype

A class can be replaced by its subtype


…Class Compatibility
Derived class is usually a subtype of the base
class

It can handle all the legal messages


(operations) of the base class

Therefore, base class can always be replaced


by the derived class
Example – Class Compatibility
Shape
color
vertices
move
setColor
draw

Circle Triangle
radius Line angle
length
draw draw
computeArea draw computeArea
getLength
Example – Class Compatibility
File
size

open
print

ASCII File PS File


… PDF File …

print print
… print …

Polymorphism
In general, polymorphism refers to existence
of different forms of a single entity

For example, both Diamond and Coal are


different forms of Carbon
Polymorphism in OO Model
In OO model, polymorphism means that
different objects can behave in different ways
for the same message (stimulus)

Consequently, sender of a message does not


need to know exact class of the receiver
Example – Polymorphism
draw Shape
View
draw

Line Circle Triangle


draw draw draw
Example – Polymorphism
print File
Editor
print

ASCII File PDF File PS File


print print print
Polymorphism – Advantages
Messages can be interpreted in different ways
depending upon the receiver class

draw Shape
View
draw

Line Circle Triangle


draw draw draw
Polymorphism – Advantages
New classes can be added without changing
the existing model

draw Shape
View
draw

Square Line Circle Triangle


draw draw draw draw
Polymorphism – Advantages
In general, polymorphism is a powerful tool
to develop flexible and reusable systems
Object-Oriented Modeling

An Example
Problem Statement
Develop a graphic editor that can draw
different geometric shapes such as line, circle
and triangle. User can select, move or rotate
a shape. To do so, editor provides user with a
menu listing different commands. Individual
shapes can be grouped together and can
behave as a single shape.
Identify Classes
 Extract nouns in the problem statement

Develop a graphic editor that can draw


different geometric shapes such as line, circle
and triangle. User can select, move or rotate
a shape. To do so, editor provides user with a
menu listing different commands. Individual
shapes can be grouped together and can
behave as a single shape.
…Identify Classes
 Eliminate irrelevant classes

Editor – Very broad scope

User – Out of system boundary


…Identify Classes
 Add classes by analyzing requirements

Group – required to behave as a shape


“Individual shapes can be grouped together
and can behave as a single shape”

View – editor must have a display area


…Identify

Classes
Following classes have been identified:

Shape • Group
Line • View
Circle
Triangle
Menu
Object Model – Graphic Editor
Shape Group

Line Menu

Circle
View

Triangle
Identify Associations
 Extract verbs connecting objects

• “Individual shapes can be grouped together”


Group consists of lines, circles, triangles
Group can also consists of other groups
(Composition)
… Identify Associations
 Verify access paths

View contains shapes


View contains lines
View contains circles
View contains triangles
View contains groups
(Aggregation)
… Identify Associations
 Verify access paths

Menu sends message to View


(Simple One-Way Association)
Object Model – Graphic Editor
Menu View Shape
nn
nn

nn nn nn
Line nn Circle Triangle Group
nn
nn nn
Identify Attributes
 Extract properties of the object
From the problem statement

Properties are not mentioned


…Identify Attributes
 Extract properties of the object
From the domain knowledge

• Line • Triangle
– Color – Color
– Vertices – Vertices
– Length – Angle
• Circle • Shape
– Color – Color
– Vertices – Vertices
– Radius
…Identify Attributes
 Extract properties of the object
From the domain knowledge

• Group • Menu
– noOfObjects – Name
• View – isOpen
– noOfObjects
– selected
Object Model – Graphic Editor
Menu View Shape
name noOfObjects color
isOpen selected n vertices

n n n
Line n Circle Triangle Group
length radius angle noOfObjects
n
n
n
Identify Operations
 Extract verbs connected with an object

• Develop a graphic editor that can draw


different geometric shapes such as line,
circle and triangle. User can select,
move or rotate a shape. To do so, editor
provides user with a menu listing
different commands. Individual shapes
can be grouped together and can
behave as a single shape.
… Identify Operations
 Eliminate irrelevant operations

Develop – out of system boundary

Behave – have broad semantics


…Identify Operations
 Following are selected operations:

• Line • Circle
– Draw – Draw
– Select – Select
– Move – Move
– Rotate – Rotate
…Identify Operations
 Following are selected operations:

• Triangle • Shape
– Draw – Draw
– Select – Select
– Move – Move
– Rotate – Rotate
…Identify Operations
 Following are selected operations:

• Group • Menu
– Draw – Open
– Select – Select
– Move – Move
– Rotate – Rotate
…Identify Operations
 Extract operations using domain knowledge

• View
– Add – Select
– Remove – Move
– Group – Rotate
– Show
View
Menu noOfObjects Shape
selected
name color
isOpen vertices
add()
remove()
open() n draw()
group()
select() select()
show()
move() move()
select()
rotate() rotate()
move()
rotate() n

n n
Line n Triangle Group
n
length angle noOfObjects
Circle
n
draw() radius draw() draw()
n
n draw()
Identify Inheritance
 Search “is a kind of” by looking at keywords
like “such as”, “for example”, etc

• “…shapes such as line, circle and triangle…”


– Line, Circle and Triangle inherits from Shape
…Identify Inheritance
 By analyzing requirements

“Individual shapes can be grouped together


and can behave as a single shape”
Group inherits from Shape
Refining the Object Model
Application of inheritance demands an
iteration over the whole object model

In the inheritance hierarchy,


All attributes are shared
All associations are shared
Some operations are shared
Others are overridden
…Refining the Object Model
 Share associations

View contains all kind of shapes

Group consists of all kind of shapes


…Refining the Object Model
 Share attributes

Shape – Line, Circle, Triangle and Group


Color, vertices
…Refining the Object Model
 Share operations

Shape – Line, Circle, Triangle and Group


Select
Move
Rotate
…Refining the Object Model
 Share the interface and override
implementation

Shape – Line, Circle, Triangle and Group


Draw
View
Menu noOfObjects Shape
selected
name color
isOpen vertices
add()
remove()
open() nn draw() nn
group()
select() select()
show()
move() move()
select()
rotate() rotate()
move()
rotate()

Line Circle Triangle Group


length radius angle noOfObjects

draw() draw() draw() draw()


View
Menu noOfObjects Shape
selected
name color
isOpen vertices
add()
remove()
open() n draw()
group()
select() select()
show()
move() move()
select()
rotate() rotate()
move()
rotate() n

n n
Line n Triangle Group
n
length angle noOfObjects
Circle
n
draw() radius draw() draw()
n
n draw()

You might also like