Using the well defined approach and method software engineering is applicable to the development of the software. Using the software engineering more reliable and effective product is developed.
IEEE definition for software engineering:
The application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software, and the study of these approaches; that is, the application of engineering to software.
Approaches for software engineering
There are many approaches used to develop software. In different organization the approach is selected by the management and the term of development.
There are some approaches:
- Waterfall development
- Spiral development
- Incremental development
- Rapid application development’
- Agile development
- Iterative and incremental development
There are other approaches also
- Waterfall Development Approach:
Waterfall model is a sequential model. In this model the development is divided into different modes and each mode has the different tasks with different motto. It is the first model of software engineering that was used. It is very easy to implement and understand. The main advantage of the waterfall model is that the phases are not overlapped with each other.
Different phases of waterfall model:
Requirement gathering and analysis: First find out the entire requirements then understand the requirements and feasibility test for the requirements.
System Design: As the first phase requirement create a design for the software. Design helps in specifying the hardware and software requirements and system architecture is defined.
Implementation: using the system design create the small programs called units then integrate the codes for the next phase. In this phase programs are developed and tested for its functionality.
Testing: Do the testing for all the units that are developed under the implementation. This testing is called the integrated testing and find out all the faults and failures in the testing phase. Report the testing activates.
System development: Now it is the times for releasing after performing the functional and non functional testing deploy the product in the customer environment.
Maintenance: In the maintenance phase met the problems bugs in the client’s end and fix the problems. Update the system on time.
All the phases are followed in downward direction like a waterfall so that it is called waterfall model
- Prototyping model approach:
Prototyping model is basically developed for the customer and the developer. In this model before designing and code developer did not freeze the requirement part. Instead of freezing he meets the requirement of the customer at every point.
There are many steps in the prototyping model
- First developer and customer set the objective and requirements for the software. In this actually developer finds out what actually customer feels and wants.
- They gather the requirements. In this type of model the user is actively involved in every process.
- Now they prepare the preliminary design of the system. First prototype model is constructed in this model
- With the first prototyping model customer checks for the goods and weak in the system. In short customer evolution.
- Then second prototyping model is constructed. In this prototype they again satisfy the customer need which is extracted from the first prototyping model.
- And again construct the design and final prototype is constructed.
Benefits of the waterfall model:
- This model is simple and easy to understand
- Requirements are very well understandable its works perfect in small projects.
- The phases cannot be overlapped with each other.
- This approach is easy to manage.
Issues with the waterfall model:
- Not suitable for the long projects.
- Object oriented projects and complex projects cannot be contracted using this model.
- High risk factor in evolved in this model.
Benefits of the Prototyping model:
- User and easily understand the system that is going to be developed.
- User actively involved in the system constructed.
- Time and cost both are reduced.
- Errors can be easily found out.
Issues with the Prototyping model:
- Developer can misunderstand the user.
- This phase increase the complexity of the project as scope of the system may expand beyond original plans.
- Incomplete problem analysis.
The prototype and waterfall both model has the phases and both the models are for the short life span systems. The main motive of both the models are to reduce the development and maintenance cost. But prototyping model is better for the client point of view. In waterfall model client can only preview the system at the final stage but in prototyping model client can preview the system after the quick design phase. Developers cannot modify the requirements and the specification they can do it at the time of launching but in prototyping he can refine and add the requirements to the system after built. Complexity of the error in waterfall model is more than the prototyping. So for the short life span model prototyping model is suitable.