object-orientedness kcdcc. what is object-orientedness? kcdcc model system as a collection of...

Post on 27-Dec-2015

220 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

OBJECT-ORIENTEDNESSOBJECT-ORIENTEDNESS

KCDCC

WHAT IS OBJECT-ORIENTEDNESS?WHAT IS OBJECT-ORIENTEDNESS?

KCDCC

model system as a collection ofinteracting objects

O-O Modelling <--> O-O Programming

similar conceptual philosophy

different purpose

OBJECTSOBJECTS

KCDCC

what is an object?

individuality

properties

real world thing - something tangible

conceptual / virtual / abstract

all objects have identity

all objects are distinguishable - twins

identity - state - behaviour

(identity - data - operations)

There are many THINGS in the World

From: Sigfried S (1996). Understanding Object-Oriented Software Engineering

The World Our Model

From: Sigfried S (1996). Understanding Object-Oriented Software Engineering 5/26

OBJECTS (cont..)OBJECTS (cont..)

KCDCC

individual, identifiable entity (real or abstract)

with a well defined rolein the problem domain

OBJECT PROPERTIESOBJECT PROPERTIES

KCDCC

identity

state (data)

behaviour (operations/methods)

property of an object which distinguishes it from all other objects

attributes of an object

attributes have values

describes how object acts & reacts

procedures / operations (messages)

OBJECT PROPERTIES (cont.)OBJECT PROPERTIES (cont.)

KCDCC

attributes (data)

behaviour (operations/methods)

descriptor (variable) that holds valuee.g. name, weight, colour, model,

may have same across classese.g. weight

function or procedure that may be applied to or by an object

e.g. Move, Open, Draw, ...

all objects in a class share same operations

CLASSES AND INSTANCESCLASSES AND INSTANCES

KCDCC

instance (object)

class

unique individual

all values unique

individuality from differences in attribute values (but may differ in only location & orientation)

abstraction - generalization

group of objects with common properties

differentiation in attributes

attributes can have ranges / options

From: Sigfried S (1996). Understanding Object-Oriented Software Engineering

Similar THINGS can be GROUPED

10/26

From: Rumbaugh et al. (1991). Object-Oriented Modeling and Design

From: Rumbaugh et al. (1991). Object-Oriented Modeling and Design

CLASS RELATIONSHIPSCLASS RELATIONSHIPS

KCDCC

taxonomical / typological

aggregation

others

a_kind_of, a_type_of, is_a, an_instance_of ako, ato, isa, aio

a_part_of, a_component_of apo, aco

functional, ownership, connectivity, ... provides_access, owned_by, joins

depends on purpose

CLASSIFICATIONCLASSIFICATION

KCDCC

brings order

no simple recipe

knowledge ordered hierarchically

linked to categorization

no perfect class structure & set of objects

difficult - boundaries are fuzzy e.g. where does knee begin and end

difficult to define precisely attributes & values e.g. cup and bowl

different views

CLASSIFICATION (cont.)CLASSIFICATION (cont.)

KCDCC

superclass, subclass, instance

general to specific

fewer members - more specific

ancestors - descendants

parent - child

15/26

INHERITANCEINHERITANCE

KCDCC

superclass, subclass, instance

C1

superclass

instance

superclasssubclass

subclass

A

B

C

ato

ato

aio

recursive

reuse

subclass inherits all properties of superclass

instance special case of subclass

inherit ‘up the line’

if class B subclass of class A and class C subclass of class B then class C inherits from class B and class A

avoids redundancy

From: Rumbaugh et al. (1991). Object-Oriented Modeling and Design

vehicle

landvehicle

watervehicle

amphibiousvehicle

car boat

MULTIPLE INHERITANCEMULTIPLE INHERITANCE

ato ato

atoato ato ato

18/26

GENERALIZATION / SPECIALIZATIONGENERALIZATION / SPECIALIZATION

KCDCC

generalization

specialization

extract common characteristics

create higher-level abstraction

bottom-up

top-down

may constrain ancestor attributes e.g. circle special case of ellipse

must do one of above

add new features - extension e.g. hinged door adds swing behaviour

AGGREGATION / DECOMPOSITIONAGGREGATION / DECOMPOSITION

assembly / component

KCDCC

recursive

structural hierarchy

special form of relationship

aggregate object made up of component objects

treated as one unit - an object

orthogonal concept to generalization/specialization

components may be aggregations

part/whole vs subclass/class

apo, aco vs ako, ato, isa, aio

20/26

KCDCC

lamp

fluorescentlamp

incandescentlamp

ballast starter socket

AGGREGATION / DECOMPOSITIONaddition of components

base cover switch

ato

aco

acoaco

KCDCC

lamp

fluorescentlamp

ballast starter

AGGREGATION / DECOMPOSITIONaddition of components (cont.)

base cover switch

ato

aco

aco

L1

base1 cover1 switch1

aco

ballast1 starter1

isa

isaisa

isa

isaisa

22/26

O-O CONCEPTSO-O CONCEPTS

encapsulation / modularity

KCDCC

classification

inheritance

aggregation

localize data & procedures in a module

taxonomic / typologic hierarchy

makes order

reusability

structural hierarchy

hides / adds details

O-O LANGUAGESO-O LANGUAGES

Smalltalk first popular OOL

C++ strongly typed - lots of housekeeping

Eiffel strongly typed - garbage collection

CLOS (Common Lisp Object System) O-O extension of COMMON LISP

encapsulation not enforced Objective C

Java cleaned-up version of C++ - no pointers distributed

KCDCC

O-O DATABASESO-O DATABASES

databases

KCDCC

O-O programming

OODMS

relationships

used to store persistent data

data doesn’t vanish when program stops execution

objects

not persistent

object information persistent

25/26

IMPACT OF 0-0 SYSTEMS ON MODELLINGIMPACT OF 0-0 SYSTEMS ON MODELLING

CAD systems & applications

KCDCC

data exchange & integration

no standard model for O-O systems

implemented using O-O technology

systems create and manipulate objects

information embedded in objects

use O-O concepts

concepts of state and behaviour fundamental

26/26

top related