Advantages and Disadvantages of various Software Models
Software Model is an abstract representation of the process. Each phase in the software model consists of various activities to develop software products gradually. It also specifies the order in which each phase must be executed.
These are various software engineering models and their advantages and disadvantages –
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
1. Waterfall Model :
It requires a well understanding and knowledge of requirements and technology related to it.
- It is very easy and convenient to implement the waterfall model.
- For implementation of small systems, it is very useful.
- It may cause some confusion if some of the changes are made at some phases.
- Firstly, the requirement analysis is done and in the beginning, sometimes it is not possible to state all the requirements explicitly.
- Only at the end, the customer can see the working model of the project.
- Linear nature of the waterfall model induces blocking states.
2. Spiral Model :
It is developed in iterations and used for risk management. Hence, at new iterations, the requirements can be recognized.
- By construction of prototype, the working model of the system can be designed quickly.
- During the development stage, Project can be refined by developer and user.
- Involvement of user in the project.
- It is very Cost-effective and easy to maintain.
- Risk analysis and reduction can be done systematically and in a proper manner.
- Well planned and efficient project development.
- In series of increments, Software gets developed.
- If communication with customer is not well or proper then it results in total project failure or non-success or project that might leads to omission of the project.
3. Incremental Model :
It is a process of software development and focuses on short successive iterations.
- If less number of people are available for project development, then this model is very useful.
- Technical risks can be managed effectively and in a well-organized manner.
- The core or final product can be shown to the customer within a small duration of time.
- Highly and fully committed developers and customers are required for this project.
- Adopting new technologies and developing the project using this model is very difficult and problematic.
- Heavy resources can be required.