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).
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.