object orientation and its benefits 4object orientation is a modeling and development methodology...

69
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.

Upload: melvin-francis

Post on 31-Dec-2015

225 views

Category:

Documents


2 download

TRANSCRIPT

Object Orientation and Its BenefitsObject Orientation and Its Benefits

Object orientation is a modeling and development methodology based on object-oriented (OO) concepts.

Definition of Object OrientationA 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.

The Evolution of OO ConceptsThe 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.

The Evolution of OO ConceptsThe 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.

The Evolution of OO ConceptsThe 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.

Object-Oriented ConceptsObject-Oriented Concepts

Objects: Components and CharacteristicsAn 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 11.1 Real World Student Objects

Object-Oriented ConceptsObject-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.

Object-Oriented ConceptsObject-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.

Object Attributes

Table 11.2

Object-Oriented ConceptsObject-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.

Object-Oriented ConceptsObject-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.

Depiction Of An Object

Figure 11.2

Object-Oriented ConceptsObject-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)

Objects Send Messages To Each Other

Figure 11.3

Object-Oriented ConceptsObject-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)

Class Illustration

Figure 11.4

Representation Of The Class Student

Figure 11.5

Object-Oriented ConceptsObject-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.

Public and Private Aspects Of An Object

Figure 11.6

OO Summary: Object Characteristics

Figure 11.7

Object-Oriented ConceptsObject-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.

Musical Instruments Class Hierarchy

Figure 11.8

Object-Oriented ConceptsObject-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.

Single Inheritance

Figure 11.9

Object-Oriented ConceptsObject-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 11.10 Multiple Inheritance

Motor Vehicle And Bicycle Instance Variables

Figure 11.11

Object-Oriented ConceptsObject-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)

Employee Class Hierarchy Method Override

Figure 11.12

Employee Class Hierarchy Polymorphism

Figure 11.13

Object-Oriented ConceptsObject-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.

Object-Oriented ConceptsObject-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.

Characteristics of an OO Data ModelCharacteristics 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).

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.

Characteristics of an OO Data ModelCharacteristics of an OO Data Model

Comparing The OO And E-R Model Components

Table 11.3

Object Schemas: The Graphical Representation of Objects

Object Schemas: The Graphical Representation of Objects

Figure 11.14 Shared Representation For All Objects Of the Class Person

State Of A Person Object Instance

Figure 11.15

Defining Three Abstract Data Types

Figure 11.16

Object Representation For Instances Of The Class Person With ADTs

Figure 11.17

The object space or object schema is the equivalent of a database schema or a relational schema at a given time.

Object Schemas: The Graphical Representation of Objects

Object Schemas: The Graphical Representation of Objects

Figure 11.18

Figure 11.19 Referential Sharing Of Objects

Class-Subclass Relationships

Object Schemas: The Graphical Representation of Objects

Object Schemas: The Graphical Representation of Objects

Figure 11.20 Class Hierarchy

Employee Object Representation

Figure 11.21

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

Object Schemas: The Graphical Representation of Objects

Object Schemas: The Graphical Representation of Objects

Class Hierarchy For The EDLP Retail Corporation

Figure 11.22

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.

Object Schemas: The Graphical Representation of Objects

Object Schemas: The Graphical Representation of Objects

Representing The 1:M Relationship

Figure 11.23

Representing The 1:1 And 1:M Relationships

Figure 11.24

Employee-Dependent Relationship

Figure 11.25

Representing M:N Relationships

Object Schemas: The Graphical Representation of Objects

Object Schemas: The Graphical Representation of Objects

Figure 11.26

Representing M:N Relationships with an Intersection Class

Object Schemas: The Graphical Representation of Objects

Object Schemas: The Graphical Representation of Objects

Figure 11.27 Representing the M:N Relationship With Associated Attributes

Representing The M:N Relationship With Intersection Class

Figure 11.28

Figure 11.29 Object Space Representation

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.

Object Schemas: The Graphical Representation of Objects

Object Schemas: The Graphical Representation of Objects

Inventory Table With Predetermined (Base) Data Types

Figure 11.30

Inventory Class With Early Binding

Figure 11.31

OODM Inventory Class With Late Binding

Figure 11.32

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.

Object Schemas: The Graphical Representation of Objects

Object Schemas: The Graphical Representation of Objects

OODM and Previous Data ModelsOODM 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.

An Invoice Representation

Figure 11.33

OODM and Previous Data ModelsOODM 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.

OODM and Previous Data ModelsOODM 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.

OODM and Previous Data ModelsOODM 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.

Object-Oriented DBMSObject-Oriented DBMS

Figure 11.34

Table 11.4 The Thirteen OODBMS Rules

How OO Affects Database DesignHow 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.

OODBMS: Advantages and Disadvantages

OODBMS: Advantages and Disadvantages

Advantages 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.

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.

OODBMS: Advantages and Disadvantages

OODBMS: Advantages and Disadvantages

How OO Concepts Have Influenced the Relational Model

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)

How OO Concepts Have Influenced the Relational Model

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.

The Next Generation of DBMSThe 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