As against this, the Object Oriented Programming treats data as a critical element in program development and does not allow it to flow freely through the system. It ties data more closely to the functions that operate on it.
Some of the major characteristics of object oriented programming are:
1. Emphasises on data rather than procedure.
2. Programs divided into “Objects.”
3. Data structures designed in such a manner that they characterize the Objects.
4. Functions that operate on the data of an object are tied together in the data structure.
5. Data is hidden and cannot be accessed by external Functions.
6. Objects can communicate with each other through Functions.
7. New data and Functions can be easily added whenever necessary.
8. “Bottom-up” approach in programming design.
The OOP Concepts
Some of the concepts used extensively in OOP include
1. Objects: Objects are the basic run-time entities in the object-oriented system. Each object contains data and code to manipulate the data.
2. Classes: Classes are user-defined data types and behave like the built-in types of a programming language.
3. Data abstraction and encapsulation: While “Abstraction” refers to the art of representing essential features without including the background details or explanations, “Encapsulation” refers to the wrapping of data and functions into a single unit called “Class”.
4. Inheritance: It is the process by which objects of one class acquire the properties of objects of another class.
5. Polymorphism: It refers to the ability to take more from one form.
6. Dynamic binding: It is associated with polymorphism and inheritance. Dynamic binding means that the code associated with a given procedure call is not known until the time of the call at run-time.
7. Message passing: Message passing involves specifying the name of the object, the name of the function (message) and the information to be sent. The OOSD Approach The OOSD Approach combines the logic of the Systems Development Life Cycle with the power of Object-Oriented Modeling and Programming. OOSD also follows a defined SDLC, the life cycle phases usually being completed with some iterations.
The OOSD Approach
The OOSD Approach combines the logic of the Systems Development Life Cycle with the power of Object Oriented Programming and Modeling. OOSD also follows a defined SDLC, the life cycle phases usually being completed with some iterations. OOSD typically consists of the following steps/activities:
1. Identifying potential problems/opportunities within the organization.
2. Deciding/defining the type of system required by the users
3. Designing the system/modules
4. Program development for modules
5. Evaluation of/ by the users
6. Periodic review and modifications
OOSD — The Advantages
The OOSD has now become a preferred System Design and Implementation tool for both the developers as well as the users. OOSD is now preferred mainly due to the benefits it confers upon the developers and users. Some of the major benefits of OOSD are as follows:
1. The system development is mainly “Modular”. This saves development time, particularly in the contemporary project management environment, where time overruns are the last thing desired by both developers and users.
2. The modular development style also helps contain costs and become cost-effective as cost overruns to is neither desired nor accepted. Reduction in costs is possible due to pre-developed, pm-tested programming modules.
3. System design and implementation are often easier.
4. System maintenance is simpler and easier as minimal coding changes are required to mesh with the pre-developed objects/modules.
5. The system objects are self-contained units. As such, they can be changed or replaced with less disruption to the rest of the system.
6. The collection of existing modules/codes/objects can be used across some applications.
7. Program security is much higher.
OOSD does not necessarily require the use of a specific object-oriented language. OOSD and OOP can be implemented using extended conventional languages such as C or Pascal. However, most developers use OOP languages for the structure and ease they provide. The OOP languages are classified into Object-Based Programming Languages and Object-Oriented Programming Languages, depending upon the features supported by these languages.
OOP has become a buzzword today. OOP applications are becoming important in some areas. While, till date, the most popular and widespread application of the OOP has been in the field of user interface design such as Windows. Some of the other emerging OOP applications are:
1. Real-time systems
2. Simulation and modeling
3. Object-oriented databases
4. Hypertext, hypermedia and expert text
5. Artificial intelligence
6. Expert systems
7. Neural networks
8. Decision support systems
9. CAD/CAM systems
From the managerial perspective, OOSD and OOP help expedite project completion within a shorter time and lesser costs. OOSD and object oriented programming have also been instrumental in enhancing/improving productivity, which by itself is good enough for increased future applications.