開発方法論
下の動画はこの節の解説ではありません。 解説動画の雰囲気を知っていただくための見本として、「AI・機械学習」の動画を再生します。
この節の解説動画はプレミアム限定です。プレミアムなら全科目・全節が見放題!
プレミアムで見る開発モデルとは、どの工程をどの順で、どういう進め方でこなすかを型として決めたものです。前の節で学んだ6つの工程を、一直線に進めるのか、試作品を作りながら進めるのか、繰り返しながら進めるのか——その進め方の型を選ぶのが開発モデルです。この節では代表的な4つを比べます。どれが優れているかではなく、「要件が最初に固まるかどうか」「規模はどれくらいか」という条件で選ぶものだ、という視点で読み進めてください。令和4年度にはウォータフォールモデルとスパイラルモデルが出題されました。
簡単にいうと
滝は上から下へ流れ落ちて、逆流しない——だからウォータフォール!工程の後戻りをしないのが最大の特徴だよ。管理しやすい反面、最初に全部決めなきゃいけないのが難しいところ。
① 開発モデルとは
開発モデルとは、どの工程をどの順で、どういう進め方でこなすかを型として決めたものです。
② ウォータフォールモデル
工程を時間の順に並べ、前から1つずつ片づけていく型です。基本計画(要求分析/要件定義)、外部設計(概要設計)、内部設計(詳細設計)、プログラミング設計、プログラミング、テスト——という並びを、上から下へ流れるように進めます。
「滝が上から下へ流れ落ちる=ウォータフォール」という名前の由来どおり、工程の後戻りをしないことが特徴です。
③ 名前の由来から特徴を導く
| 語 | 意味 | 導かれる特徴 |
|---|---|---|
| water fall | 滝 | 上から下へ流れ、逆流しない |
滝の水が上に戻らないように、工程も後戻りしない——これがこのモデルの本質です。
④ ドキュメントと承認
具体例
設例 ウォータフォールモデル
> 次の記述の正誤を判定せよ。(令和4年度第13問 改題)
> ウォータフォールモデルは、作業工程を時系列に分割し、順を追って実施するモデルであり、工程の後戻りをしないことが特徴である。
解答 ○
「時系列に分割」「順を追って実施」「後戻りをしない」——3つの語がそろっています。
建築との対比で理解する
| 建築 | ウォータフォールモデル | |
|---|---|---|
| 進め方 | 設計 → 基礎 → 躯体 → 内装 | 要件定義 → 設計 → 製造 → テスト |
| 後戻り | 基礎ができてから間取りは変えられない | 設計が終わってから要件は変えられない |

ウォータフォールモデル
試験のポイント
簡単にいうと
試作品を作って、見てもらって、直す——これがプロトタイプモデル!「動くものを見せる」ことで、認識のずれを早く見つけられるんだ。ただし、小規模なシステムに限られるという弱点もあるよ。
① プロトタイプモデル
プロトタイプモデルとは、試作品(プロトタイプ)を作成してユーザが評価するというプロトタイピングの技法を、主要な技術として位置づけたモデルです。
| 用語 | 意味 |
|---|---|
| プロトタイプ | 試作品 |
| プロトタイピング | 試作品を作成してユーザが評価する技法 |
簡単にいうと
サブシステムごとに、設計から評価までを繰り返す——これがスパイラルモデル!ウォータフォールとプロトタイプを合わせたモデルなんだ。そしてリスク分析を行う点が、このモデルの特徴だよ。
① スパイラルモデル
スパイラルモデルは、システムを複数のサブシステムに分け、基本となるサブシステムをまずウォータフォールモデルの方法で開発してユーザに試用してもらい、その結果を反映させて次のサブシステムを開発することを繰り返していくモデルです。
② 2つのモデルの組み合わせ
スパイラルモデルは、ウォータフォールモデルとプロトタイプモデルを合わせたモデルです。
| 取り入れたもの | どちらから |
|---|---|
| 設計から評価までを一連のサイクルとして進める |
簡単にいうと
機能を細かく切り分けて、順番に作って組み込んでいく——それがインクリメンタル開発!スパイラルとの違いは「最初に全体の要件を決めるかどうか」だよ。
① インクリメンタル(Incremental)開発
システム全体を一度に開発するのではなく、細かく機能を切り分け(インクリメント)、順番に開発・テスト・実装を進める開発手法です。
それぞれのインクリメントは独立した機能として動作し、既存のシステムに組み込まれます。
② 名前の意味
| 語 | 意味 |
|---|---|
| increment | 増加分、少しずつ増やすこと |
動画・テキスト・過去問・AI添削まですべて網羅!
予備校代の1/10以下で、独学の不安をまるごと解決できます
| 各工程で行うこと |
|---|
| 成果をドキュメントにまとめる |
| ユーザ企業の承認を得る |
| 次の工程へ進む |
後戻りしないからこそ、承認が要る
後戻りしない前提なので、次に進む前に確実に固める必要があります。そのための仕組みが、ドキュメント化と承認です。
⑤ 位置づけ
長年多くのシステム開発プロジェクトに採用されてきた基本的なモデルです。
前節で学んだ6工程は、まさにこのモデルの工程です。他のモデルも、このモデルとの対比で説明されることが多くあります。
⑥ メリット
ウォータフォールモデルには、以下のようなメリットがあります。
| メリット |
|---|
| 工程の後戻りがないため、スケジュール策定やそれに基づく管理が比較的行いやすい |
| プロジェクト管理がしやすいため、大規模なシステム開発にも適用できる |
⑦ なぜ管理しやすいのか
| 特徴 | 管理への効果 |
|---|---|
| 工程が時系列に並ぶ | いつ何をやるかが決まる |
| 後戻りがない | 進捗が測りやすい |
| 成果物が明確 | 完了の判定ができる |
「いま全体の何%が終わったか」が言える——これが管理しやすさの中身です。
⑧ 大規模開発に向く理由
| 規模が大きいと | ウォータフォールなら |
|---|---|
| 関わる人が多い | 役割と順番が明確 |
| 分担が必要 | 工程で分けられる |
| 進捗の把握が困難 | 工程ごとに測れる |
第10章で学ぶプロジェクト進捗管理の手法は、このモデルを前提にしたものが多くあります。
⑨ デメリット
ウォータフォールモデルには、以下のようなデメリットがあります。
| デメリット |
|---|
| 基本計画(要求分析/要件定義)ですべての要件を洗い出すことが前提になるため、システム化が初めての場合やシステムが複雑である場合はプロジェクト推進にリスクが生じる |
| テストが終盤にしかないので、基本計画や外部設計の段階で入り込んだ食い違いが、終わり際まで表に出ない。見つかったときには戻る距離が長い |
⑩ 2つのデメリットの構造
| デメリット | 根っこにあるもの |
|---|---|
| すべての要件を洗い出すことが前提 | 最初に完全に決められるという想定 |
| 上流の欠陥が終盤まで発見できない | テストが後半にしかない |
どちらも「後戻りしない」という前提から生じています。
⑪ 前節の手戻り費用とつなげる
前節で見たとおり、工程が進むほど手戻りの費用は大きくなります。
| 欠陥が見つかる工程 | 費用の目安 |
|---|---|
| 基本計画 | 1 |
| テスト | 数十〜数百倍 |
ウォータフォールモデルでは、上流の欠陥がテスト工程まで発見されません。つまり、もっとも費用のかかる段階で見つかることになります。
これが最大の弱点であり、後続のモデルが解こうとした問題です。
⑫ どんな場合に向くか
| 条件 | 向くか |
|---|---|
| 要件が最初に固まっている | 向く |
| 同種のシステムを何度も作っている | 向く |
| 規模が大きい | 向く |
| システム化が初めて | 向かない |
| システムが複雑 | 向かない |
| 要件が途中で変わりうる | 向かない |
「何を作るかが最初から分かっている」ことが前提——この条件を満たせるかどうかが、選択の分かれ目です。
| 各段階で施主が確認 |
| 各工程でユーザ企業が承認 |
建築では当たり前のこの進め方が、システム開発でも長く使われてきました。
ただし、建築とシステムには違いがある
| 建築 | システム | |
|---|---|---|
| 完成形の想像 | 図面で分かる | 動かすまで分からない |
| 変更の容易さ | 物理的に困難 | 技術的には可能 |
| 要件の変化 | 建てている間に家族構成は変わらない | 業務は変わりうる |
2つ目と3つ目が、システム開発特有の事情です。だからこそ、後戻りを許す他のモデルが生まれました。
大規模プロジェクトでウォータフォールが選ばれる理由
100人が関わるプロジェクトを想定します。
| 課題 | ウォータフォールでの解決 |
|---|---|
| 誰が何をするか | 工程で分担できる |
| 進捗をどう測るか | 工程の完了で測る |
| 成果物をどう管理するか | 各工程でドキュメント化 |
| 契約をどう結ぶか | 工程ごとに区切れる |
4つ目が実務上重要
外部に発注する場合、「どこまでできたら、いくら支払うか」を決める必要があります。工程が明確に区切られていれば、契約も区切りやすくなります。
| 契約の形 | ウォータフォール |
|---|---|
| 要件定義まで | 第1契約 |
| 設計〜テスト | 第2契約 |
アジャイル開発では、この区切りが難しくなります。第10章で学ぶ見積りの問題とも関わる論点です。
中小企業でのウォータフォール
| 場面 | 向くか |
|---|---|
| パッケージソフトの導入 | 向く(機能が決まっている) |
| 会計システムの入れ替え | 向く(要件が明確) |
| 新しい事業のためのシステム | 向かない(要件が固まらない) |
| 業務改革を伴う導入 | 向かない(進めながら分かることが多い) |
「何を作るか分かっているか」を最初に問う
| 経営者の発言 | 示唆されること |
|---|---|
| 「こういうものが欲しい」と明確に言える | ウォータフォールが向く |
| 「とりあえず効率化したい」 | 要件が固まっていない。別のモデルを検討 |
診断士としての助言
| 状況 | 助言 |
|---|---|
| 要件が固まっている | ウォータフォールで進める |
| 要件が曖昧 | まず試作品を作って確かめる(次のテーマ) |
| 規模が大きい | 段階的に分けて進める(第3・4のテーマ) |
「いきなり全部作ろうとしない」——これが、中小企業への助言として実務的です。
確認してみましょう
> 次の記述の正誤を判定せよ。
> a ウォータフォールモデルでは、各工程での成果をドキュメントにまとめ、ユーザ企業の承認を得てから次の工程へ進む。
> b ウォータフォールモデルは、工程の後戻りがあるため、スケジュール管理が困難である。
> c ウォータフォールモデルでは、上流工程で欠陥があってもプロジェクトの終盤まで発見できないことがある。
解答 a:○ b:× c:○
基本計画(要求分析/要件定義)工程において、ベンダはユーザ要求をもとにプロトタイプを作成し、これをユーザとともに評価します。
ここでユーザから改訂要求があれば、リストアップしてプロトタイプを修正します。
ユーザの合意が得られた場合には、設計工程に進みます。
設計工程でもプロトタイプを作成します。ここで改訂要求があれば、プロトタイプを修正します。
③ 流れを整理する
| 段階 | 動き |
|---|---|
| ① | 基本計画工程でプロトタイプを作成 |
| ② | ユーザとともに評価 |
| ③ | 改訂要求があれば修正 |
| ④ | 合意が得られたら設計工程へ |
| ⑤ | 設計工程でもプロトタイプを作成 |
| ⑥ | 改訂要求があれば修正 |
④ このモデルが解こうとした問題
このような試行錯誤を繰り返すことで、ユーザの満足するシステムを開発することができます。
ウォータフォールモデルのデメリットと対比すると、狙いが明確になります。
| ウォータフォールの問題 | プロトタイプモデルでの解決 |
|---|---|
| すべての要件を最初に洗い出す必要 | 試作品を見ながら要件を固める |
| 上流の欠陥が終盤まで発見できない | 上流の段階で動くものを見せる |
⑤ なぜ「動くもの」が必要なのか
| 確認方法 | ユーザが判断できるか |
|---|---|
| 文章の仕様書 | 想像しにくい |
| 画面のイメージ図 | ある程度分かる |
| 動く試作品 | 確実に分かる |
「こういうものだと思っていた」という認識のずれは、動くものを見るまで表面化しません。
人は、見たことのないものを正確に想像できない——プロトタイプモデルは、この人間の限界を前提にした進め方です。
⑥ デメリット
なお、比較的小規模なシステムの開発に限定されるなどのデメリットがあります。
⑦ なぜ小規模に限られるのか
| 理由 | 内容 |
|---|---|
| 試作品を作る工数がかかる | 規模が大きいほど負担が重い |
| 何度も作り直す | 規模が大きいと時間が足りない |
| 全体像を試作品で表しきれない | 大規模では一部しか見せられない |
| ユーザの評価に時間がかかる | 関係者が多いと調整が困難 |
⑧ ウォータフォールモデルとの比較
| ウォータフォールモデル | プロトタイプモデル | |
|---|---|---|
| 要件の固め方 | 最初にすべて洗い出す | 試作品を見ながら固める |
| ユーザの関与 | 承認するだけ | 試作品を評価する |
| 認識のずれ | 終盤まで表面化しない | 早い段階で表面化する |
| 規模 | 大規模にも適用できる | 比較的小規模に限定される |
| 管理 | しやすい | しにくい |
⑨ 第8章とのつながり
第8章で学んだノーコード・ローコードは、プロトタイプを素早く作る手段として有効です。
| 手段 | 試作品を作る速さ |
|---|---|
| 従来のプログラミング | 遅い |
| ローコード | 速い |
| ノーコード | さらに速い |
試作品を作る費用が下がれば、プロトタイプモデルを採用しやすくなります。近年、この進め方が広がっている背景には、こうした道具の発達があります。
⑩ 実務での使われ方
プロトタイプモデル単独で使われることは、現在では多くありません。ただし、プロトタイピングという技法は、さまざまな場面で使われます。
| 場面 | 使われ方 |
|---|---|
| 要件定義の補助 | 画面の試作品を作って確認 |
| ウォータフォールの上流工程 | 外部設計の確認に使う |
| アジャイル開発 | 短い周期で動くものを見せる |
「動くものを早く見せる」という考え方そのものが、その後の開発モデルに引き継がれた——こう捉えると、このモデルの位置づけが分かります。
具体例
認識のずれが、どれほど起きるか
「顧客の一覧画面がほしい」という要求を例に考えます。
ユーザが想像していたもの
| 項目 | 内容 |
|---|---|
| 表示 | 顧客名、電話番号、前回取引日 |
| 並び順 | 前回取引日の新しい順 |
| 件数 | 1画面に20件 |
| 検索 | 顧客名の一部でも探せる |
ベンダが作ったもの
| 項目 | 内容 |
|---|---|
| 表示 | 顧客コード、顧客名、住所 |
| 並び順 | 顧客コード順 |
| 件数 | 1画面に50件 |
| 検索 | 顧客コードの完全一致 |
どちらも「顧客の一覧画面」
仕様書に「顧客の一覧を表示する画面」としか書かれていなければ、どちらも要求を満たしています。しかし、ユーザにとっては使い物になりません。
いつ気づくか
| 開発モデル | 気づく時期 |
|---|---|
| ウォータフォール | テスト工程(終盤) |
| プロトタイプ | 基本計画工程(最初) |
手戻りの大きさ
| 時期 | 修正の範囲 |
|---|---|
| 基本計画 | 試作品を直すだけ |
| テスト | 設計書、プログラム、テスト項目のすべて |
中小企業でプロトタイピングを活用する
やり方の例
| 手段 | 費用 | 効果 |
|---|---|---|
| 紙に画面を手書きする | ゼロ | 項目の過不足が分かる |
| 表計算ソフトで画面を模擬する | ほぼゼロ | 操作の流れが分かる |
| ノーコードで試作する | 低い | 実際に動かせる |
1つ目でも効果がある
「紙に書いた画面を、現場の人に見せる」——これだけで、多くの認識のずれが見つかります。
| 現場から出る指摘 | 例 |
|---|---|
| 項目が足りない | 「担当者名も見たい」 |
| 順番が使いにくい | 「よく使う項目を上に」 |
| 業務と合わない | 「この順番では作業できない」 |
費用をかけずにできる手戻り防止策——診断士が支援できる具体的な場面です。
プロトタイプの注意点
| 注意 | 内容 |
|---|---|
| 試作品を本番と誤解される | 「もうできているのでは」と思われる |
| 見た目だけ作り込みすぎる | 中身がないのに完成に見える |
| 試作品をそのまま本番にする | 品質が確保されていない |
3つ目がとくに危険
「動いているから、これをそのまま使おう」——試作品は、動くことだけを目的に作られており、エラー処理や性能への配慮がありません。
| 試作品 | 本番システム |
|---|---|
| 動けばよい | 異常時も正しく動く必要がある |
| 少数のデータ | 大量のデータに耐える必要がある |
| 1人で使う | 複数人が同時に使う |
「試作品はいったん捨てる」という前提を、関係者で共有しておく必要があります。
確認してみましょう
> 次の記述の正誤を判定せよ。
> a プロトタイプモデルは、試作品を作成してユーザが評価するというプロトタイピングの技法を主要な技術として位置づけたモデルである。
> b プロトタイプモデルでは、ユーザの合意が得られた場合に設計工程に進む。
> c プロトタイプモデルは、大規模なシステムの開発に適している。
解答 a:○ b:○ c:×

プロトタイプモデル
試験のポイント
| ユーザに試用してもらい、結果を反映させる | プロトタイプモデル |
③ 進め方
| 順番 | 動き |
|---|---|
| ① | システムを複数のサブシステムに分ける |
| ② | 基本となるサブシステムをウォータフォールモデルの方法で開発 |
| ③ | ユーザに試用してもらう |
| ④ | その結果を反映させて次のサブシステムを開発 |
| ⑤ | ②〜④を繰り返す |
④ イメージ
| 設計 | プログラミング | テスト | 評価 | |
|---|---|---|---|---|
| サブシステム① | ● | ● | ● | ● |
| サブシステム② | ● | ● | ● | ● |
| サブシステム③ | ● | ● | ● | ● |
各サブシステムが、設計から評価までの一巡を回る——この繰り返しが、らせん(spiral)のように見えることが名前の由来です。
⑤ リスク管理という特徴
各開発サイクルの開始時にはリスク分析の評価を行うなどリスク管理を行う点に特徴があります。
| 各サイクルの開始時に行うこと |
|---|
| リスク分析の評価 |
なぜリスク分析なのか
サブシステムごとに区切って進めるため、次にどのサブシステムを開発するかを選べます。
| 判断 | 内容 |
|---|---|
| リスクの高いものを先に | 早く問題を発見できる |
| 価値の高いものを先に | 早く効果が出る |
「危ないところから手をつける」——これがリスク管理の考え方です。
⑥ プロトタイピングの適用
また、スパイラルモデルは、プロトタイピングを適用することが多くなっています。
各サイクルで、前のテーマで学んだプロトタイピングの技法が使われます。
⑦ メリットとデメリット
ウォータフォールモデルと同様に設計から評価への方向性を一連のサイクルとして開発するため、工程全体の見通しをある程度立てることができますが、ウォータフォールモデルと比べるとプロジェクトの管理はしにくくなります。
| メリット | デメリット | |
|---|---|---|
| 見通し | ある程度立てられる | — |
| 管理 | — | ウォータフォールより管理しにくい |
⑧ 3つのモデルを並べる
| ウォータフォール | プロトタイプ | スパイラル | |
|---|---|---|---|
| 進め方 | 一直線 | 試作と修正の繰り返し | サブシステムごとに一巡を繰り返す |
| ユーザの試用 | テスト工程のみ | 各工程で評価 | サブシステムごとに試用 |
| 規模 | 大規模も可 | 小規模に限定 | 中〜大規模 |
| 管理のしやすさ | しやすい | しにくい | 中程度 |
| リスク管理 | — | — | 各サイクルで評価 |
⑨ スパイラルモデルの位置づけ
| モデル | 解決しようとした問題 |
|---|---|
| ウォータフォール | (基本形) |
| プロトタイプ | 要件が固まらない問題 |
| スパイラル | プロトタイプの規模の限界 |
プロトタイプモデルの良さを、大きな規模でも使えるようにした——これがスパイラルモデルの立ち位置です。
⑩ 試験での問われ方
令和4年度の本試験では、次の記述が出されました。
> スパイラルモデルは、システムを複数のサブシステムに分け、基本となるサブシステムをまずウォータフォールモデルの方法で開発してユーザに試用してもらい、その結果を反映させて次のサブシステムを開発することを繰り返していくモデルである。
解答:○
「複数のサブシステムに分ける」「ウォータフォールモデルの方法で開発」「繰り返す」——3つの語がそろっているかを確認します。
⑪ 第8章のローコードで見た設例
第8章で、次の設例を見ました。
> ローコード開発では、システムの全体像をモデル化し、優先度を付けた機能単位で計画、設計、構築を反復的に行う。
> 解答:×(アジャイル開発またはスパイラルモデルに関連する内容)
「優先度を付けた機能単位で反復的に行う」——これがスパイラルモデルやアジャイル開発の特徴です。ローコードは記述量の話であって、進め方の話ではありませんでした。
具体例
設例 スパイラルモデル
> 次の記述の正誤を判定せよ。(令和4年度第13問 改題)
> スパイラルモデルは、ウォータフォールモデルとプロトタイプモデルを合わせたモデルである。
解答 ○
販売管理システムをスパイラルモデルで開発する
システム全体を4つのサブシステムに分けます。
| サブシステム | 内容 | 優先度 |
|---|---|---|
| ① 受注管理 | 受注の登録と照会 | 高(基本となる) |
| ② 在庫管理 | 在庫の照会と引き当て | 高 |
| ③ 出荷管理 | 出荷指示と実績 | 中 |
| ④ 売上管理 | 請求書の発行 | 中 |
第1サイクル:受注管理
| 工程 | 作業 |
|---|---|
| リスク分析 | 要件が固まっているか、技術的な難所はないか |
| 設計 | 画面、データ構造 |
| プログラミング | 実装 |
| テスト | 動作確認 |
| 評価 | ユーザに試用してもらう |
評価で得られたこと
| 指摘 | 対応 |
|---|---|
| 「取引先ごとの単価が必要」 | 次のサイクルの設計に反映 |
| 「検索を氏名でもできるように」 | 同上 |
| 「一覧の項目を変えたい」 | 同上 |
第2サイクル:在庫管理
第1サイクルで得た知見を反映させて進めます。
| 反映すること |
|---|
| 取引先ごとの単価という考え方 |
| 検索の使いやすさ |
| 一覧の項目の決め方 |
サイクルを重ねるほど、要件の精度が上がる
| サイクル | 手戻りの量 |
|---|---|
| 第1 | 多い(初めてなので) |
| 第2 | 減る |
| 第3 | さらに減る |
| 第4 | 少ない |
学習効果が働く——これがスパイラルモデルの利点です。
ウォータフォールとの違いを、費用で比べる
ウォータフォールの場合
| 段階 | 出来事 |
|---|---|
| 要件定義 | 全機能の要件を一度に決める |
| テスト工程 | 「取引先ごとの単価が必要」と判明 |
| 手戻り | 全機能に影響。大規模な修正 |
スパイラルの場合
| 段階 | 出来事 |
|---|---|
| 第1サイクルの評価 | 「取引先ごとの単価が必要」と判明 |
| 反映 | 第2サイクル以降の設計に織り込む |
| 手戻り | 第1サイクルの分だけ |
影響範囲が4分の1で済む
リスク分析の具体例
各サイクルの開始時に、次のようなことを検討します。
| リスク | 評価 | 対応 |
|---|---|---|
| 要件が固まっていない | 高 | プロトタイプを先に作る |
| 技術的に難しい | 中 | 先に技術検証を行う |
| 担当者の確保が困難 | 高 | スケジュールを見直す |
| 既存システムとの連携 | 中 | 早めに検証する |
「危ないところから先に手をつける」
| 進め方 | 結果 |
|---|---|
| 簡単なものから | 難しい問題が終盤に残る |
| 難しいものから | 問題が早く判明し、対応の時間がある |
後者のほうが、プロジェクト全体としては安全です。これがリスク管理の考え方です。
管理しにくい理由
| 課題 | 内容 |
|---|---|
| 全体の完了時期が読みにくい | 各サイクルで要件が変わりうる |
| 費用が確定しにくい | 同上 |
| 契約が難しい | 何をいくらで作るかを最初に決められない |
3つ目が、外部に発注する場合の実務的な問題です。第10章で学ぶ見積りの手法とも関わります。
確認してみましょう
> 次の記述の正誤を判定せよ。
> a スパイラルモデルでは、各開発サイクルの開始時にリスク分析の評価を行うなどリスク管理を行う。
> b スパイラルモデルは、ウォータフォールモデルと比べてプロジェクトの管理がしやすい。
> c スパイラルモデルは、プロトタイピングを適用することが多い。
解答 a:○ b:× c:○

スパイラルモデル(1/2)

スパイラルモデル(2/2)
試験のポイント
| 増加していく、段階的な |
少しずつ積み増していく——この性格が名前になっています。
③ 利点
この手法により、システム全体が完成する前から部分的に利用が可能となり、ユーザからのフィードバックをもとに素早く改良を加えることができます。
| 利点 | 内容 |
|---|---|
| 完成前から部分的に利用できる | 早く効果が出る |
| フィードバックをもとに素早く改良できる | 使いながら良くしていける |
④ スパイラルモデルとの違い
スパイラルモデルは、要件定義からテストまでを一連のサイクルとして繰り返すのに対し、インクリメンタルモデルでは最初にシステム全体の要件定義を定めた後に、各インクリメントで設計からテストまでを段階的に進めます。
| スパイラルモデル | インクリメンタル開発 | |
|---|---|---|
| 要件定義 | 各サイクルで行う | 最初にシステム全体で行う |
| 繰り返す範囲 | 要件定義〜テスト | 設計〜テスト |
要件定義を最初にまとめてやるか、各回でやるか——これが決定的な違いです。
⑤ アジャイル開発との違い
また、アジャイル開発は短いサイクルで開発を進め、各サイクルで要件や設計が変わる可能性がありますが、インクリメント開発では全体の要件や設計が最初に決まっていることが多くなっています。
| アジャイル開発 | インクリメンタル開発 | |
|---|---|---|
| 要件や設計 | 各サイクルで変わる可能性がある | 最初に決まっていることが多い |
| サイクル | 短い | — |
⑥ 4つを「要件をいつ決めるか」で並べる
| モデル | 要件を決める時期 |
|---|---|
| ウォータフォール | 最初にすべて |
| インクリメンタル | 最初に全体を決め、作るのは分割 |
| スパイラル | 各サイクルで決める |
| アジャイル | 各サイクルで変わりうる |
上から下へ行くほど、変化を受け入れる度合いが高くなります。
⑦ インクリメンタル開発が向く場面
| 条件 | 向くか |
|---|---|
| 要件は決まっているが、規模が大きい | 向く |
| 早く一部でも使いたい | 向く |
| 段階的に予算を使いたい | 向く |
| 要件が固まっていない | 向かない |
⑧ 「部分的に利用が可能」ということの価値
| 従来(一括) | インクリメンタル |
|---|---|
| 全部できるまで使えない | できた機能から使える |
| 効果が出るのは最後 | 早く効果が出始める |
| 投資の回収も最後 | 早く回収が始まる |
投資の観点から見ても意味があります。1年かけて作るシステムでも、3か月目から一部が使えれば、9か月分の効果が前倒しになります。
⑨ 4つのモデルをまとめる
| モデル | 一言でいうと |
|---|---|
| ウォータフォール | 一直線に進み、後戻りしない |
| プロトタイプ | 試作品を作って評価し、修正する |
| スパイラル | サブシステムごとに一巡を繰り返す |
| インクリメンタル | 機能を切り分け、順番に作って組み込む |
⑩ 選ぶ基準
| 問い | 答えが「はい」なら |
|---|---|
| 要件は最初に固められるか | ウォータフォール、インクリメンタル |
| 規模は大きいか | ウォータフォール、インクリメンタル、スパイラル |
| 早く一部でも使いたいか | インクリメンタル、スパイラル |
| 要件が変わりそうか | スパイラル、アジャイル(次節) |
「どれが優れているか」ではなく「どの条件に合うか」——モデルの選択は、この判断です。
具体例
インクリメンタル開発の進め方
社内の業務システムを、インクリメンタル開発で作る場面を考えます。
第1段階:全体の要件定義
| 決めること | 内容 |
|---|---|
| システム全体の機能 | 受注、在庫、出荷、売上、分析 |
| データの構造 | 全体で共通のデータ設計 |
| 画面の基本方針 | 操作性の統一 |
| 優先順位 | どの機能から作るか |
ここは一度にまとめて行います。
第2段階以降:インクリメントごとに開発
| 回 | 作るもの | 稼働時期 | 効果 |
|---|---|---|---|
| 第1インクリメント | 受注管理 | 3か月後 | 受注の入力が効率化 |
| 第2インクリメント | 在庫管理 | 5か月後 | 在庫照会が可能に |
| 第3インクリメント | 出荷管理 | 7か月後 | 出荷指示が自動化 |
| 第4インクリメント | 売上管理 | 9か月後 |
3か月目から効果が出始める
| 開発方式 | 効果が出始める時期 |
|---|---|
| 一括開発 | 12か月後 |
| インクリメンタル | 3か月後 |
9か月分の効果が前倒しになります。
最初に全体の要件を決める意味
| もし決めていなければ | 決めていれば |
|---|---|
| 第2段階でデータ構造が合わないと判明 | 最初から共通のデータ構造 |
| 作り直しが発生 | 積み増していける |
| 画面の操作性がばらばら | 統一される |
「積み増していける」ことが前提
インクリメンタル開発では、既存のシステムに組み込まれることが前提です。そのためには、
| 必要なこと |
|---|
| 全体のデータ構造が最初に決まっている |
| 機能の境界が明確 |
| 後から足しても壊れない設計 |
第7章で学んだマイクロサービスアーキテクチャが、この「後から足せる設計」を実現する手段のひとつです。
中小企業での現実的な進め方
予算1,000万円のシステム導入を検討している場面を考えます。
一括で進める場合
| 課題 | 内容 |
|---|---|
| 1,000万円を一度に用意する必要 | 資金繰りへの影響 |
| 効果が出るのは1年後 | 投資回収が遅い |
| 失敗したときの損失が大きい | 全額が無駄になりうる |
分割して進める場合
| 回 | 費用 | 判断 |
|---|---|---|
| 第1 | 300万円 | 効果を確かめてから次へ |
| 第2 | 300万円 | 同上 |
| 第3 | 400万円 | 同上 |
途中で止められる
| 状況 | 対応 |
|---|---|
| 第1段階で効果が出なかった | 第2段階を見送る(損失は300万円) |
| 効果が出た | 続ける |
| もっと良い方法が見つかった | 方針を変える |
投資のリスクを分散できる——これが中小企業にとっての大きな利点です。
診断士としての助言
| 場面 | 助言 |
|---|---|
| 大きな投資を検討している | 段階に分けられないか |
| 効果が不確実 | 小さく試して確かめる |
| 予算が限られる | 優先順位をつけて順番に |
「全部やるか、やらないか」ではなく、「どこから始めるか」——この問いの立て方を示すことが、実務的な支援になります。
確認してみましょう
> 次の記述の正誤を判定せよ。
> a インクリメンタル開発では、システム全体を一度に開発するのではなく、細かく機能を切り分けて順番に開発・テスト・実装を進める。
> b インクリメンタル開発では、各インクリメントで要件定義からテストまでを繰り返す。
> c インクリメンタル開発では、システム全体が完成する前から部分的に利用が可能となる。
解答 a:○ b:× c:○

インクリメンタル開発
試験のポイント
プレミアムプラン
¥9,800〜/ 買い切り・自動更新なし(税込)
決済はStripe(世界最高水準・PCI-DSS準拠)で安全に処理されます。カード情報は当サービスに保存されません。
| 第5インクリメント | 分析機能 | 12か月後 | 経営判断に使える |