スパイラルモデルとは
スパイラルモデルは、
ソフトウェア開発における反復型の開発モデルの一つです。
1988年にバリー・ベームによって提唱され、
設計と
プロトタイピングを繰り返しながら開発を進めていく手法です。このモデルは、トップダウン
設計とボトムアップ
設計の長所を組み合わせ、開発初期段階でのリスクを低減し、柔軟な変更対応を可能にするという特徴を持っています。
歴史と概要
スパイラルモデルは、バリー・ベームが論文「A Spiral Model of Software Development and Enhancement」で発表しました。反復型開発の先駆けではありませんでしたが、反復の重要性を明確に示した点が画期的でした。本来、各ループは6ヶ月から2年程度と想定され、各ループの開始時に
設計目標を設定します。ループ終了時には、ユーザー(場合によっては開発チーム内部)が成果物を評価し、
工学的分析を実施します。このサイクルを繰り返すことで、最終的な目標達成を目指します。
具体的には、システムを機能単位に分割し、
設計から
プログラミング、テストまでの一連の工程を繰り返し実行します。各反復で機能の改良や追加を行いながら、徐々に開発規模を拡大していくアプローチを取ります。
応用
スパイラルモデルは、
アメリカ軍のFuture Combat Systemsの開発にも採用されました。複雑なプロジェクトや、要求仕様が変動しやすい環境での適用に有効であることが示されています。
特徴
特にカスタム
ソフトウェア開発において、スパイラルモデルはウォーターフォールモデルと比較して以下のような利点と欠点があります。
利点
予測可能性: プログラム規模やスケジュールが比較的予測しやすい。
柔軟性: 要求仕様の変更に柔軟に対応できる。
設計期間: 設計期間が過度に長くなり、実装期間が短くなるリスクを軽減できる。
欠点
コスト増: 反復回数が増えるほどコストが増加する。
開発の形骸化: 現場の理解が不十分な場合、単なる手戻りの繰り返しになる可能性がある。過去のプロトタイプを安易に再利用するリスクも存在する。
顧客側の問題: 顧客が「何度でも無料で修正できる」と誤解し、要求を十分にまとめない可能性がある。
コミュニケーション: 顧客と開発側の窓口が増え、開発側の負担が増加する可能性がある。
レビューの甘さ: 次のループがあることを前提に、レビューが甘くなる可能性がある。
関連事項
ソフトウェア工学
ソフトウェア開発工程
信頼できるコンピューティングのセキュリティ開発ライフサイクル
外部リンク
A Spiral Model of Software Development and Enhancement - バリー・ベームのオリジナル記事
A graphical representation
プロセスモデル - 鹿児島大学情報
工学科