Page 13 - DCAP308_OBJECT_ORIENTED_ANALYSIS_AND_DESIGN
P. 13
Unit 1: Introduction to Object Orientation
Some of the pioneers in the field of software design began to ask whether they could not also Notes
design software using such ‘off-the-shelf’ components. The object-oriented paradigm one could
argue has really evolved in response to this outlook. There are, of course, several differences
with the hardware design process (inevitable, because the nature of software is fundamentally
different from hardware), but parallels can be drawn between many of the defining characteristics
of hardware design and what today’s advocates of good software design recommend. This
methodology provides us with a step-by-step process for software design, a language to specify
the output from each step of the process so that we can transition smoothly from one stage to the
next, the ability to reuse earlier designs, standard solutions that adhere to well-reasoned design
principles and, even the ability to incrementally fix a poor design without breaking the system.
The overall philosophy here is to define a software system as a collection of objects of various
types that interact with each other through well-defined interfaces. Unlike a hardware component,
a software object can be designed to handle multiple functions and can therefore participate in
several processes.
Notes A software component is also capable of storing data, which adds another dimension
of complexity to the process.
The manner in which all of this has departed from the traditional process-oriented view is that
instead of implementing an entire process end-to-end and defining the needed data structures
along the way, we first analyse the entire set of processes and from this identify the necessary
software components. Each component represents a data abstraction and is designed to store
information along with procedures to manipulate the same. The execution of the original processes
is then broken down into several steps, each of which can be logically assigned to one of the
software components.
Did u know? The components can also communicate with each other as needed to complete
the process.
Self Assessment
Fill in the blanks:
9. ........................ is a new way of thinking about software based on abstractions that exist in
the real world as well as in the program.
10. ........................ system is defined as a collection of objects of various types that interact with
each other through well-defined interfaces.
1.3 Object-oriented Themes
There are several themes in an object oriented technology. These themes are not unique to object
oriented systems. We can see some important themes:
1.3.1 Abstraction
Abstraction consists of focusing on the essential, inherent aspects of an entity and ignoring its
accidental aspects. Use of abstraction preserves the freedom to make decisions as long as possible
by avoiding premature commitments to details. Most modern languages provide data abstraction,
LOVELY PROFESSIONAL UNIVERSITY 7