History
The object-oriented paradigm took its shape from the initial concept of a new programming approach, while the interest in design and analysis methods came much later.
Alan Kay and his research group at Xerox PARK developed the Dynabook personal computer in 1970, as well as the first pure object-oriented programming language (OOPL) - Smalltalk - for programming the Dynabook.
Grady Booch produced a paper titled Object Oriented Design in the 1980s, which primarily offered a design for the computer language Ada. In subsequent editions, he expanded his concepts to include a whole object-oriented design technique.
Coad applied behavioral concepts to object-oriented approaches in the 1990s.
Object Oriented Analysis
The technique of defining software engineering needs and producing software specifications in terms of a software system's object model, which consists of interacting objects, is known as object-oriented analysis (OOA).
The primary distinction between object-oriented analysis and other types of analysis is that requirements in an object-oriented approach are organized around objects that incorporate both data and functions. They are based on real-world items with which the system interacts. Traditional analytic approaches analyze the two parts - functions and data - independently.
The primary tasks in object-oriented analysis (OOA) are:
- Identifying objects
- Organizing the objects by creating an object model diagram.
- Defining the internals of the objects or object attributes.
- Defining the behavior of the objects.
- Describing how the objects interact with each other.
Object Oriented Design
Object-Oriented Design (OOD) is the process of putting the conceptual model created during object-oriented analysis into action. In OOD, technology-independent ideas in the analytical model are mapped onto implementing classes, constraints are defined, and interfaces are established, yielding a model for the solution domain, i.e., a full description of how the system will be constructed using concrete technologies.
In general, the implementation details comprise:
- Restructuring the class data (if necessary).
- Method implementation, i.e., internal data structures and algorithms.
- Control implementation.
- Association implementation.
Object Oriented Programming
Object-oriented programming (OOP) is a programming paradigm that is built on objects (which include both data and methods) and tries to combine the benefits of modularity and reusability. Objects, which are often instances of classes, are used to develop applications and computer systems by interacting with one another.
The following are the key characteristics of object-oriented programming:
- The bottom-up approach in program design.
- Programs are organized around objects, grouped in classes.
- Focus on data with methods to operate upon the object’s data.
- Interaction between objects through functions.
- Reusability of design through the creation of new classes by adding features to existing classes.
OOAD vs OOP
OOAD is not a programming language, it is a way of defining and analyzing a system, its actors(users), functionalities(use cases), and desired output in SLDC.
Whereas OOP is a way of writing that design into code in SLDC.
Finally
Some hate it, Some love it, and Some envy it..!