ウォーターフォール・モデル
プロジェクトによって工程の定義に差はあるが、開発プロジェクトを時系列に、主として以下のような工程で行われる。
要求定義(要求仕様)
外部設計(概要設計)
内部設計(詳細設計)
開発(プログラミング)
テスト(ソフトウェア)
運用(システム)
上記のように作業工程(局面、フェーズ)にトップダウンで分割する。線表(ガントチャート)を使用してこれらの工程を一度で終わらせる計画を立て進捗管理をする。原則として前工程が完了しないと次工程に進まない(設計中にプログラミングを開始するなどの並行作業は行わない)事で、前工程の成果物の品質を段階的に確保し、前工程への後戻り(手戻り)を最小限にする。ウォーターフォール・モデルの利点は、工程の進捗管理がしやすいことである。また、工程を分けることによりスキル別に分業化が進み、結果として低スキル者でも開発に関わりやすくなっている。
ウォーターフォール・モデルの例には、IBMによるADSG(Application Development Standardization Guide、アプリケーション開発標準化ガイド)などがある。
なお「ウォーターフォール・モデルは古く、スパイラルモデルは新しい」と単純化して語られる場合もあるが、大規模開発ではスパイラルモデルだけでは収束せず破綻するケースが大半のため、現在でもウォーターフォール・モデルとスパイラルモデル等は、組み合わされて使用されている。
ウォーターフォール・モデルが採用される裏には、次のようなスパイラルモデルの問題が解決できないという理由もある。
要件を変更したときの見積もりや契約の方法が確立されていない
各工程の頻繁なリリースによるバージョン管理が難しい
テストの自動化に関するノウハウが蓄積されていない