Software Development Processes Course: Research Paper
The Waterfall Model
A Word on Vocabulary
Waterfall is called
Process Model
Lifecycle
We use lifecycle.
More VocabuLary confusion
Software development activities:
Pressman: Sommerville:
Communication Specification
Planning Development
Modeling Validation
Construction Evolution
Deployment
We will use
Proposal
Requirements Engineering
Planning
Design
Construction
Testing
Deployment
Maintenance
The Waterfall Lifecycle
Each activity is a phase
For the most part, the phases are done in order once.
At the end of each phase a document is reviewed
There is limited capability for backtracking
From one phase to its immediate predecessor
From a later phase back to Requirements Engineering or Design
Go/No-go decision at the end of each phase
Waterfall Advantages
Easier for upper management to track
Easier use of specialists
Reviewed formal documents valuable to maintenance and support
Emphasis on formal communication
Minimal involvement of customer and potential users
Disadvantages
Difficult, if not impossible to do a phase completely before moving on.
Expensive to backtrack
Software development is a learning process
Significant change is almost always frequent and unpredictable
No partial products available before development is complete
When to Use
Some government agencies provide complete requirements as a Request for Proposal
Developing prototypes as part of a larger project
Some informal projects.
Still frequently used in 2018.
Variations on Waterfall
V Model
Requirements Engineering Acceptance Testing
Architectural Design System Testing
Component Design Integration Testing
Code Generation Unit Testing
Another Variation
Partition the Product
When it needs to be available
Risk (see Spiral Model)
Pick one partition and develop it using Waterfall
Select another partition and develop it using Waterfall
Continue until you have the entire product.
More on the Last Variation
Each partition may be implemented at the same time
Supports multiple development teams, perhaps located differently.
Or implementation may proceed one partition at a time.
Typically, three to six months for each partition implementation.