Object Orientated Design II

processroguishSoftware and s/w Development

Nov 18, 2013 (3 years and 4 months ago)

56 views

Object

Orientated
Design II


Revision

Usually the most natural way to describe a task is to list the
entities involved in the task. These entities are referred to
as
objects
.


What are the two most important properties of an object ?

Answer:

1.
State

2.
Behaviour

Revision

What determines the state of an object ?

Answer:


The
attributes

( the individual components of information
of the object ).



Attributes can be
primitive

values or other
objects
.


What is object behaviour ?

Answer:


Behaviour is the actions that an object can perform ( and
which change the state of an object ).

Revision

What is a class ?

Answer:


A class describes the state (attributes) and behaviour of
an object.


What is an instance of an object ?

Answer:


An instance is an individual occurrence of a class with
specific attribute values and behaviour.



An object is defined as an instance of a class.

Revision

What is a super
-
class ?

Answer:


A super
-
class is a class that contains common attributes
of other classes.


What is a sub
-
class ?

Answer:


A sub
-
class is a class that inherits the attributes and
behaviour of one or more super
-
classes.

Revision

What is behaviour overriding ?

Answer:


If a specific behaviour is defined in a sub
-
class as well as
its super
-
class then the behaviour of the sub
-
class has
priority.


What is a class hierarchy ?

Answer:


This is a diagrammatic view of the classes in a system
e.g.

Revision

Applicance

Machine

Vehicle

Computer

Van

Car

Truck

Mini

Delivery

Limo

Sports

Dump

Pickup

Creating OO Designs

Object
-
Orientated Designs


An object
-
orientated design provides a more natural and
systematic framework for specifying and designing a
programming solution.


Program designs are almost always based on the program
specification i.e. a document describing the exact
requirements a program is expected to achieve.

Creating OO Designs

There are generally four phases to the object
-
oriented design
process:


1.
The identification of objects from the program
specification.

2.
The identification of the attributes and behaviours of
these objects.

3.
The identification of any super
-
classes.

4.
The specification of the behaviours of the identified
classes.

Creating OO Designs

It is imperative that the four phases of the OOD process are
followed systematically to avoid overlooking important
aspects that may affect the final design.


Phase 1


Identifying Objects


The most important and crucial phase of the OOD process is
the identification of objects within the program
specification.

A systematic way to identify possible objects is to
list all the
nouns in the program specification
.

Creating OO Designs

Nouns represent entities or concepts ( usually a person or a thing )

Proper Nouns are best described as names e.g. persons, cities
countries e.g. Jamaica, Mary etc.

Common Nouns generally refer to things or concepts e.g. lecturer, car,
sky.

Once a list of nouns has been determined using the program
specification a set of elimination operations can be used to
streamline the noun/class list.

Creating OO Designs

Elimination Operations


1.
Redundant Classes


Remove classes that are identical to another class but with
different names e.g. pupil would be a redundant class for
student.

2.
Irrelevant Classes


Some classes may have no relevance to the application under
design though they may appear in the program specification
e.g. user, keyboard.


Sections of the program specification that are deemed outside
the scope of the program would also be irrelevant.

Creating OO Designs

Elimination Operations


3.
Attributes and Behaviours


Nouns that are the attributes or behaviours of other objects
can be removed. This are easily identifiable in possessive
phrases e.g.
the student’s book, the name of the dog etc
.

4.
Implementation Constructs


Nouns that refer to the program under implementation should
be avoided e.g. the system, the program, the application etc.

Creating OO Designs

A
final list of candidate classes is identified after the
elimination phase of the object identification.





Phase 2


Identifying Attributes and Behaviours


The next phase in the OOD process is to identify the
attributes and behaviours of the classes remaining after
the object identification phase

If there is any doubt whether a noun should be eliminated the best
course of action is to let it remain. It is easier to eliminate classes
later in the design phases than introduce new classes.

Creating OO Designs

Identifying the attributes of an object requires some general
knowledge as well as knowledge of the problem domain
under consideration.


Note:


Not all attributes may be described in the program
specification. Some common sense is required. Be careful
not to include to many attributes outside the scope of
the program specification unless they are absolutely
necessary. This can lead to cumbersome and
unmanageable designs.

Creating OO Designs

An easy way of identifying the attributes and behaviour of an
object is by highlighting possessive phrases associated
with the object.

e.g.


the A of B



the size of the boy



the name of the book


C’s D



the girl’s name



the car’s color

Creating OO Designs

After a set of attributes have been identified an automatic
set of behaviours can be listed i.e.
constructor, mutator
and accessor

behaviours on the attributes.


Other behaviours can be identified by analysing the program
specification. Specifications may require tasks to be
performed which are better re
-
phrased as behaviours on
an object.


Creating OO Designs

Phase 3


Identifying Super
-
Classes


This phase requires the creation of super
-
classes if it is
determined that classes identified in
Phase 1

contain
common attributes and behaviours
.


These common attributes and behaviours are placed in a
super
-
class.



Creating OO Designs

Phase 4


Specifying the Behaviours


In the final phase of the OOD process the behaviour of
objects are specified.

To specify the behaviour of an object we require the
input
,
output

and
process

of the behaviour (
Note that this is
similar to design process in procedural program design

)


The
process

of the behaviour specification outlines in
pseudo
-
code the task that the behaviour is to perform.



Creating OO Designs

The
output

specifies the result of the behaviour.


The
inputs

to the behaviour specification are values outside
the scope of the object.

Objects have their own attributes which are automatic inputs
to their behaviour. Only values outside the attributes of
the object need be input explicitly


e.g.
the behaviour to modify an attribute will require an
external input i.e.
the new value for the attribute
.