Download presentation
Presentation is loading. Please wait.
Published byWilfred Jared Stafford Modified over 9 years ago
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
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.