In: Computer Science
Software Engineering Process Models
Question 4
(a) Give a description of the waterfall process model. In your
answer you should describe the main tasks that are conducted, and
the order in which they are carried out. You may want to include a
diagram to clarify your answer.
[7 marks]
(b) Describe one advantage and one disadvantage of adopting the
waterfall process model in comparison to other process
models.
[4 marks]
(c) Describe the key principles which underlie Agile software
development.
[8 marks]
(d) Risk management is an important part of software project
planning. Describe what is meant by a risk and give two examples of
risks which could seriously affect a project.
[4 marks]
WATERFALL MODEL
The Waterfall Model was the first Process Model to be introduced. It is very simple to understand and use. In a Waterfall model, each phase must be completed before the next phase can begin and there is no overlapping in the phases. Waterfall model is the earliest SDLC approach that was used for software development.
In “The Waterfall” approach, the whole process of software development is divided into separate phases. The outcome of one phase acts as the input for the next phase sequentially. This means that any phase in the development process begins only if the previous phase is complete. The waterfall model is a sequential design process in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation and Maintenance.
As the Waterfall Model illustrates the software development process in a linear sequential flow; hence it is also referred to as a Linear-Sequential Life Cycle Model.
Waterfall Model - Advantages
The advantages of waterfall development are that it allows for departmentalization and control. A schedule can be set with deadlines for each stage of development and a product can proceed through the development process model phases one by one.
Development moves from concept, through design, implementation, testing, installation, troubleshooting, and ends up at operation and maintenance. Each phase of development proceeds in strict order.
Some of the major advantages of the Waterfall Model are as follows −
Simple and easy to understand and use
Easy to manage due to the rigidity of the model. Each phase has specific deliverables and a review process.
Phases are processed and completed one at a time.
Works well for smaller projects where requirements are very well understood.
Clearly defined stages.
Well understood milestones.
Easy to arrange tasks.
Process and results are well documented.
Waterfall Model - Disadvantages
The disadvantage of waterfall development is that it does not allow much reflection or revision. Once an application is in the testing stage, it is very difficult to go back and change something that was not well-documented or thought upon in the concept stage.
The major disadvantages of the Waterfall Model are as follows −
No working software is produced until late during the life cycle.
High amounts of risk and uncertainty.
Not a good model for complex and object-oriented projects.
Poor model for long and ongoing projects.
Not suitable for the projects where requirements are at a moderate to high risk of changing. So, risk and uncertainty is high with this process model.
It is difficult to measure progress within stages.
Cannot accommodate changing requirements.
Adjusting scope during the life cycle can end a project.
Integration is done as a "big-bang. at the very end, which doesn't allow identifying any technological or business bottleneck or challenges early.
Top 10 differences between Agile and Waterfall Model:
Risk Management in Waterfall Model
In a Waterfall scenario, where you'll be trying to plan risks well ahead of time, your estimation about the likelihood or severity of risks can be inaccurate. With constant changes of requirements in a shifting business environment, it is vital to define roles and responsibilities for continuously monitoring and controlling risks in your Waterfall project. Overlapping stages of development, poor quality assurance, and long processes are all sources of risk in a Waterfall environment.
With Agile projects, risk management usually encompasses a shorter timeframe. The risk register is reevaluated at every sprint planning meeting, and risks are discussed during stand-up meetings every day, and during retrospective meetings at the end of each iteration. Simply by using Agile, you can reduce a variety of risks related to budget, time to market, scope creep, requirements and security. However, you'll still need to define a process to manage risks.
After setting a risk priority list, you'll need to decide how to treat those risks: your response strategies with negative risks include avoiding, transferring or mitigating risks, while with positive risks, you can choose to exploit, share or enhance these "upside risks". Make sure you monitor risk mitigation, keeping in mind that you can never entirely eliminate risks, and that the way you treat one risk may actually create new risks. codeBeamer's Risk Matrix Diagram should provide you with an efficient overview on the performance of your risk management lifecycle. codeBeamer also offers full traceability on risk dependencies and changes, and wikis for risk documentation.