Presentation is loading. Please wait.

Presentation is loading. Please wait.

Object Orientation and Its Benefits

Similar presentations


Presentation on theme: "Object Orientation and Its Benefits"— Presentation transcript:

1 Object Orientation and Its Benefits
Object orientation is a modeling and development methodology based on object-oriented (OO) concepts. Definition of Object Orientation A set of design and development principles based on conceptually autonomous computer structures known as objects. Each object represents a real- world entity with the ability to interact with itself and with other objects. 5

2 The Evolution of OO Concepts
From traditional to object-oriented programming (OOP) Before OOP, data and procedures were isolated from each other. Data were treated as the passive component, while procedures manipulated the data as the active component. Procedural languages (e.g., COBOL) encouraged the rigid distinction between data and procedure. In an OOP environment, the programmer asks to perform operations on themselves. OO concepts first appeared in some programming languages and set the stage for more refined OO concepts. 7

3 The Evolution of OO Concepts
Main Objectives of Object-Oriented Programming Languages (OOPL) To provide an easy-to-use software development environment. To provide a powerful software modeling tool for applications prototyping. To decrease development time by reducing the amount of code. To improve programmer productivity by making that code reusable. 8

4 The Evolution of OO Concepts
Important Attributes of OO Environment The data set is no longer passive. Data and procedures are bound together, creating an object. The object has an innate ability to act on itself. 9

5 Object-Oriented Concepts
Objects: Components and Characteristics An object is an abstract representation of a real-world entity that has a unique identity, embedded properties, and the ability to interact with other objects and itself. Figure Real World Student Objects 11

6 Object-Oriented Concepts
Object Identify The object’s identity is represented by an object ID (OID), which is unique to that object. The OID is assigned by the system at the moment of the object’s creation and cannot be changed under any circumstance. The OID can be deleted only if the object is deleted, and that OID can never be reused. 12

7 Object-Oriented Concepts
Attributes (Instance Variables) Objects are described by their attributes, known as instance variables. (See Table 11.2) Attributes have a domain. The domain logically groups and describes the set of all possible values that an attribute can have. An attribute can be single valued or multivalued. Attributes may reference one or more other objects. 13

8 Object Attributes Table 11.2 14

9 Object-Oriented Concepts
Object State The object state is the set of values that the object’s attributes have at a given time. If we change the object’s state, we must change the values of the object attributes. To change the object’s attribute values, we must send a message to the object. This message invokes a method. 15

10 Object-Oriented Concepts
Messages and Methods Every operation performed on an object must be implemented by a method. Methods represent real-world actions and are equivalent to procedures in traditional programming languages. Every method is identified by a name and has a body. The body is composed of computer instructions written in some programming language to represent a real-world action. 16

11 Depiction Of An Object Figure 11.2 17

12 Object-Oriented Concepts
Messages and Methods To invoke a method you send a message to the object. A message is sent by specifying a receiver object, the name of the method, and any required parameters. The internal structure of the object cannot be accessed directly by the message sender. The ability to hide the object’s internal details (attributes and methods) is known as encapsulation. An object may send messages to change or interrogate another object’s state. (See Figure 11.3) 18

13 Objects Send Messages To Each Other
Figure 11.3 19

14 Object-Oriented Concepts
Classes Objects that share common characteristics are grouped into classes. A class is a collection of similar objects with shared structure (attributes) and behavior (methods). Each object in a class is known as a class instance or object instance. (See Figure 11.4) Example: STUDENT class (See Figure 11.5) 20

15 Class Illustration Figure 11.4 21

16 Representation Of The Class Student
Figure 11.5 22

17 Object-Oriented Concepts
Protocol The class’s collection of messages, each identified by a message name, constitutes the object or class protocol. The protocol represents an object’s public aspect; i.e., it is known by other objects as well as end users. The implementation of the object’s structure and methods constitutes the object’s private aspect. A message can be sent to an object instance or the class. When the receiver object is a class, the message will invoke a class method. 23

18 Public and Private Aspects Of An Object
Figure 11.6 24

19 OO Summary: Object Characteristics
Figure 11.7 25

20 Object-Oriented Concepts
Superclasses, Subclasses, and Inheritance Classes are organized into a class hierarchy. Example: Musical instrument class hierarchy (Figure 11.8) Piano, Violin, and Guitar are a subclass of Stringed instruments, which is, in turn, a subclass of Musical instruments. Musical instruments defines the superclass of Stringed instruments, which is, in turn, the superclass of the Piano, Violin, and Guitar classes. Inheritance is the ability of an object within the hierarchy to inherit the data structure and behavior (methods) of the classes above it. 26

21 Musical Instruments Class Hierarchy
Figure 11.8 27

22 Object-Oriented Concepts
Two variants of inheritance: Single inheritance exists when a class has only one immediate superclass above it. Most of the current OO systems support single inheritance. When the system sends a message to an object instance, the entire hierarchy is searched for the matching method in the following sequence: Scan the class to which the object belongs. If the method is not found, scan the superclass. The scanning process is repeated until either one of the following occurs: The method is found. The top of the class hierarchy is reached without finding the message. 28

23 Single Inheritance Figure 11.9 29

24 Object-Oriented Concepts
Two variants of inheritance: Multiple inheritance allow a class to be derived from several parent superclasses located above that class. Single inheritance exists when a class has only one immediate (parent) superclass above it. Figure Multiple Inheritance 30

25 Motor Vehicle And Bicycle Instance Variables
Figure 11.11 32

26 Object-Oriented Concepts
Method Overriding and Polymorphism We may override a superclass’s method definition by redefining the method at the subclass level. (See Figure 11.12) Polymorphism allows different objects to respond to the same message in different ways. (See Figure 11.13) 33

27 Employee Class Hierarchy Method Override
Figure 11.12 34

28 Employee Class Hierarchy Polymorphism
Figure 11.13 35

29 Object-Oriented Concepts
Abstract Data Types A data type describes a set of objects with similar characteristics. All conventional programming languages use a set of predefined data types, known as conventional data types or base data types. Abstract data types (ADT) describe a set of similar objects. An ADT differs from a conventional data type in that: The ADT’s operations are user-defined. The ADT does not allow direct access to its internal data representation or method implementation. 36

30 Object-Oriented Concepts
Object Classification A simple object contains only single-valued attributes and none of its attributes refer to another object. A composite object contains at least one multivalued attribute and none of its attributes refer to another object. Movie object with Actors attribute A compound object contains at least one attribute that references another object. Student Object with Professor Attribute A hybrid object contains a repeating group of attributes, and at least one of the repeating attributes refers to another object. An associative object is used to represent a relationship between two or more objects. 37

31 Characteristics of an OO Data Model
An Object-Oriented Data Model Must: Support the representation of complex objects as described above. Be extensible; i.e., it must be capable of defining new data types as well as the operations to be performed on them. Support encapsulation; i.e., the data representation and the method’s implementation must be hidden from external entities. Exhibit inheritance; an object must be able to inherit the properties (data and methods) of other objects. Support the notion of object identity (OID). 47

32 Characteristics of an OO Data Model
Summary of OODM Components The OODM models real-world entities as objects. Each object is composed of attributes and a set of methods. Each attribute can reference another object or a set of objects. The attributes and the methods implementation are hidden, or encapsulated, from other objects. Each object is identified by a unique object ID (OID), which is independent of the value of its attributes. Similar objects are described and grouped in a class that contains the description of the data and the method’s implementation. The class describes a type of object. Classes are organized in a class hierarchy. Each object of a class inherits all properties of its superclasses in the class hierarchy. 48

33 Comparing The OO And E-R Model Components
Table 11.3 49

34 Object Schemas: The Graphical Representation of Objects
Figure Shared Representation For All Objects Of the Class Person 50

35 State Of A Person Object Instance
Figure 11.15 51

36 Defining Three Abstract Data Types
Figure 11.16 52

37 Figure 11.17 Object Representation For Instances Of The
Class Person With ADTs Figure 11.17 53

38 Object Schemas: The Graphical Representation of Objects
The object space or object schema is the equivalent of a database schema or a relational schema at a given time. Figure 11.18 54

39 Figure 11.19 Referential Sharing Of Objects
56

40 Object Schemas: The Graphical Representation of Objects
Class-Subclass Relationships Figure Class Hierarchy 57

41 Employee Object Representation
Figure 11.21 58

42 Object Schemas: The Graphical Representation of Objects
Interobject Relationships: Attribute-Class Link A attribute-class or interobject relationship is created when an object’s attribute references another object of the same or different class. Relationship Representation: Representing 1:M Relationships Representing M:N Relationships Representing M:N Relationships with an Intersection Class 59

43 Class Hierarchy For The EDLP Retail Corporation
Figure 11.22 60

44 Object Schemas: The Graphical Representation of Objects
Representing 1:M Relationships Related classes are enclosed in boxes to make relationships more noticeable. The double line on the box’s right side indicates that the relationship is mandatory. Connectivity is indicated by labeling each box. 61

45 Representing The 1:M Relationship
Figure 11.23 62

46 Representing The 1:1 And 1:M Relationships
Figure 11.24 62

47 Employee-Dependent Relationship
Figure 11.25 62

48 Object Schemas: The Graphical Representation of Objects
Representing M:N Relationships Figure 11.26

49 Object Schemas: The Graphical Representation of Objects
Representing M:N Relationships with an Intersection Class Figure Representing the M:N Relationship With Associated Attributes

50 Representing The M:N Relationship With Intersection Class
Figure 11.28

51 Figure 11.29 Object Space Representation

52 Object Schemas: The Graphical Representation of Objects
Late and Early Binding: Use and Importance With late binding the data type of an attribute is not known until execution time or run-time. Late binding allows two different object instances of the same class to contain values of different data types for the same attribute. Early binding allows the database to check the data type for each of the attribute’s values at compilation or definition time.

53 Inventory Table With Predetermined (Base) Data Types
Figure 11.30 72

54 Inventory Class With Early Binding
Figure 11.31 72

55 OODM Inventory Class With Late Binding
Figure 11.32 73

56 Object Schemas: The Graphical Representation of Objects
Support for Versioning Versioning is an OODM feature that allows us to track the history of change in the state of an object. It is a very powerful modeling feature, especially in a CAD environment. 74

57 OODM and Previous Data Models
Object, Entity, and Tuple An OODM object has additional characteristics such as behavior, inheritance, and encapsulation. Such characteristics make OO modeling much more natural than E-R and relational modeling. 75

58 An Invoice Representation
Figure 11.33 76

59 OODM and Previous Data Models
Class, Entity Set, and Table Class is a more powerful concept that allows not only the description of the data structure but also the description of the behavior. A class allows both the concept and the implementation of abstract data types. Encapsulation and Inheritance An object belonging to a class inherits all the properties of its superclasses. Encapsulation hides the data representation and the method’s implementation from other objects and the user. 77

60 OODM and Previous Data Models
Object ID Object ID is not supported in either the E-R model or the relational model. The hierarchical and the CODASYL models support some form of ID. Relationships Relationships in an OODM can be of two types: interclass references or class hierarchy inheritance. E-R and relational models use a value-based relationship approach. 78

61 OODM and Previous Data Models
Access E-R and relational models use an ad hoc, set- oriented query language. OODM is suited to support both navigational and set-oriented access. 79

62 Object-Oriented DBMS Figure 11.34 80

63 Table 11.4 The Thirteen OODBMS Rules
82

64 How OO Affects Database Design
OO database design approach provides both the data identification and the procedures or data manipulation to be performed. OO database design forces us to think of data and procedures as a self-contained entity. OO design is iterative and incremental in nature. DBA’s role is likely to change with more programming responsibilities. Lack of standards affects OO database design. 83

65 OODBMS: Advantages and Disadvantages
More semantic information. Support for complex objects. Extensibility of data types. Improved performance with efficient caching. Versioning. Faster development and easy maintenance through inheritance and reusability. Technology-driven product for next generation DBMS. Potential to integrate DBMSs into a single environment. 84

66 OODBMS: Advantages and Disadvantages
Strong opposition from the established players. Lack of theoretical foundation. Retrogressive to the old pointer systems. Lack of standard ad hoc query language. Lack of business data design and management tools. Steep learning curve. Lack of resources. 85

67 How OO Concepts Have Influenced the Relational Model
New Features for Extended Relational (Object/Relational) Model Extensibility of new user-defined (abstract) data types Complex objects Inheritance Procedure calls (rules or triggers) System-generated identifiers (OID surrogates) 86

68 How OO Concepts Have Influenced the Relational Model
Philosophy that guides the relational model’s enhancements: Semantic and object-oriented concepts are necessary to support the new generation of applications. These concepts can and must be added to the relational model. The benefits of the relational model must be preserved to protect the investment in relational technology and to provide downward compatibility. 86

69 The Next Generation of DBMS
The next generation of DBMS is likely to incorporate features borrowed from: Object-oriented database systems Artificial intelligence systems Expert systems Distributed database The Internet


Download ppt "Object Orientation and Its Benefits"

Similar presentations


Ads by Google