Brain Dump

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.