ウォーターフォールは、もともと英語の “waterfall” で「滝」を意味しますが、ITの分野ではシステム開発の手法を指す用語として使われています。
目次
ウォーターフォール型開発
ウォーターフォール型開発は、システム開発の工程をいくつかの段階に分け、滝のように上流から下流へ順番に進めていく手法です。それぞれの段階が完了してから次の段階に進むため、前の段階に戻ることは原則としてありません。
主な工程
ウォーターフォール型開発は、一般的に以下の工程で進められます。
- 要件定義: 顧客の要望をヒアリングし、システムに求められる機能や性能を明確に定義します。
- 設計: 要件定義に基づいて、システムの全体構造や詳細な仕様を設計します。外部設計(ユーザーインターフェースなど)と内部設計(プログラムの構造など)があります。
- 実装: 設計書に基づいて、プログラミングを行い、システムを構築します。
- テスト: 作成したシステムが設計書通りに動作するか、バグがないかなどを検証します。単体テスト、結合テスト、システムテストなど、様々なレベルのテストを行います。
- 運用・保守: 完成したシステムを実際に稼働させ、運用・保守を行います。
ウォーターフォール型開発のメリット
- 各工程の役割分担が明確で、進捗管理がしやすい。
- 工程ごとに成果物が明確になるため、品質を確保しやすい。
- ドキュメントが充実するため、後からシステムの改修や保守を行う際に役立つ。
ウォーターフォール型開発のデメリット
- 手戻りが発生した場合、大きなコストがかかる。
- 顧客は完成するまでシステムのイメージを掴みにくい。
- 要件の変更に柔軟に対応しにくい。
ウォーターフォール型開発が適しているケース
- システムの規模が大きく、複雑な場合
- 要件が明確に定義されており、変更が少ない場合
- 長期的な計画に基づいて開発を行う場合
使用例
- 大規模な基幹システム開発
銀行の勘定系システムや、企業の ERP システムなど、規模が大きく、安定性が求められるシステム開発にウォーターフォール型開発が採用されることが多いです。 - 官公庁のシステム開発
法令や規則に準拠する必要があるため、要件が厳密に定められている官公庁のシステム開発にもウォーターフォール型開発が適しています。 - 組み込みシステム開発: 自動車や家電製品などに組み込まれるシステムは、ハードウェアとの連携が重要となるため、ウォーターフォール型開発が採用されることがあります。
その他
近年では、アジャイル開発など、より柔軟な開発手法が注目されていますが、ウォーターフォール型開発は、依然として多くのシステム開発で採用されている手法です。
補足
ウォーターフォール型開発では、各工程の進捗を図式化するために、ウォーターフォールチャートと呼ばれる図が使われることがあります。