ざっくりとウォーターフォールモデル
- 一連の工程が流れるように進む開発手法
- 各工程が次の工程を始める前に完了する必要がある
- 設計変更が困難という特性を持つ
ウォーターフォールモデル(Waterfall model) = 滝のように一方向へ流れる開発手法
ウォーターフォールモデルとは
ウォーターフォールモデルとは、ソフトウェア開発の一つの手法で、一段階ずつ順序立てて進行する方式のことだ。なぜなら各工程が独立しており、前の工程が完了しないと次に進むことはないからだ。
例えば、設計フェーズが完了しないとコーディングフェーズに進むことはできない。だから、このモデルでは計画的な進行と、進行状況の明確な可視化が可能となる。
使用する職種
ソフトウェアエンジニア
新規プロジェクトを始める際、要件定義からシステム導入までの一連の工程を管理するためにウォーターフォールモデルを使用する。
プロジェクトマネージャー
プロジェクトの進行状況を明確に把握し、各メンバーの役割を明確にするためにウォーターフォールモデルを使用する。
システムアナリスト
要件定義や設計の工程でウォーターフォールモデルを使用し、必要な機能やシステムの設計を一つずつ整理し、構築する。
ウォーターフォールモデルの一番の特徴は、各工程が独立していて一方向に進むことだ。
有名な企業や製品、サービス
IBM
初期の大規模なソフトウェア開発プロジェクトでウォーターフォールモデルを使用し、成功を収めた。
Windows XP
Microsoftがウォーターフォールモデルを採用した開発プロジェクトの一つで、全世界で広く使われた。
ウィンストン・W・ロイス
ウォーターフォールモデルの原型を最初に提唱した人物。
大まかな手順
-
要件定義
具体的な製品の機能や性能を明確に定義する。たとえば、ソフトウェア開発では、そのソフトウェアが何をしなければならないのか、どのような機能を持つべきかを明記する。 -
設計
要件定義に基づいて、製品の設計を行う。これには、ソフトウェアのアーキテクチャ設計やデータベース設計などが含まれる。 -
実装
設計に基づいて、製品の開発(コーディング)を行う。ソフトウェア開発では、設計した機能をプログラミング言語で実装する。 -
テスト
実装した製品が要件を満たしているか、バグやエラーがないかを確認する。ソフトウェア開発では、単体テスト、結合テスト、システムテストなどが行われる。 -
保守・運用
製品をリリースした後も、問題が発生した場合の修正や、新たな要求に応じた機能追加などを行う。これは製品のライフサイクルが終わるまで続く。
類似語
瀑布モデル
ウォーターフォールモデルは中国語で瀑布模型とも呼ばれます。これはウォーターフォールモデルの各フェーズが下へ落ちるように進むことから来ています。
リニアシーケンシャルモデル
ウォーターフォールモデルは、プロジェクトの各フェーズが一直線に進むことから、リニアシーケンシャルモデルとも呼ばれます。
カスケードモデル
ウォーターフォールモデルは、一つのフェーズが終わると次のフェーズが始まる、という流れがカスケード(滝)を思わせることから、カスケードモデルとも呼ばれます。
反対語
アジャイルモデル
アジャイルモデルはウォーターフォールモデルとは異なり、小さな反復的な開発サイクル(スプリント)を用いて、開発途中でも柔軟に要件の変更や改善を行うことが可能です。
スパイラルモデル
スパイラルモデルは、ウォーターフォールモデルの各フェーズを繰り返すことで、リスクを評価しながら開発を進めることができます。ウォーターフォールモデルが一度きりの直線的なフローであるのに対し、スパイラルモデルは反復的です。
プロトタイピングモデル
プロトタイピングモデルでは、初期の段階で製品のプロトタイプを作成し、それをベースに要件を精緻化していきます。これにより、初期の段階でのフィードバックや変更が可能となり、ウォーターフォールモデルの「一度きり」のアプローチとは異なります。
会話の例文
-
新しいソフトウェア開発プロジェクトの立ち上げ
Q.「ウォーターフォールモデルはこのプロジェクトに適していますか?」
A.「プロジェクトの要件が明確で変更の可能性が低い場合は、ウォーターフォールモデルが適している可能性があります。」 -
製品開発の遅延について
Q.「ウォーターフォールモデルを採用したのにプロジェクトが遅れてしまったのはなぜですか?」
A.「ウォーターフォールモデルは各フェーズが終了するまで次のフェーズに移行しないため、一つのフェーズで問題が発生すると全体のスケジュールが遅れることがあります。」 -
新たな要求への対応について
Q.「開発途中で新たな要求が出てきました。ウォーターフォールモデルではこれをどう取り扱えば良いですか?」
A.「ウォーターフォールモデルでは、開発途中での要求変更を吸収するのが困難なため、可能ならば次の開発サイクルへ持ち越すことを検討するべきです。」
使用時の注意点
ウォーターフォールモデルを使用する時の注意点は、フェーズ間のやり取りが困難な点である。なぜなら、このモデルは各フェーズが一つずつ順に進行し、基本的に前のフェーズに戻ることはないからだ。
例えば、設計フェーズが終了した後で要件定義フェーズに戻りたいと思っても、その要求を実現するのは非常に困難である。そして、もし途中で要件変更が発生した場合、それを取り入れることはほぼ不可能になる。
だから、プロジェクトの初めから要件を十分に定義し、その後のフェーズでの変更が必要ないことを確認することが重要である。
大規模ではウォーターフォールモデル、小規模ではアジャイル開発
コメント