Foundations
of object model
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
• Advances in database models
• Research in artificial
intelligence
• Advances in philosophy and cognitive science
Some Definitions
Object-oriented
programming
is a method of implementation in which programs are organized as cooperative
collections of objects, each of which represents an instance of some class, and
whose classes are all members of a hierarchy of classes united via inheritance
relationships.
Object-oriented analysis is a method of analysis that examines requirements from the
perspective of the classes and objects found in the vocabulary of the problem
domain.
Object-oriented design is a method of design encompassing the process of
object-oriented
Decomposition and a notation for depicting both logical and
physical as well as static and dynamic models of the system under design.
Applylng the Object Model
Under thisà Benefits of the
Object Model
The object model offers a number
of significant benefits that other models simply do not provide.
First, the use of the object
model helps us to exploit the expressive power of object-based and object-oriented
programming languages.
Further larger improvements have
been achieved by taking advantage of class hierarchies in the design process.
This is often called object-oriented design and this is where the greatest
benefits of using C++ have been found.
Next, the use of the object model
encourages the reuse not only of software but of entire designs, leading to the
creation of reusable application frame-works. We have found that object-oriented
systems are often smaller than equivalent non-object-oriented implementations.
Not only does this mean less code to write and maintain, but greater reuse of
software also translates into cost and schedule benefits.
The use of the object model
produces systems that are built upon stable intermediate forms, which are more
resilient to change. This also means that such systems can be allowed to evolve
over time, rather than be abandoned or completely
redesigned in response to the first major change in requirements.
The object model has proven
applicable to a wide variety of problem domains.
Air traffic control
Animation
Mathematical analysis
Banking and insurance software
Music composition
Business data processing
Office automation
Operating systems
Command and control systems
Computer aided design
Reusable software components
Computer aided education Robotics
Computer integrated manufacturing
Software development environments
Databases
User interface design
Image recognition
VLSI design
The use of object-oriented
development may be ill-advised for some domains, not for any technical reasons,
but for nontechnical ones, such as the absence of a suitably trained staff or a
good development environment.