Software Engineers Handbook/Life Cycle/Development Methodologies/Traditional Waterfall
Appearance
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.
Phases:
- Requirements Allocation
- Preliminary Design (AKA Top Level Design or Architecture)
- Detailed design
- Code and Unit Test
- Integration and Integration test
Scope:
- Requirements
- Capabilities ā what the software does
- Human interface ā all screens and messages defined
- All interfaces to external hardware and software identified
- Size and timing requirements
- 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)
- 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
- 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.
- 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.