DEFINING OOP AND HOW IT CAME INTO BEING. OOP which fully means Object Oriented Programming. It is a programming paradigm that uses object consisting of data fields and methods together with their interaction to design applications and computer programs. The design concentrate on objects upon which functions or procedure itself. Object oriented programming is a very reliable method of programming because the re-usability of code and self contained nature of the program component. Object oriented programming method started in the early 1960s.
A breakthrough involving instances and object was achieved at MIT with the PDF-1. The first programming language to use object was Simula 67 which was designed for the purpose of creating simulation by Kristen Nygaard and Ole-Johan Dahl in Norway. The term object oriented programming was first used by Xerox PARC in then small talk programming language. Object oriented programming as used in the small talk is dynamic as the objects could be changed; created or deleted as against the static systems that are commonly used before.
Object oriented programming became the dominant programming methodology in the early and mid 1990s. when programming languages supporting the techniques became widely available examples of which are visual Fox Pro 3. 0 and Delph 1. 0 its dominance was further enhanced by the raising popularity of graphical user interfaces which rely heavily upon OOP techniques. OOP as a programming language has some features that relate with it which are mentioned below: The feature of object oriented programming are: Emphasis is on data rather than procedures.
Data is hidden and cannot be accessed by external functions, this is referred to as data encapsulation only a restricted set of operations can be done on the hidden member of the class by executing special functions called Methods. The advantages of using data encapsulation comes when the implementation of the class changes but the interface remains the same. Inheritance- Specific classes are made from more general ones. The derived class inherits all the features of its parent or base class and is free to add features of its own. Dynamic Bonding of Functions Calls I. Polymorphism- This allows the programme to treat derived class members just like their parent class members. It is Object-Oriented. It is Simple. It is Robust. It is Multithreaded. It is Architecturally Neutral. It has High Performance. It is Dynamic. DISCUSSION ON OOP CONCEPTS AS IT RELATES TO SOFTWARE DESIGN AND SOFTWARE DEVELOPMENT. The following are the basic concepts used in object-oriented programming. Objects Classes Data abstraction Modularity Inheritance Polymorphism Objects It can represent a person, a bank account or any item that a program can handle. When a program is executed, the objects interact by sending messages to one nother. For example, if ‘customer’ and ‘account’ are two objects in a program, then the customer object may send message to account object requesting for a bank balance. Each object contains data and code to manipulate data. Objects can interact without having to know details of each other’s data or code. It is sufficient to know the type of massage accepted and the type of response returned by the objects. Classes We have just mentioned that objects contain data and function or code to manipulate that data. The entire set of data and code of an object can be made a user-defined data type with the help of a class.
In fact objects are variables of type class. Once a class has been defined, we can create any number of objects associated with that class. For example, mango, apple and orange are members of class fruit. If fruit has been defined as a class, then the statement fruit mango, will create an object mango belonging to the class fruit. Data Abstraction Abstraction refers to the act of representing essential features without including the background details. To understand this concept more clearly, take an example of ‘switch board’. You only press particular switches as per your requirement. You eed not know the internal working of these switches. What is happening inside is hidden from you. This is abstraction, where you only know the essential things to operate on switch board without knowing the background details of switch board. Data Encapsulation Encapsulation is the most basic concept of OOP. It is the way of combining both data and the functions that operate on that data under a single unit. The only way to access the data is provided by the functions (that are combined along with the data). These functions are considered as member functions in C++. It is not possible o access the data directly. If you want to reach the data item in an object, you call a member function in the object. It will read the data item and return the value to you. The data is hidden, so it is considered as safe and far away from accidental alternation. Data and its functions are said to be encapsulated into a single entity. Modularity The act of partitioning a program into individual components is called modularity. It gives the following benefits. It reduces its complexity to some extent. It creates a number of well-defined, documented boundaries within the program.
Module is a separate unit in itself. It can be compiled independently though it has links with other modules. Modules work quite closely in order to achieve the program’s goal. Inheritance It is the capability to define a new class in terms of an existing class. An existing class is known as a base class and the new class is known as derived class. Number of examples can be given on this aspect. For example, a motor cycle is a class in itself. It is also a member of two wheelers class. Two wheelers class in turn is a member of automotive. The automotive is an example of base class and two heelers is its derived class. In simple words, we can say a motor cycle is a two wheeler automotive. C++ supports such hierarchical classification of classes. The main benefit from inheritance is that we can build a generic base class, i. e. , obtain a new class by adding some new features to an existing class and so on. Every new class defined in that way consists of features of both the classes. Inheritance allows existing classes to be adapted to new application without the need for modification. Polymorphism Polymorphism is a key to the power of OOP. It is the concept that supports the apability of data to be processed in more than one form. For example, an operation may exhibit different behavior in different instances. The behavior depends upon the types of data used in the operation. Let us consider the operation of addition. For two numbers, the operation will generate a sum. If the operands are strings then the operation would produce a third string by concatenation. Currently because of its high productivity and reliability, Object oriented programming is still the only programming method for producing a maintainable software and as such it will be in use for a long time from now.
The long term future use of OOP lies in UML as a 4aL. Currently UML is the only truly general purpose 4aL available and the OOP paradigms emphasis on abstraction is ideally suited to 4aLs because it allows independence from the local computing environment. In the next 6-11 years. It is expected that 3aL programs will be as rare as assembly programmer today, currently the only vehicle for that shift is the OOP paradigm. When it comes to software design, OOP is used due to its ability to identify real life problems than procedures or functions through the use of objects.
Also a rise in productivity and reliability because of the re-usability of code and the self-contained nature of program components makes OOP easier to use, in software design the use of more advanced methods based upon OOP may provide benefits. In these methods each data structure is contained solely with one program module. The idea is to keep all information about the data structure within the one module so that the changes to its design and implementation can be localized. Access to data is provided by a set of functions controlled by a module but visible outside it.
Such methods are called “data encapsulation” which is a feature of OOP and the use of an Abstract Data Type (ADT) OOP meets ups with the General requirements of software designing which are Reliability, Maintainability, Portability, Readability, Performance and Storage Saving. Concentrating on OOP as it relates to Software Development. It provides a good frame work for good libraries where supplied software components can be easily adapted and modified by the programmer, this is particularly useful in developing Graphical User Interface (GUI). ?