ウォーターフォール・モデル
waterfall model / 滝モデル / 落水モデル
ソフトウェア開発プロセスの1つで、最も基本的で一般的な開発モデル。プロジェクト全体をいくつかの工程に分割して各工程での成果物(仕様書や設計書などのドキュメント)を明確に定義し、その成果物に基づいて後工程の作業を順次行っていく。
ウォーターフォール・モデルでは、開発プロセスをソフトウェア開発ライフサイクル(SDLC:software development lifecycle)などに沿って、「要求」「仕様」「分析」「設計」「プログラミング」「検査」「運用」といった形に分割する。そして例えば設計工程で設計書を作成し、その設計書に基づいてプログラミングを行うといった手順でプロジェクトを推進していく。成果物は各工程ごとに検証され、所定の手続きで承認されたものだけが次の工程へ進む。原則的にこの順序を飛び越したり、逆戻りしたりすることを許さないため、滝の水が流れ落ちる様子にたとえて、ウォーターフォール・モデルと呼ばれる。
本来的なウォーターフォール・モデル開発は、「仕様書による定義」という原則を厳格に適用することを目的としたドキュメント駆動型の開発プロセスといえる。全体を見通すことができ、スケジュール立案や資源配分、進ちょく管理が容易にできるなどの点から、現在でも大規模プロジェクトでは基本的にこの方法が取られている。その一方で、一般に理解されるウォーターフォール・モデルは手戻りを許さない逐次開発型であるため、工程間のフィードバックが必然的に発生する実際のソフトウェア開発という作業の実情にそぐわないとの批判も多い。
ウォーターフォール・モデルの原型となったのは、1970年に発表されたウィンストン・W・ロイス(Winston W.Royce)の論文『Managing the Development of Large Software Systems』だとされる。ただし、この論文では文書化、レビューの重要性ともに、下流工程を予備的に行って上流工程へ戻る「フィードバックループ」が提唱されていた。また「ウォーターフォール」という語も使われていない。
フィードバックの欠落したウォーターフォール・モデルが広まったのは防衛用ソフトウェア開発に関する仕様を定めた米国防総省の規格書「DOD-STD-2167」(1985年6月)がきっかけだとされる。これをベースに英国のJSP-188、フランスのGAM-T-17、ドイツのVモデルなどが作成されている。しかし、これらの標準に基づいて推進されたソフトウェア開発プロジェクトが失敗を重ねたことから、米国防総省は1994年12月に反復型開発を推奨する「MIL-STD-498」定めている。
参考文献
- 『Managing the Development of Large Software Systems』 Winston W. Rovce=著/Proceedings of IEEE Westcon, August 1970(PDF)
- 『人月の神話 新装版――狼人間を撃つ銀の弾はない』フレデリック・P・ブルックス・Jr著/滝沢徹、牧野祐子、富沢昇訳/ピアソン・エデュケーション/2002年11月(『The Mythical man-month: essays in software engineering』の邦訳)
関連記事
- 開発プロセス(ITmedia Keywords)
- Keyman Interview − “ソフトウェア開発を成功させるためのモデリング、開発プロセス、ツール支援”(@IT情報マネジメント)
- The Rational Edge − ウォーターフォールから反復型への移行手順(@IT情報マネジメント)
- 連載:開発をもっと楽にするNAgileの基本思想(3) − アジャイル開発のキモはフィードバック!(@IT Insider.NETフォーラム)
関連用語
リンク
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
スポンサーからのお知らせ
- - PR -
求人情報
| ◆ | 「いつかは壊れるサーバ」そんな故障に 迅速で安価に手軽に対応する方法とは? New! |
| ◆ | TomcatやJBossなどAPサーバ環境に関する 情報を集約! “業務”用APサーバ大百科 New! |
| ◆ | 一気に解説! 最新のクラスタストレージ 「RAIDを超えたストレージ基準」……など New! |
| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |




