When we talk about the object oriented development, we are actually considering the life cycle of software which include analysis, design and implementation of the software. Object oriented development focuses on identifying and organizing the application concept instead of the implementation of the software.
In this section, we will study the object oriented development considering its methodology. We will also study the object oriented development models.
Content: Object Oriented Development
In the early period of object oriented development, the software developers were only emphasizing on the implementation of the software rather than emphasizing on the analysis and design of the software. With this method, the flaws in the application were surfaced late during the implementation which is costlier when compared to the flaws that are surfaced earlier than the implementation.
So, the object oriented development encouraged the software developers to develop and work on the models of the application before implementing them. A model is an abstraction of the software, which show what the software will do after final implementation. So, it becomes easy to identify the flaws and manipulate them at the time of implementation. Let us see how this modelling concept serve when it comes to computation.
- Testing a physical entity before building it: Nowadays a simulator is being developed before developing the complete software. The simulator helps in scaling the actual software, it eases the developers to identify the missing structures, non-essential and essential structures, flaws which can be easily manipulated at the time of implementation.
It is cheaper to develop simulator before developing the entire system as it helps to correct the flaws before the implementation of the actual software starts.
- Communications with customers: The software developers on developing the simulators which pretend to imitate some part of the software or entire software, show it to their customer. Communicating with the customer help in analyzing the requirements of the customer.
- Visualization: When software developers develop simulators and reviews it; it becomes easy for them to make changes before they start implementation.
- Reduction of complexity: The main advantage of modelling is that it helps in dealing with the complex systems. When the software developers prepare model, they figure out the essential features of the application to deal with at a time thereby reduces the complexity of the application.
Object Oriented Methodology
The object oriented development process encourages the graphical representation of the object oriented concept. So, before the software developers start building an application, they build a model of it.
The model is then analyzed to discover the inadequacy and details are added to it during implementation. The object oriented methodology is seamless from analysis to design to implementation. This is because the information that is appended at one stage need not be lost at the next stage.
Let us now discuss the stages of object oriented methodology:
- System Requirement
Before the development of any software starts the software developer and the user of the software communicate to gather the tentative requirements of the software.
Depending on the requirements the software developer constructs a model to analyze the inadequacy in the model. Any problem statement provided by the customer or user of the software is rarely complete.
This stage requires the involvement of both software analyst and the user of the software. As the discussion between them during the analysis of the model would figure out more details that must be added to the actual software.
The model constructed for analysis is an abstraction of the entire system i.e. it shows what will the desired system do. The analysis model does not incorporate information about how the desired system will be implemented?
The analysis model is comprised of two parts that are domain model and application model. The domain model is one which represents the information about the real-world object present in the system. The application model represents information about the segments of application that are visible to the user.
- System Design
This phase includes the implementation of the system. The system designer designs strategies to solve the application problem of the analysis model. The architecture, modules, components and their interfaces are designed at this stage.
The system designer specifies the policies of tackling the problems, optimize the performance characteristics and also designs the tentative data to be operated on the system.
- Class Design
This stage appends more details to the analysis model. At this stage, the developers focus on designing the data structures and function for each class in the system.
At this stage, the classes and the relationship designed between them is implemented using the programming language. The programming must be simple and easy to trace. The implemented system must be flexible to change and must be easy to extend.
Object Oriented Models
To get a better understanding of the system there are three types of models. We have a class model that defines objects and relationship between the objects present in the system. Next, we have a state model that defines the eventual changes that occur in the object over a period of time. At last, we have an interaction model that defines how the objects in the system interact with each other.
- Class Model
A class model is represented by the class diagram that displays the structure and behaviour of each object present in the system. It also displays the relationship of each object with the other object in the system. Each class defines the attributes and operations that will be shared by each object of that class.
The class model prepares the platform for state model and interaction model which will represent the changes in the objects and interaction within the objects
- State Model
A state model is represented by the state diagram. The state model defines the changes that occur to object over the period of time it also defines the events that causes the change to the object.
- Interaction Model
The interaction model displays the interaction between the objects of the system. A series of diagrams i.e. use case diagram, sequence diagram and activity diagram help in elaborating the interaction model.
- Object oriented development defines the life cycle of the system.
- Object oriented development focuses on building a model of the software before starting the implementation and then go on adding detail to the model.
- Object oriented development concept is applicable throughout the systems life cycle i.e. from analysis to design to implementation with the help of three models class model, state model and interaction model.
So, this is all about object-oriented development. We have studied the object oriented methodology and models used during the development of the software which is a process throughout the life of the software.