Presentation is loading. Please wait.

Presentation is loading. Please wait.

OBJECT-ORIENTEDNESS KCDCC. WHAT IS OBJECT-ORIENTEDNESS? KCDCC model system as a collection of interacting objects O-O Modelling O-O Programming similar.

Similar presentations


Presentation on theme: "OBJECT-ORIENTEDNESS KCDCC. WHAT IS OBJECT-ORIENTEDNESS? KCDCC model system as a collection of interacting objects O-O Modelling O-O Programming similar."— Presentation transcript:

1 OBJECT-ORIENTEDNESS KCDCC

2 WHAT IS OBJECT-ORIENTEDNESS? KCDCC model system as a collection of interacting objects O-O Modelling O-O Programming similar conceptual philosophy different purpose

3 OBJECTS 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)

4 There are many THINGS in the World From: Sigfried S (1996). Understanding Object-Oriented Software Engineering

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

6 OBJECTS (cont..) KCDCC individual, identifiable entity (real or abstract) with a well defined role in the problem domain

7 OBJECT 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)

8 OBJECT PROPERTIES (cont.) KCDCC attributes (data) behaviour (operations/methods) descriptor (variable) that holds value e.g. name, weight, colour, model, may have same across classes e.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

9 CLASSES 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

10 From: Sigfried S (1996). Understanding Object-Oriented Software Engineering Similar THINGS can be GROUPED 10/26

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

12

13 CLASS 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

14 depends on purpose CLASSIFICATION 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

15 CLASSIFICATION (cont.) KCDCC superclass, subclass, instance general to specific fewer members - more specific ancestors - descendants parent - child 15/26

16 INHERITANCE KCDCC superclass, subclass, instance C1 superclass instance superclass subclass A B C 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

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

18 vehicle land vehicle water vehicle amphibious vehicle carboat MULTIPLE INHERITANCE ato 18/26

19 GENERALIZATION / 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

20 AGGREGATION / 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

21 KCDCC lamp fluorescent lamp incandescent lamp ballaststarter socket AGGREGATION / DECOMPOSITION addition of components basecover switch ato aco

22 KCDCC lamp fluorescent lamp ballaststarter AGGREGATION / DECOMPOSITION addition of components (cont.) basecover switch ato aco L1 base1cover1 switch1 aco ballast1starter1 isa 22/26

23 O-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

24 O-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

25 O-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

26 IMPACT 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


Download ppt "OBJECT-ORIENTEDNESS KCDCC. WHAT IS OBJECT-ORIENTEDNESS? KCDCC model system as a collection of interacting objects O-O Modelling O-O Programming similar."

Similar presentations


Ads by Google