The Object Oriented Paradigm
The Object Oriented paradigm (OOP) provides many features which help
in effective software development and maintenance and hence reduce costs.
A few of those features are listed below :
-
Flexibility of design - designing of software is very flexible.
You could almost say too flexible!
-
Reusability, easy interfacing and library support - these features
are a result of the abstraction of object modules which the OOP offers.
-
Referential Dependency - it depends on the declaration of a module
remaining unchanged. It may be argued that this puts constraints during
the modification of a program but what we should keep in mind is that modifications
can be enforced on modules after inheriting them. Inheritance of modules
provided by the OOP helps in solving this tricky problem.
-
Data Integrity Dependency - this is supported by the information
hiding features provided by the OOP.
-
Security - Security of the Virtual Machine is also provided for
by OOP to a certain extent. But, even in languages which do not have the
security at the heart of the issue, we can add security features by abstraction
and inheritance. For instance in C++ (which provides pointers to address
memory directly), we can use the concept of 'smart pointers' which can
be easily implemented using the OOP.
-
Good Debugging - The OOP provides a mixed bag of features as far
as debugging goes. On one hand, abstraction provides a good mechanism to
implement good debugging features and on the other hand, polymorphism and
inheritance can make debugging a difficult job.
Observation:
After comparing the features of programming languages usually required
by different types projects , i.e. large and small, it was observed that
the Object Oriented programming paradigm was well suited to the development
of large projects.
Next page of this document (Analysis of Programming
Paradigms - The Top Down Paradigm)
Previous Page of this document (Comparison
between Small and Large Projects)
Back to main page
If you have comments or suggestions, email me at hccheng@cs.iastate.edu