開発モデルの組合せ|情報処理安全確保支援士 平成28年 秋期午前Ⅱ試験 問23
出典:平成28年秋期 午前Ⅱ 問23
分野:ソフトウェア開発管理技術 / 開発プロセス・ 手法
表はシステムの特性や制約に応じた開発方針と,開発方針に適した開発モデルの組である。a~cに該当する開発モデルの組合せはどれか。
| 開発方針 | 開発モデル |
| 最初にコア部分を開発し,順次機能を追加していく。 | a |
| 要求が明確なので,全機能を一斉に開発する。 | b |
| 要求に不明確な部分があるので,開発を繰り返しながら徐々に要求内容を洗練していく。 | c |
| a | b | c | |
| ア | 進化的モデル | ウォーターフォールモデル | 段階的モデル |
| イ | 段階的モデル | ウォーターフォールモデル | 進化的モデル |
| ウ | ウォーターフォールモデル | 進化的モデル | 段階的モデル |
| エ | 進化的モデル | 段階的モデル | ウォーターフォールモデル |
TSUNAGARU-ADVICE
まず押さえたいこと
開発モデルは、要求の明確さや機能追加の進め方に応じて選びます。最初にコア部分を作って機能を順次追加するのは段階的モデル、要求が明確で全体を一斉に進めるのはウォーターフォールモデル、要求が不明確で開発を繰り返しながら内容を洗練するのは進化的モデルです。ポイントは、要求の確定度と機能追加の進め方で見分けることです。
迷ったときの判断軸
「最初にコアを作り、後から機能を足す」は段階的、「要求が明確で工程を順に進める」はウォーターフォール、「作りながら要求自体を洗練する」は進化的と整理すると判断しやすくなります。機能を追加するのか・要求を洗練するのかを切り分けるのがポイントです。
科目Bにつなげるために
開発モデルそのものは、支援士試験の科目Bで中心的に問われる可能性は高くありません。科目Aで各モデルの特徴と使い分けを整理したら、科目B対策では、脅威・脆弱性・リスク・管理策・ログ分析・インシデント対応など、セキュリティ分野の重要論点を優先して深掘りしましょう。
ウォーターフォールモデルは、最初に開発全体の計画や要求を明確にしたうえで、要求定義・設計・実装・テストといった工程を順番に進めていく開発モデルです。前の工程を完了してから次の工程へ進むため、要求が明確で、途中で大きな変更が発生しにくいシステムに向いています。
進化的モデル(エボリューションモデル)は、最初から完成形を確定させるのではなく、概要レベルの仕様や試作したシステムを基に、利用者の評価を受けながら要求・設計・開発を繰り返し、システムを徐々に完成形へ近づけていく開発モデルです。要求に不明確な部分がある場合に適しています。
段階的モデル(インクリメンタルモデル)は、システム全体の要件を幾つかの機能や部分に分け、まずコアとなる部分を開発し、その後に機能を順次追加していく開発モデルです。完成した部分から段階的に提供できる点が特徴です。
これを表の開発方針に当てはめます。aの「最初にコア部分を開発し,順次機能を追加していく」は、段階的モデルに該当します。
bの「要求が明確なので,全機能を一斉に開発する」は、要求を先に明確化して工程を順番に進めるウォーターフォールモデルに適しています。
cの「要求に不明確な部分があるので,開発を繰り返しながら徐々に要求内容を洗練していく」は、開発と評価を繰り返して要求を明確にしていく進化的モデルに該当します。
したがって、a=段階的モデル、b=ウォーターフォールモデル、c=進化的モデルとなるため、イが適切です。
❌他選択肢が誤りの理由ア:a=進化的モデル、b=ウォーターフォールモデル、c=段階的モデル
⇒bのウォーターフォールモデルは適切ですが、aとcが逆です。コア部分から順次機能を追加するのは段階的モデルで、要求を開発の繰返しによって洗練するのは進化的モデルです。
ウ:a=ウォーターフォールモデル、b=進化的モデル、c=段階的モデル
⇒a~cの対応がいずれも適切ではありません。要求が明確な場合はウォーターフォールモデル、要求が不明確な場合は進化的モデルが適しています。
エ:a=進化的モデル、b=段階的モデル、c=ウォーターフォールモデル
⇒コア部分から機能を順次追加するaは段階的モデルであり、要求が明確なbはウォーターフォールモデルです。また、要求を徐々に洗練していくcは進化的モデルに該当します。