SDLC (ソフトウェア開発ライフサイクル) は AP科目Aで頻出。ウォーターフォール・V字・スパイラル・アジャイルの特徴を比較できることがゴール。
SDLC は要件定義 → 設計 → 実装 → テスト → 運用の全工程ですね。
代表的なモデルは ウォーターフォールモデル・V字モデル・スパイラルモデル・アジャイルの4つです。
ウォーターフォールって、なんで廃れちゃったの?
厳密には廃れていないわ。
要件が安定していて変更が少ないシステム (官公庁・大規模インフラ) では今も主力。
ただ、変化の早い分野ではアジャイルが優勢、という使い分けね。
V字モデルって何ですかぁ?
ウォーターフォールの開発工程と、対応するテスト工程を V 字に並べたモデルです。
要件定義↔受入テスト、外部設計↔システムテスト、内部設計↔結合テスト、コーディング↔単体テスト、というように対応しています。
AP では各モデルのメリット・デメリットを比較する問題が頻出なのよ。
試験対策的には、特徴を1〜2文で言えるようにしておきましょうね。
案件の条件から開発モデルを選ぶ
モデル名だけを暗記するより、最初に「要件の変化」「失敗時の影響」「利用者からの反応を得られる速さ」を確認すると判断しやすくなります。法令で帳票様式が決まり、検収条件も固定された行政システムなら、工程と成果物を順番に確定するウォーターフォールが候補です。一方、新しい予約アプリのように、実際に触ってもらわないと必要な機能が固まらない案件では、短い反復で優先順位を見直せるアジャイルが向きます。
| 条件 | 選びやすいモデル | 理由 |
|---|---|---|
| 要件が安定し、契約上の成果物が明確 | ウォーターフォール | 工程ごとの承認と文書化を行いやすい |
| 技術リスクが高く、段階的に検証したい | スパイラル | 反復ごとにリスク分析と試作を行える |
| 画面や操作性を早期に確認したい | プロトタイピング | 試作品への利用者の反応から要件を具体化できる |
| 価値の高い機能から継続提供したい | アジャイル | 短い反復で動くソフトウェアを届けられる |
V字モデルの対応を要求までさかのぼる
たとえば「会員は自分の注文だけを閲覧できる」という要件を考えます。内部設計で権限判定関数を決め、その関数単体を単体テストします。外部設計で画面とAPIの連携を決め、その接続を結合テストで確かめます。システムテストでは性能や例外処理を含めて全体仕様を確認し、最後に受入テストで発注者が元の業務要件を満たすかを判定します。設問では、左側の工程で「何を決めたか」を読み、その決定を直接確認する右側のテストを選びます。
典型的な誤答は「工程の並びが近いもの同士」を結ぶことです。V字の対応は実施時期ではなく検証対象で決まります。また、スパイラルとアジャイルはどちらも反復しますが、スパイラルの中心はリスク評価、アジャイルの中心は顧客価値の継続提供です。問題文の「リスク分析」「短い期間でリリース」という語を手掛かりに区別しましょう。
確認クイズ
V 字モデルにおいて、『要件定義』と対応するテスト工程として最も適切なものはどれか。
- 単体テスト
- 結合テスト
- システムテスト
- 受入テスト
こたえを見る
正解: 4. 受入テスト
V 字モデルでは要件定義 ↔ 受入テスト、外部設計 ↔ システムテスト、内部設計 ↔ 結合テスト、コーディング ↔ 単体テスト、と対応します。要件で決めたことを最終的に発注者が確認する受入テストが対応関係になります。