Google
 
web scripts | software engineering | discrete maths | windows| programming
Welcome to RustySpigot, the Computer Science Source

main page

blog

translate
















Gotomeeting Review
Computer Science Notes
Freshlook color blends
Download Callwave
GoToWebinar Download
Printer friendly version
The waterfall model is reportedly employed by both the US D.O.D and NASA as their main software development model, due to its strict design practices and clear progress markers. This is despite being described as “risky and invites failure” by W.W.Royce, who . originally created the term “Waterfall model” and criticized it in favor of an iterative approach.
The waterfall model is a top down sequential model split into the sections shown in the software life cycle article, and illustrated by the image below

Image by Paul A. Hoadley, Creative Commons license
Note that:
  • Requirements are written in the user's language
  • Specification is written in system language
  • Unit testing checks units against the spec
  • System testing checks the requirements are met

    The waterfall model is well understood and time tested but generally considered to be less useful than it once was due to the increasing complexity of systems. It “works well for automating the tasks of clerks and accountants, less well for knowledge works such as experts trying to solve problems” (Information Center Quarterly article, Larry Runge). Another problem is that in the waterfall model users only input is in specifying requirements and that all requirements must be specified at one points before production begins. However, requirements typically change through the process and require more feedback.

    Summary of advantages:
  • Easy for managers to understand, plan by and to test progress against as it has very clear sequential milestones
  • Encourages good design practices such as early clarification of system goals, which in turn save time and money (the earlier a bug is caught, the less harm it can cause)
  • Due to lots of up front design planning, should the project be stopped and taken up at a later date, or should project members change, implementation can continue far easier than with more agile development models where there is considerably less design documentation.
  • Compatible with a wide range of design strategies

    Summary of disadvantages
  • Users may change requirements often, at stages beyond the requirements stage
  • Users may not be able to state requirements until they see a working prototype that they can criticise
  • At the implementation stage programmers may find that there is a near impossible problem to implement, and it may be easier to change the original design than to proceed ahead as planned.
  • Constant verification of each stage is required to ensure that the next phase can start on a correct base
  • Technology may change during development


    Most of the problems of the waterfall model are solved by iterative and evolutionary models such as the Spiral Model







  • Email to a friend | Printer friendly version | Link to this page | Terms of Use | Contact
    Unless otherwise noted, content on this site is licensed under Creative Commons Attribution 2.5
    Software_Engineering/Waterfall_Model.htm was last modified on 2006-12-17 19:53:24