Unit 1: Introduction to Object Oriented Programming
Software Evolution
Ernest Tello, A well known writer in the field of artificial intelligence, compared the
evolution of software technology to the growth of the tree. Like a tree, the software evolution has
had distinct phases “layers” of growth. These layers were building up one by one over the last
five decades as shown in fig. 1.1, with each layer representing an improvement over the previous
one. However, the analogy fails if we consider the life of these layers. In software system each of
the layers continues to be functional, whereas in the case of trees, only the uppermost layer is
functional.
Alan Kay, one of the promoters of the object-oriented paradigm and the principal designer
of Smalltalk, has said: “As complexity increases, architecture dominates the basic materials”. To
build today’s complex software it is just not enough to put together a sequence of programming
statements and sets of procedures and modules; we need to incorporate sound construction
techniques and program structures that are easy to comprehend implement and modify.
, With the advent of languages such as c, structured programming became very popular
and was the main technique of the 1980’s. Structured programming was a powerful tool that
enabled programmers to write moderately complex programs fairly easily. However, as the
programs grew larger, even the structured approach failed to show the desired result in terms of
bug-free, easy-to- maintain, and reusable programs.
Object Oriented Programming (OOP) is an approach to program organization and
development that attempts to eliminate some of the pitfalls of conventional programming
methods by incorporating the best of structured programming features with several powerful new
concepts. It is a new way of organizing and developing programs and has nothing to do with any
particular language. However, not all languages are suitable to implement the OOP concepts
easily.
Procedure Oriented Programming
In the procedure oriented approach, the problem is viewed as the sequence of things to be
done such as reading, calculating and printing such as COBOL, FORTRAN and C. The primary
focus is on functions. A typical structure for procedural programming is shown in fig.1.2. The
technique of hierarchical decomposition has been used to specify the tasks to be completed for
solving a problem.