スパイラルモデル

スパイラルモデル（Spiral Model）とは、であり、設計とプロトタイピングを繰り返して開発していく手法である。

歴史と概要
1988年、バリー・ベームが A Spiral Model of Software Development and Enhancement（ソフトウェア開発と改良のスパイラルモデル）という記事でスパイラルモデルを提唱した。反復型開発のモデルはこれが最初ではなかったが、反復の重要性を提起したのはこのモデルが最初である。本来の想定では、1回のループは6ヶ月から2年とされていた。まず、設計目標を決め、1回のループ完了時点でユーザー（開発内部の場合もある）がそこまでの進展を評価する。工学的分析を毎回行うと共に、最終目標を見据えて開発ループを繰り返していく。

具体的には、対象システムを機能単位に分割し、設計～プログラミング・テストという一連の開発工程を何度も繰り返しながら開発工程の規模を徐々に拡大(機能の改良・追加)していく開発モデル。

応用
アメリカ軍は Future Combat Systems の開発にスパイラルモデルを適用している。

特徴
カストマイズソフトを開発する場合、ウォーターフォール・モデルと比較した際の利点、欠点を以下に挙げる:
 利点 

プログラムの規模やスケジュールなどの予測がしやすい。
ソフトウェア開発に付き物の要求仕様の変更などに対応しやすい。
設計工程が伸びて実装に費やせる期間が短くなるということが起きにくい。
 欠点 

ループの回数を増やせばコストは増大する。
現場の理解が得られずに、単なるやり直しが利く開発となる。前回のループで作成したプロトタイプを再利用してしまう。
顧客にとっては一度金銭的な契約が締結されたら何度でも無料で修正できる手法だと考え、依頼する用件をまとめない傾向にある。
顧客と開発側の窓口が複数になる傾向にあり、開発側の負担が増える。
仕様も次のループがあるということでレビューが甘くなる。

関連項目
ソフトウェア工学
ソフトウェア開発工程
信頼できるコンピューティングのセキュリティ開発ライフサイクル

外部リンク
A Spiral Model of Software Development and Enhancement - バリー・ベームのオリジナル記事
A graphical representation
プロセスモデル 鹿児島大学情報工学科

Category:開発プロセスモデル
Category:種類別のモデル
Category:ソフトウェア開発工程