126.96.36.199 analyse the advantages and disadvantages of waterfall, agile and spiral models
Models of Software Development Life Cycle
When creating software, we go through several stages, we define these stages in the system development life cycle.
Software Development Life Cycle (SDLC) - a series of events that occur with the system in the process of its creation and further use.
There are many SDLC models, in the middle school you learnt the most general model.
Key stages of the software development life cycle
The following are the key stages of the cycle:
- Analysis. This is the first step, when the team decide what the software needs to do. The main point is to think about what the user will want from the program. At this stage, it might be a good idea to ask other people what they want from the software. Who is going to use it? What information do they need to input? What information or data does it need to output? Consider existing similar systems or determine how the current system works.
- Design - the team work out the details of the program by breaking it down into smaller chunks. This includes thinking about the visual appearance and the programming behind the software. The team will use pseudocode and diagrams to work out how the program should go.
- Implementation - the program code is written. Good pseudocode allows the implementation stage to be relatively easy. The code is normally written in a high-level language.
- Testing - this involves testing the program under various conditions to make sure it is going to work. You need to think about what devices it could be used on and what might cause the program to crash.
- Evolution - the software is ready to be launched, but after it has been launched you will need to think about how the software evolves. Software needs to be maintained to ensure it works on new systems. Smartphone apps are constantly being maintained to make sure they work on the latest smartphones and computers.
Models of the software development life cycle
Waterfall (Cascade) model
The waterfall model was devised in the early days of software development. It gets its name because once a phase is finished; it can’t be revisited, just as water always flows naturally downhill, never uphill, so the progress through the phases of conception, initiation, analysis, high – level, low – level design, testing and implementation, and maintenance.
Advantages of waterfall model:
- This model is simple and easy to understand and use.
- In this model phases are processed and completed one at a time.
- Waterfall model works well for smaller projects where requirements are very well understood.
Disadvantages of waterfall model:
- Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage.
- No working software is produced until late during the life cycle.
- High amounts of risk
- Not a good model for complex and object-oriented projects.
- Poor model for long projects.
When to use the waterfall model
- This model is used only when the requirements are very well known, clear and fixed.
- Product definition is stable.
- Technology is understood.
- There are no ambiguous requirements
- Ample resources with required expertise are available freely
- The project is short.
Agile model believes that every project needs to be handled differently and the existing methods need to be tailored to best suit the project requirements. In Agile, the tasks are divided to time boxes (small time frames) to deliver specific features for a release.
The advantages of the Agile Model:
- Promotes teamwork and cross training.
- Resource requirements are minimum.
- Minimal rules, documentation easily employed.
- Easy to manage.
- Gives flexibility to developers.
The disadvantages of the Agile Model:
- More risk of sustainability, maintainability and extensibility.
- Depends heavily on customer interaction, so if customer is not clear, team can be driven in the wrong direction.
- There is a very high individual dependency, since there is minimum documentation generated.
- Transfer of technology to new team members may be quite challenging due to lack of documentation.
Spiral model of SDLC consists of 4 phases:
In this phase we plan our program that will be required to ‘BRS’ that is ‘Business Requirement Specifications’ and ‘SRS’ that is ‘System Requirement specifications’;
In this phase we identify the risk and alternate solutions. Also, at the end of this phase we produce a prototype. If during risk analysis phase risk is found, the alternate solutions are implemented;
In this phase software is developed, along with testing at the end of the phase. So in this phase the development and testing is done;
This phase allows the customer to evaluate the output of the project to date before the project continues to the next spiral.
Advantages of Spiral model:
- High amount of risk analysis hence, avoidance of Risk is enhanced;
- Good for large and mission-critical projects;
- User controls the development of the project;
- Additional Functionality can be added at a later date.
Disadvantages of Spiral model:
- Can be a costly model to use;
- Risk analysis requires highly specific expertise;
- Project dependents on the risk analysis phase;
- Doesn’t work well for smaller projects.
Any system development lifecycle must result in a high quality system that meets or exceeds customer expectations, is completed within time and cost, is efficient and effective, is inexpensive to maintain, and cost effective to improve.
Test SDLC. SDLC models