Comparative Analysis of Different types of models in SDLC
This is the most frequently asked question in the interviews related to software industry; so thought to write something about it. “SDLC – Software Development Life Cycle” is a structure imposed on the development of software product. Software engineering consists of systematic, disciplined methodology towards the development, operation and maintenance of software product.
The basic activities (phases) involved in the SDLC are;
- Determination of systems Requirements
- Design of the system
- Development (coding) of software (implementation)
Waterfall model is a traditional or conventional SDLC model used by software industries from start. It is a sequential development approach where development is flowing steadily downwards through the all phases of SDLC. In Waterfall model project is divided into below sequential phases;
Requirement Analysis—>Design—>Implementation —>Testing—>Maintenance
A tight control is maintained over the life of the project via extensive written documentation, formal reviews, approvals / sign off by the user / customer.
- The output is generated after each stage, so high level of visibility is maintained
- This is a simplest model to implement
- Deadlines can be set for the completion of each phase and evaluation can be done from time to time, to check if project is going as per milestones
- This model is preferred when Quality is an Important factor as compared to time and cost
- You cannot go back a step is a biggest disadvantage of waterfall in today’s highly volatile atmosphere; if the design phase has gone wrong, things can get very complicated in the implementation phase.
- Even a small change in any previous stage can cause a big problem for rest phases
- It is very difficult to freeze the customer specifications, requirements
Iterative Waterfall model is a new method which is result of drawbacks of Waterfall model. In this model the project is divided into small parts called as iterations. Each iteration is nothing but a mini- waterfall process with feedback from one phase to another.
- It is much better model for software process as it allows feedback to proceeding stage
- It can be used in a project wherein the requirements are not clearly understood at start
- This model is not easy to manage
- No clear milestones and no stage is really finished
Spiral model is developed with combination of advantages of top-down and bottom –up approach. This is a Meta model used by other models. The main focus is on Risk assessment by breaking the project into smaller segments and providing more ease of change during the development process.
Planning—>Risk Analysis —>Engineering—>Evaluation
These are the phases involved in the Spiral model evaluation.
- Errors can be eliminated in early phase of project development cycle
- Better productivity through reuse capabilities
- It can be a costly model to use
- Not suitable for smaller project as cost of risk analysis is greater
V process model means Verification and Validation model. In this model Testing of the product is planned in parallel with a corresponding phase of development. Few benefits of the model are ;
- Proactive defect tracking – that is defects are found at early stage
- Avoids the downward flow of the defects
- Works well for small projects where requirements are easily understood
- The V-Shaped model should be chosen when ample technical resources are available
Agile development approach focuses on adaptability and response time to changing environment. It involves recursive work pattern means nothing but modifications can be possible at any stage of process.
- The main advantage is the backward scalability in Agile. It provides the flexibility to error check.
- It prefers working software over comprehensive documentation
- It has customer collaboration as compared to contract negotiation
- Preferred choice nowadays for small scale projects
- Typically interaction is daily or periodic that have no fixed agenda and only key actions are recorded
Do you know or want to add any more???????