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』の邦訳)フレデリック・P・ブルックス・Jr著/滝沢徹、牧野祐子、富沢昇訳/ピアソン・エデュケーション/2002年11月(『The Mythical man-month: essays in software engineering』の邦訳)
Copyright © ITmedia, Inc. All Rights Reserved.