Software engineer or developer when developed or make a plan to develop a software, then follow some model. Software engineer can’t develop the software without follow these models. There are different types of model use in the development of software, such as below,
Waterfall Model / Linear sequential model
Waterfall Model/Linear sequential model suggests a systematic sequential approach to the software development that begins with the system level and progresses through analysis, design, coding, testing, and maintenance.
- The waterfall model paradigm is a definite and important place in software engineering work.
- Maximum used for all Developers and Customer.
- It also provides a template into which methods for analysis, design, coding, testing and maintenance.
- The waterfall model is the oldest and the most widely used paradigm for software engineering.
- No backtracking and wait for long time.
- It is often difficult for the customer to state all requirements explicitly.
- If undetected until the working program is reviewed can be disastrous.
- Leads to blocking states.
- Its have a time spent.
The incremental model combines elements of the linear sequential model with the iteration philosophy of prototyping. It is applying a linear sequence in a staggered fashion as calendar time progresses. This produces a deliverable increment of the software.
- Customer can use the early increment as a form of prototype and gain experience.
- Lower risk.
- It has provided a platform for evaluation by the user.
- It used in big and small project.
- Very costly.
- It is a very slow process.
- Long time.
A customer defines a set of general objectives for software but does not identify detailed such as input, processing, or output requirements. In other cases, the developer may be unsure of the efficiency of an algorithm, the adaptability of an operating system or the form that human machine interaction should take. In these and many other situations, a prototyping paradigm may offer the best approach.
- Prototype model is built to serve as a mechanism for defining requirements.
- It can be an effective paradigm for software engineering.
- Customer and developers both are like the prototyping paradigm.
- The actual software is engineered with an eye toward quality & maintainability
- There is no alternative but to start again, smarting but smarter and build a redesigned version.
- It may be too slow, too big & awkward in use.
- Creating time is very short.
- It likes a demo version.
Considering the above advantages and disadvantages of the models, I would like to say the incremental model is the best model because the incremental paradigm might deliver basic file management, editing and document production functions in the first increment, sophisticated editing and document production capabilities in the second increment and spelling and grammar checking in the third increment. Moreover, advanced page layout capability in the fourth increment. Therefore, I think the incremental model is the best model for developing of Software.