シリーズ「標準ソフトウエア工学教科書」を作ってみたいと思います
今回は「2.5 反復型モデル」です。
2.5 反復型モデル
前回、ウォーターフォールモデルの問題点として、
・問題点1
要求仕様を満たすような設計・実装は、実現できないような場合、設計・実装の段階になるまでわかりません。
・問題点2
ウォーターフォールでは、開発が完了するまで、実際にシステムを稼動して利益を得ることができません。
ということをあげました。そして、その解決方法として、インクリメンタルモデルをあげたのですが、この問題点として
・問題点3
すでに稼動しているサブシステムがある場合、新規サブシステムはそれに拘束される。
をあげました。
今回は、別の問題解決方法、反復型(繰り返し)モデルをあげます
ウォーターフォールでは、まず、全体の要求分析が終わってから、次の設計工程に行きました。反復型では、そうではなく、
1.まずは、絶対必要な機能をあげ、分析します
2.その必要部分の設計、実装をしてリリースします
3.まだできていない機能のうち、必要な機能を分析します
4.2に戻る
こうすると、ずっと、2→3→4→2→3・・・・と繰り返します。
そして、いつか、全機能がそろって、完成します。
こういうやり方です。
なお、このやり方を、ぐるぐる回っているのでスパイラルという人もいますが、
スパイラルモデルとは、このモデルではない、ちゃんとしたモデルをベームという
人が提唱しています。情報処理試験等で、スパイラルモデルといった場合は、
そのベームの提案したほうをさします。
一般の人が普通の会話で言う場合は、反復型、ベームの提唱したもの、どちらも
ある場合がありますね。
これは、問題点1を解決しています。必要部分を先に実装して、早期に確認しています。
問題点3も解決しています。
全体の必要部分を先に全部作ってしまうため、その部分で、インターフェースの整合性を
とってしまうからです。
問題点2は、作り方によります。必要部分を使うだけで利益を得られれば、解決したことになりますし、そうでない場合は・・・
そこで、どういう順番で、何を作るか?ということが重要になります。
それを空気を読んでいろいろできるようにしたのが、アジャイルのスクラムで、それについては、2回先で触れますが、その前に、先ほど出てきたベームのスパイラルモデルについて説明します。