Question

In: Computer Science

Software Engineering Process Models Question 4 (a) Give a description of the waterfall process model. In...

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]

Solutions

Expert Solution

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:

  1. The software development process is divided into different phases in the Waterfall model while Agile methodology segregates the project development lifecycle into sprints
  2. Waterfall is a structured software development methodology, and often times can be quite rigid, whereas the Agile methodology is known for its flexibility
  3. According to the Waterfall model, software development is to be completed as one single project, which is then divided into different phases, with each phase appearing only once during the SDLC. However, the Agile methodology can be considered as a collection of many different projects, which are nothing but the iterations of the different phases focusing on improving the overall software quality with feedbacks from users or the QA team
  4. If you want to use the Waterfall model for software development, then you have to be clear with all the development requirements beforehand as there is no scope of changing the requirements once the project development starts. The Agile methodology, on the other hand, is quite flexible, and allows for changes to be made in the project development requirements even after the initial planning has been completed
  5. All the project development phases such as designing, development, testing, etc. are completed once in the Waterfall model while as part of the Agile methodology, they follow an iterative development approach. As a result, planning, development, prototyping and other software development phases can appear more than once during the entire SDLC
  6. One of the major differences between Agile and Waterfall development methodology is their individual approach towards quality and testing. In the Waterfall model, the “Testing” phase comes after the “Build” phase, but, in the Agile methodology, testing is typically performed concurrently with programming or at least in the same iteration as programming
  7. While Waterfall methodology is an internal process and does not require the participation of customers, the Agile software development approach focuses on customer satisfaction and thus, involves the participation of customers throughout the development phase
  8. The Waterfall model can be regarded as a stringently sequential process, however, the Agile methodology is a highly collaborative software development process, thereby leading to better team input and faster problem solving
  9. The Waterfall model is best suited for projects which have clearly defined requirements and in which change is not expected at all, while Agile development supports a process in which the requirements are expected to change and evolve. Thus, if you are planning to develop a software that would require frequent overhauls and has to keep up with the technology landscape and customer requirements, Agile is the best approach to follow
  10. The Waterfall model exhibits a project mindset and lays its focus strictly on the completion of project development, while Agile introduces a product mindset that focuses on ensuring that the developed product satisfies its end customers, and changes itself as the requisites of customers change.

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.


Related Solutions

​​​​​​ Explain the factors to consider when selecting a software process model for a project (Waterfall...
​​​​​​ Explain the factors to consider when selecting a software process model for a project (Waterfall vs. incremental delivery).
What is Software Process Model (life cycle models)
What is Software Process Model (life cycle models)
Compare and contrast traditional (e.g. waterfall) and iterative software development models.
Compare and contrast traditional (e.g. waterfall) and iterative software development models.
What is a software process model? Explain. Describe completely any two generic software process models with...
What is a software process model? Explain. Describe completely any two generic software process models with relevant diagrams using any two different examples of software applications (one for each model). 2. Draw a state-machine model (diagram) for the control software for the camera on your mobile phone. You can ignore the flash component. 3. Draw a sequence diagram for a student to register for a course for the Spring 2021 semester. Check academic and financial holds, pre-requisites and ensure that...
Software Engineering question: Give an example of two software engineering artifacts. One that you would place...
Software Engineering question: Give an example of two software engineering artifacts. One that you would place under configuration management and one that you would not. Justify your choices.
Software Engineering Process Discuss the activities that make up a software engineering process. Your response should...
Software Engineering Process Discuss the activities that make up a software engineering process. Your response should include the engineering phases of requirements : - Design, coding, testing, reviews, refactoring, defects, team and customer communication. - How is Agile the same as the Plan and Document process (aka Waterfall) - In what ways is Agile different from Plan and Document
What are the similarities and differences between the conventional waterfall model and the Unified Process model?...
What are the similarities and differences between the conventional waterfall model and the Unified Process model? Identify and explain three advantages and three disadvantages of each of these two models. combines below questions together too Explain in an essay why the waterfall process is a process for solving tame problems. also Explain in an essay how agile development tackles application software development as a wicked problem.
Question 1 Software engineering is an engineering discipline that is concerned with all aspects of software...
Question 1 Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use. Explain why software developers should adopt the discipline of software engineering to develop a system. Question 2 You are designing a mobile banking system. The system enable customer to access the information from his personal mobile and can able to view his account details. This...
Compare and contrast traditional (e.g. waterfall) and iterative software development models. Explain briefly the main elements...
Compare and contrast traditional (e.g. waterfall) and iterative software development models. Explain briefly the main elements and relationships between them involved in the UML use case diagram. Also, give a small example including at least two relationships (e.g. generalization , …).
The stages of the classical waterfall model for software development consist of requirements, design, implementation, testing,...
The stages of the classical waterfall model for software development consist of requirements, design, implementation, testing, deployment, and maintenance. Why does picturing the development of software to run on mobile applications, business-based systems, or Internet environments help to ensure the success of the development effort? What might happen otherwise? What is the professionalism with respect to software engineering? What do you do, as a software engineer involved in a software systems development project, to ensure that the product is better...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT