Presentation is loading. Please wait.

Presentation is loading. Please wait.

OBJECT-ORIENTEDNESS. What is Object-Orientedness? model system as a collection of interacting objects O-O Modelling  O-O Programming ► similar conceptual.

Similar presentations


Presentation on theme: "OBJECT-ORIENTEDNESS. What is Object-Orientedness? model system as a collection of interacting objects O-O Modelling  O-O Programming ► similar conceptual."— Presentation transcript:

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


Download ppt "OBJECT-ORIENTEDNESS. What is Object-Orientedness? model system as a collection of interacting objects O-O Modelling  O-O Programming ► similar conceptual."

Similar presentations


Ads by Google