Open main menu

Wikibooks β

Software Engineers Handbook/Life Cycle/Development Methodologies/Traditional Waterfall

< Software Engineers Handbook‎ | Life Cycle/Development Methodologies

When it was first created, the Waterfall Model of Software Development presumed that writing software is a linear process, with clearly defined phases. Many experts have come to realize that this is not true in all cases. However, Waterfall is always useful as a checklist, even if it is not followed in a linear, rigorous fashion. A summary follows.


1.Requirements Allocation

2.Preliminary Design (AKA Top Level Design or Architecture)

3.Detailed design

4.Code and Unit Test

5.Integration and Integration test


  • Capabilities – what the software does
  • Human interface – all screens and messages defined
  • All interfaces to external hardware and software identified
  • Size and timing requirements

II.Preliminary Design

  • Structure diagram
  • Functional flow diagrams
  • All major function prototypes defined and comments for functions written
  • All major data structures and data bases defined
  • Header files defined
  • Sizing and timing estimates (may be deferred to detailed design)

III.Detailed Design

  • PDL C Program design language (or pseudo code) written. Rule of thumb: 1 line of pseudo code = 3 to 10 lines of “C” code (approximately).
  • Better sizing and timing estimates

IV.Code And Unit Test

  • Convert PDL to code
  • Design unit test plan and test code. Test Drivers, test stubs, and any special requirements defined (e.g., special test hardware configurations, test software, lab equipment, etc.).
  • Better sizing and timing estimates
  • Metrics, test coverage tool results, etc.

V.Integration and Integration Test

  • Design integration test plan and test code
  • Run code on target system and debug
  • Take sizing and timing measurements and ensure that you are meeting requirements.
  • Line count - Total lines of text, and lines of code.