システムアーキテクト 2011年 午前2 問11
問題文
ソフトウェア開発手法の特徴に関する記述のうち、適切なものはどれか。
選択肢
ア:ウォータフォールモデルは、要件定義、設計、プログラミング、テストの順に作業が流れていくので、エンドユーザプログラミングに最適である。
イ:スパイラルモデルは、要件定義、設計、プログラミング、テストを循環的に繰り返すので、未確定の要求があるシステムを開発する場合に有効である。(正解)
ウ:成長モデルは、実際に運用するシステムを作る前に評価モデルを作り、評価、改良を繰り返すので、システムの仕様や性能の早期確定に有効である。
エ:プロトタイピングは、スパイラルモデルを改良した方法であり、機能分割と段階的な機能追加を繰り返すので、大規模システム開発に最適である。
🔒 解説は解答すると表示されます
ソフトウェア開発モデル【午前2解説】
正解の理由
選択肢イは、スパイラルモデルの本質を正しく述べています。スパイラルモデルは要件定義→設計→実装→評価を一巡するのではなく、これらの活動を反復的に繰り返しながらリスクを分析・軽減していく開発手法です。要求が未確定・変化しやすいプロジェクトでは、反復ごとに要求を精緻化しながら進められるため有効です。したがって、循環的な工程と「未確定の要求に対する有効性」を結びつけた記述が正答となります。
解法ステップ
- 各選択肢の「キーワード」を抽出する(例:循環的、段階的、評価モデル、エンドユーザプログラミングなど)。
- それぞれのキーワードを代表する開発モデルの特徴と照合する(ウォータフォール=直線的、スパイラル=反復+リスク管理、プロトタイピング=試作品での確認、成長モデル=段階的成長/進化的開発など)。
- 問題文が示す条件(ここでは「未確定の要求がある場合に有効」)に最も合致するモデルを選ぶ。
- 他選択肢が過度な一般化や誤用をしていないかを確認して除外する。
本問では「循環的に繰り返す」「未確定の要求に有効」という記述がスパイラルの特徴と一致するため、イが選ばれます。
選択肢別の誤答解説
- ア:
- 主張:「ウォータフォールは…エンドユーザプログラミングに最適」
- 誤りのポイント:ウォータフォールモデルは工程が直線的で、要件が安定している場合に向きます。エンドユーザプログラミング(一般に利用者が直接開発・修正を行う手法を指す)は迅速なフィードバックや柔軟性を必要とするため、ウォータフォールは不向きです。
- イ:
- 正解の根拠は上記「正解の理由」を参照。スパイラルは反復とリスク管理によって未確定要求の扱いが得意。
- ウ:
- 主張:「成長モデルは評価モデルを作り評価・改良を繰り返すので早期確定に有効」
- 誤りのポイント:評価モデルを作って確認・改善する考え方はプロトタイピングや進化的(イテレーティブ)開発に近い表現です。「成長モデル(進化的成長)」は小さく稼働するシステムを出発点として機能を増やしていくイメージで、選択肢の記述は用語の混同・表現の不正確さがあるため誤りとされます。性能や仕様の早期確定を強調するなら「プロトタイピング」がより適切です。
- エ:
- 主張:「プロトタイピングはスパイラルの改良で、大規模向け」
- 誤りのポイント:プロトタイピングは実際の動作を確かめる試作品を作りユーザ評価を得る手法であり、スパイラルの直接的な「改良版」という位置づけではありません。またプロトタイピングは迅速なフィードバックや要求把握には有効ですが、アーキテクチャ整備や大規模システムの統合管理には注意が必要で、大規模開発に「最適」と断言できません。
よくある誤解
- スパイラルモデル=単なる反復開発だと思う誤り
→ スパイラルの特徴は反復に加えて「各反復でのリスク分析とリスク軽減策の実行」にあります。単なる繰り返しと混同しないこと。 - プロトタイピングと成長モデルの混同
→ プロトタイピングは評価用の試作品を作って要求整理をする手法、成長(進化的)モデルは小さなシステムから機能追加で成長させる運用志向の手法で、目的・適用場面が異なります。
補足コラム
スパイラルモデルは反復とリスク管理を明確に組み込んだ開発プロセスとして知られており、1988年にバリー・W・ボーム(Barry W. Boehm)が提唱しました。モデルは一般に以下のようなサイクルを持ちます:目標設定 → リスク分析(技術・コスト等) → 開発と検証(プロトタイプや実装) → 次の計画立案。リスクが高い要素を初期段階で検討・軽減する点が、変化の大きいプロジェクトに有利な理由です。
また、試験問題で出やすい関連用語の対比:
- ウォータフォール:工程の直線的進行、要件安定時に有利
- スパイラル:反復+リスク管理、未確定要件に有利
- プロトタイピング:試作品で早期フィードバック、要求把握に有利
- インクリメンタル/成長モデル:機能を段階的追加、早期稼働を重視
FAQ
Q1. スパイラルとプロトタイピングはどう使い分けるべきですか?
A1. 要件が不明瞭でリスク(技術的・運用的)が高い場合はスパイラルで各反復ごとにリスク分析を行うのが有効です。単にユーザ要求の把握や画面操作の確認が目的であれば、まずプロトタイプを作るプロトタイピングが迅速です。
A1. 要件が不明瞭でリスク(技術的・運用的)が高い場合はスパイラルで各反復ごとにリスク分析を行うのが有効です。単にユーザ要求の把握や画面操作の確認が目的であれば、まずプロトタイプを作るプロトタイピングが迅速です。
Q2. ウォータフォールはもう使わない方がよいですか?
A2. いいえ。要件が安定し変更が少ないか、外部制約(契約や規格など)で工程管理が厳格に必要な場合はウォータフォールが適しています。適材適所です。
A2. いいえ。要件が安定し変更が少ないか、外部制約(契約や規格など)で工程管理が厳格に必要な場合はウォータフォールが適しています。適材適所です。
Q3. 試験で「成長モデル」が出たらどう判断すればよいですか?
A3. 用語が曖昧な場合は、選択肢中の具体的な特徴(評価モデルの有無、段階的追加、目的)と自分の知識を照合し、用語の一般的定義と合致しないものを除外していくと良いです。
A3. 用語が曖昧な場合は、選択肢中の具体的な特徴(評価モデルの有無、段階的追加、目的)と自分の知識を照合し、用語の一般的定義と合致しないものを除外していくと良いです。
関連キーワード: ウォータフォール、スパイラルモデル、プロトタイピング、成長モデル、反復開発、リスク管理、インクリメンタル、進化的開発

\ せっかくなら /
システムアーキテクトを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

