Home | | Software Design | Software Design: The Object model

Chapter: Software Design : General Design Fundamentals

Software Design: The Object model

Object-oriented technology is built upon a sound engineering foundation, whose elements we collectively call the object model. The object model encompasses the principles of abstraction, encapsulation, modularity, hierarchy, typing, concurrency, and persistence.

The Object model

 

Object-oriented technology is built upon a sound engineering foundation, whose elements we collectively call the object model. The object model encompasses the principles of abstraction, encapsulation, modularity, hierarchy, typing, concurrency, and persistence.

 

 

How you differentiate the object oriented model and traditional structured?

 

OOM requires a different way of thinking about decomposition, and it produces software architectures that are largely outside the realm of the structured design culture. These differences arise from the fact that structured design methods build upon structured programming, whereas object-oriented design builds upon object-oriented programming. Unfortunately, object-oriented programming means different things to different people.

 

Foundations of the Object Model

 

Object-oriented design methods have evolved to help developers exploit the expressive power of object-based and object-oriented programming languages, using the class and object as basic building blocks. Levy adds that the following events have contributed to the evolution of object-oriented concepts:

 

 

·        "Advances in computer architecture, including capability systems and hardware support for operating systems concepts

 

·        Advances in programming languages, as demonstrated in Simula, Smalltalk, CLU, and Ada

 

·        Advances in programming methodology, including modularization and information hiding"

 

 

We would add to this list three more contributions to the foundation of the object model:

 

  Advances in database models

 

  Research in artificial intelligence

 

  Advances in philosophy and cognitive science

 

Elements of the Object Model

 

They further suggest that there are five main kinds of programming styles, here listed with the kinds of abstractions they employ:

 

  Procedure-oriented Algorithms

 

  Object-oriented Classes and objects

 

  Logic-oriented Goals, often expressed in a predicate calculus

 

  Rule-oriented If-then rules

 

  Constraint-oriented Invariant relationships

 

 

Rule-oriented programming would be best for the design of a knowledge base, and procedure-oriented programming would be best suited for the design of computation-intense operations. From our experience, the object-oriented style is best suited to the broadest set of applications; indeed, this programming paradigm often serves as the architectural framework in which we employ other paradigms. Each of these styles of programming is based upon its own conceptual framework. Each requires a different mindset, a different way of thinking about the problem. For all things object-oriented, the conceptual framework is the object model.

 

There are four major elements of this model:

 

Abstraction

 

Encapsulation

 

Modularity

 

Hierarchy

 

By major, we mean that a model without any one of these elements is not object-oriented.

 

There are three minor elements of the object model

 

·                 Typing

 

·                 Concurrency

 

·                 Persistence

 

By minor, we mean that each of these elements is a useful, but not essential, part of the object Model.

 

Abstraction

 

An abstraction denotes the essential characteristics of an object that distinguish it from all other kinds of objects and thus provide crisply defined conceptual boundaries, relative to the perspective of the viewer.List the different types of abstraction

 

Entity abstraction

 

An object that represents a useful model of a problem domain or solution-domain entity

 

Action abstraction

 

An object that provides a generalized set of operations, all of which perform the same kind of function

 

Virtual machine abstraction

 

An object that groups together operations that are all used by some superior level of control, or operations that all use some junior-level set of operations.

 

Coincidental abstraction

 

An object that: packages a set of operations that have no relation to each other

 

Encapsulation

 

Encapsulation is the process of compartmentalizing the elements of an abstraction that constitute its structure and behavior; encapsulation serves to separate the contractual interface of an abstraction and its implementation.

 

Modularity

 

Modularity is the property of a system that has been decomposed into a set of cohesive and loosely coupled modules.

 

Hierarchy

 

Hierarchy is a ranking or ordering of abstractions.

 

Typing

 

Typing is the enforcement Of the class of an object, such, that objects of different types may not be interchanged, or at the most, they may be interchanged only in very restricted ways.

 

Concurrency

 

Concurrency is the properly that distinguishes an active object from one that is not active.

 

Persistence

 

Persistence is the property of an object through which its existence transcends time (i.e. the object continues to exist after its creator ceases to exist) and/or space (i. e. the objects location moves from the address space in which it was created).


Study Material, Lecturing Notes, Assignment, Reference, Wiki description explanation, brief detail
Software Design : General Design Fundamentals : Software Design: The Object model |


Privacy Policy, Terms and Conditions, DMCA Policy and Compliant

Copyright © 2018-2024 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.