Search This Blog

Saturday, 15 October 2011

Merits of OO Methodology

0 comments
Merits of OO Methodology
Object-oriented design involves identification and implementation of different classes of objects and their behavior in a real world problem. The objects in a software system closely correspond and relate to the objects in the real world in a one-to-one manner. Thus, it is easier to design and implement a system consisting of objects.
OOP languages provide a programmer the ability to create modular and reusable code using which formulating a new program can be done easily by composition and modification of some existing modules. The co-operation among different objects is achieved through exchange of messages.
Merits:
Since the objects are autonomous entities and share their responsibilities only by executing methods relevant to the received messages, each object lends itself to greater modularity. Flexibility is also gained by being able to change or replace modules without disturbing other parts of the code. Moreover, the independence of each object eases development and maintenance of the program. The following are some of the merits of Object Oriented methodology:
  1. Information hiding and data abstraction increase reliability and help decouple the procedural and representational specification from its implementation.
  2. Dynamic binding increases flexibility by permitting the addition of new classes of objects without having to modify the existing code.
  3. Inheritance coupled with dynamic binding enhances the reusability of code, thus increasing the productivity of a programmer.
  4. Many OO languages provide a standard class library that can be extended (extend ability) by the users, thus saving a lot of coding and debugging effort.
  5. The advantages of object orientation also includes: shorter development time, high degree of code sharing and malleability (can be molded to any shape).
Demerits:
The runtime cost of dynamic binding mechanism is the major disadvantage of object-oriented languages. The following were the demerits of adopting object-orientation in software development in the early days of computing (some remain forever):
  • Compile time and Run time overhead
  • Re-orientation of software developer to object-orientated thinking
  • Requires the master over the following areas:
    • Software Engineering
    • Programming Methodologies
  • Benefits only in long run while managing large software projects, at least moderately large ones.

Leave a Reply