Download presentation
Presentation is loading. Please wait.
Published byLaila Hesselgrave Modified over 10 years ago
1
OBJECT-ORIENTEDNESS
2
What is Object-Orientedness? model system as a collection of interacting objects O-O Modelling O-O Programming ► similar conceptual philosophy ► different purpose 2/26
3
Objects 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) 3/26
4
there are many THINGS in the world 5/25 From: Sigfried S (1996). Understanding Object-Oriented Software Engineering
5
the World our Model From: Sigfried S (1996). Understanding Object-Oriented Software Engineering 5/26
6
Objects (cont..) individual, identifiable entity (real or abstract) with a well defined role in the problem domain 6/26
7
Object Properties 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) 7/26
8
Object Properties (cont.) attributes (data) behaviour (operations/methods) ► descriptor (variable) that holds value e.g. name, weight, colour, model, ► may have same across classes e.g. weight ► procedure that may be applied to or by an object e.g. Move, Open, Draw,... ► all objects in a class share same operations 8/26
9
Classes and Instances 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 9/26
10
10/26 similar THINGS can be GROUPED From: Sigfried S (1996). Understanding Object-Oriented Software Engineering 10/25
11
11/26 From: Rumbaugh et al. (1991). Object-Oriented Modeling and Design
12
12/26
13
Class Relationships 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 13/26
14
depends on purpose Classification brings order no simple recipe ► knowledge ordered hierarchically ► no perfect class structure & set of objects ► difficult - boundaries are fuzzy ► difficult to define precisely attributes & values e.g. cup and bowl ► different views 14/26
15
Classification (cont.) ● superclass, subclass, instance ► general to specific ► fewer members - more specific ► ancestors - descendants ► parent - child 15/26 15/25
16
Inheritance 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’ ►avoids redundancy 16/26
17
From: Rumbaugh et al. (1991). Object-Oriented Modeling and Design 17/26
18
vehicle land vehicle water vehicle amphibious vehicle carboat Multiple Inheritance ato 18/26
19
Generalization / Specialization 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 19/26
20
Aggregation / Decomposition assembly / component 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 20/25
21
lamp fluorescent lamp incandescent lamp ballaststarter socket Aggregation / Decomposition addition of components basecover switch ato aco 21/26
22
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 classification inheritance aggregation ► localize data & procedures in a module ► taxonomic / typologic hierarchy ► makes order ► reusability ► structural hierarchy ► hides / adds details 23/26
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 24/26
25
O-O Databases databases 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 25/25
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.