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
   8   9   10   11   12   13   14   15   16   17   18