シリーズ「標準ソフトウエア工学教科書」を作ってみたいと思います
今回は「2.1 ウォーターフォールモデル」です。
第二章 ソフトウエアプロセスのモデル
2.1 ウォーターフォールモデル
1.3章で、ソフトウエアプロセスは
要求分析
設計
外部設計
詳細設計
実装(プログラミング)
テスト
単体テスト
結合テスト
総合テスト
というものがあると書きました。
では、これを、どのような順番に行っていったらよいでしょうか?
それが、ソフトウエアプロセスのモデルということになります。
単純に考えると、「順番にやっていけばよい」ということになります。
それが、ウォーターフォールモデルです。
順番にやっていきます。前の工程が終わるまで、あとの工程を行いません。
この方法、単純でよいのですが(そして今でも使われていますが)、問題もあります。
大規模なものだと、要求仕様が作成されてから総合テストが終わるまで、何年もかかります。その間に市場環境が変わったり、発注元の事情が変わったりして、修正したくなっても、工程が進んでしまえば、前の工程には戻れない。
また、後工程になって、この仕様ではできない!と気づいても、前工程には戻れない・・・
このように、後工程で前工程に戻って修正できないということは、危険がいっぱいになります。この危険性を、抑えるため、
・プロトタイプを作って確認する
・部分部分作っていく
・繰り返し開発していく
・やるべきことをバックログとしておき、状況に応じてやっていく
など、さまざまな改善手法がでてきました。
ここでは、以降、ウォーターフォールの改善型の手法を見ていくことになります。
今回は「2.1 ウォーターフォールモデル」です。
第二章 ソフトウエアプロセスのモデル
2.1 ウォーターフォールモデル
1.3章で、ソフトウエアプロセスは
要求分析
設計
外部設計
詳細設計
実装(プログラミング)
テスト
単体テスト
結合テスト
総合テスト
というものがあると書きました。
では、これを、どのような順番に行っていったらよいでしょうか?
それが、ソフトウエアプロセスのモデルということになります。
単純に考えると、「順番にやっていけばよい」ということになります。
それが、ウォーターフォールモデルです。
順番にやっていきます。前の工程が終わるまで、あとの工程を行いません。
この方法、単純でよいのですが(そして今でも使われていますが)、問題もあります。
大規模なものだと、要求仕様が作成されてから総合テストが終わるまで、何年もかかります。その間に市場環境が変わったり、発注元の事情が変わったりして、修正したくなっても、工程が進んでしまえば、前の工程には戻れない。
また、後工程になって、この仕様ではできない!と気づいても、前工程には戻れない・・・
このように、後工程で前工程に戻って修正できないということは、危険がいっぱいになります。この危険性を、抑えるため、
・プロトタイプを作って確認する
・部分部分作っていく
・繰り返し開発していく
・やるべきことをバックログとしておき、状況に応じてやっていく
など、さまざまな改善手法がでてきました。
ここでは、以降、ウォーターフォールの改善型の手法を見ていくことになります。