基本情報技術者(FE)対策

開発モデル

順番と刻みを決める型

前回まで科目Aのテクノロジ系を見てきました。ここからはマネジメント系とストラテジ系に入ります。用語が多く暗記の分野に見えますが、出題は「他と違う一点」を突いてきます。全部を覚え直すのではなく、そのモデルにしかない特徴を1つずつ持ち帰ってください。

開発モデルとは、要件定義からテストまでの作業を、どんな順番で、どれくらいの刻みに区切って進めるかを決めた型のことです。

ウォーターフォールモデル

上流から下流へ一方向に流す型です。工程は次の順に並びます。

要件定義 → 外部設計 → 内部設計 → プログラミング → テスト → 運用

各工程の終わりに成果物をレビューして承認し、承認できたら次へ進みます。前の工程へは戻らない前提で計画を立てるので、進捗と工数の見通しが立てやすいのが長所です。短所は、仕様の誤りが下流で見つかったときの手戻りが大きいことです。要件定義の誤りをテスト工程で見つければ、設計とコードをまとめて作り直すことになります。

V字モデル

ウォーターフォールを真ん中で折り曲げ、設計工程とテスト工程を左右に向かい合わせた図がV字モデルです。どのテストが何を確かめるためのものかがはっきりします。

設計工程向かい合うテスト確かめること
要件定義システムテスト(総合テスト)利用者の要求を満たしているか
外部設計結合テスト機能どうしのつなぎが正しいか
内部設計単体テスト個々のモジュールが仕様どおりか

試験では「結合テストの合否を判断する根拠となる文書はどれか」という形で出ます。V字で真横を見れば外部設計書だと決まります。テストケースを誰が作るかを問う問題も同じ見方で解けます。

手戻りを減らす型

ウォーターフォールの弱点をどう埋めるかで、他のモデルが分かれます。

  • プロトタイピングモデル — 早い段階で試作品を作って利用者に見せ、要件の思い違いをその場で潰します。仕様が固まりきらない案件に向きます
  • スパイラルモデル — システムを部分に分け、部分ごとに設計・実装・評価を繰り返し、渦を描くように完成へ近づけます。各周でリスク分析を行う点が固有の特徴です
  • 反復型(イテレーティブ)モデル — 全体の要件を先に決めたうえで、実装とテストだけを何度も繰り返します
  • 段階的リリース(インクリメンタル)モデル — 動く部分から順に本番へ出し、機能を積み増していきます

スパイラルと段階的リリースは似て見えます。毎周リスク分析をする説明ならスパイラル、部分ごとに利用者へ引き渡していく説明なら段階的リリースだと切り分けてください。

RADとタイムボックス

RAD(Rapid Application Development)は、少人数のチームと開発ツールを使って短期間で作り上げる手法です。先に期間を区切り、その中に収まる範囲を作るタイムボックスの考え方をとります。期間が動かないので、調整するのは作る量のほうだという発想です。この考え方は次回のアジャイル開発にそのまま引き継がれます。

押さえどころ

選択肢に迷ったら、次の3語で分類してください。試作品ならプロトタイピング、リスク分析の繰返しならスパイラル、部分ごとの引渡しなら段階的リリースです。どれにも当てはまらない一方通行の説明がウォーターフォールです。

次回はアジャイル開発です。近年の出題が増えている分野で、役割の名前と会議の名前を取り違えさせる問題が定番になっています。

生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア
編集 LuaGate編集部