Waterfall Model
- Tags
- soft-eng
Is a predictive design model the follows a linear flow from requirements through to implementation, deployment and maintenance.
\begin{figure}
\centering
\begin{tikzpicture}[nd/.style={draw, rounded corners}, line/.style={thick}]
\node (req) [nd] {Requirements};
\node (design) [nd, below right=10pt of req] {Design}
edge [<-, line] (req);
\node (imp) [nd, below right=10pt of design] {Implementation}
edge [<-, line] (design);
\node (ver) [nd, below right=10pt of imp] {Verification}
edge [<-, line] (imp);
\node (dep) [nd, below right=10pt of ver] {Deployment}
edge [<-, line] (ver);
\node (maintenance) [nd, below right=10pt of dep] {Maintenance}
edge [<-, line] (dep);
\end{tikzpicture}
\caption{The waterfall design model.}
\label{fig:waterfall}
\end{figure}
The [see page 12, downsides] of the waterfall method are:
- Real projects rarely follow a sequential flow.
- It's hard to state all requirements explicitly.
- Requirements can change at any phase.
- Customers must wait for everything to be finished.
- Any blunder can be disastrous.
The [see page 5, risks] with the waterfall method is it:
- Relies heavily on an accurate assessment of the requirements from the start.
- Customers can only see products at the end of the life-cycle (little to no feedback earlier on.
- Boehm's first law.
I believe in this concept but the implementation is risky and invites failure.
- [see page 33, Winston Royce], Managing the Development of Large Software Systems.