IT技術を駆使して行うシステム開発では、開発手法と同時に開発モデルを覚えておくことも重要であり、「V字モデル」は代表的な開発モデルの一種です。
開発をする際には、どのようなソフトウェアを作成したいのか決めて、実際にコーディングを行い、正常に作動するのかテストをする必要があります。
しかしながら、ソフトウェアの開発にはさまざまな手法があり、モデルによってメリット・デメリットが決まっており、また、「そもそもV字モデルってなに?」と思う人も多いでしょう。
今回は、開発モデルのひとつである「V字モデル」について解説し、ウォーターフォールモデル・W字モデルとの違いや、アジャイル開発との組み合わせ、開発工程、メリット・デメリットなどについても紹介します。
UI・UX、アプリ開発などのシステム開発を中心に執筆しながら、日々勉強しています。特に用語解説を得意とし、システム開発やIT系業務の初心者にもわかりやすい記事を心掛けています。
V字モデルとは

V字モデル(V-Model)は、開発工程とテスト工程が対称的に結びついているソフトウェア開発モデルです。
要求分析から受け入れテストまでがV字に並んでおり、開発の方向性や作業工程を視覚的にわかりやすくするために活用されています。
ウォーターフォールモデルを基にした開発工程と、開発工程の段階にあわせたテスト工程を結びつけることで、検証の精度と効率性の向上を可能にします。
V字モデルの基本
V字モデルでは、次のような順番で開発を行います。
- 要求分析
- 要件定義
- 基本設計
- 詳細設計
- コーディング
- 単体テスト(詳細設計)
- 統合テスト(基本設計)
- システムテスト(要件定義)
- 受け入れテスト(要求分析)
V字モデルには2つの工程があり、要求分析からコーディングが開発工程、単体テストから受け入れテストがテスト工程です。
図のように開発工程とテスト工程が矢印で繋がっているのは、開発工程に対応しているテスト工程がどれなのかを示しています。
例えば、
◯要件分析に対応するテスト→システムテスト
- 「要件分析」の段階でユーザーから情報収集
- 必要としている機能が何か(要件)を定義
- 定義された要件に「過不足がないか」「実際に使用する環境に適しているのか」を検証
これが、「要件定義とシステムテスト」の関係です。
結果的に、テストで問題がなければ要求分析は問題なかった、ということになります。
ほかにも、
◯基本設計と統合テスト
- 開発するシステムやソフトウェアの構造・機能・動作を設計
- システム全体が正常に作動するかをテスト
◯詳細設計と単体テスト
- 各機能の具体的な仕様を設計
- 各機能が正しく作動するか・ユーザーの要求を満たす機能であるかをテスト
このように、開発工程とテスト工程をリンクさせ、精度の高い検証を行うことがV字モデルの基本になります。
V字モデルの目的
V字モデルの主な目的は、開発工程を段階的に進めて効果的なテストと品質管理を行い、質の高いシステム開発を実現することです。
V字モデルでは、開発工程が大まかに5段階に分かれており、各工程でテストを行います。
(1)要求分析
(2)要件定義
- 要求分析の結果をふまえて「ソフトウェアにどのような機能を設けるのか」を定義
- 機能のほかに、開発までのスケジュールや納期、必要な人員なども明確にする
(3)基本設計
- 要件定義をの結果を基に、「ソフトウェアの全体像」を設計
- ソフトウェアの利用開始から終了までのプロセスや、画面のレイアウトなど
(4)詳細設計
- 基本設計で明確にした全体像で必要とする「ソフトウェアの詳細な部分」を設計
- それぞれの機能の具体的な設計を行い、ソフトウェア全体が問題なく作動するよう設計
(5)コーティング(開発)
これまでの設計に基づいて開発
このように、前段階の作業が終わったら次の段階の作業へと段階的に進めるのが、開発プロセスです。
そして、それぞれの段階で、「本当にこの情報だけでソフトウェアを開発できるのか?」「情報に不足はないか?」といったテストを行うことで、高品質なソフトウェアを開発し、品質管理ができます。
テストを定期的に行ったり、正確に行ったりすることで過不足している情報をいち早く気づけ、結果として品質管理が徹底されるのです。
ウォーターフォールモデルとの違い

ウォーターフォールモデル(Waterfall-Model)は、ソフトウェア開発モデルの1つで、段階ごとに開発を行い、次の段階に進んだら前の段階には戻らないことが特徴です。
ウォーターフォールとは、日本語では『滝』を意味します。滝は上から下へと水が落ちますが、下に落ちた水は上には戻りません。次の段階に進んだら前の段階には戻らないという特徴が滝と似ているため、ウォーターフォールモデルと言われています。
V字モデルとウォーターフォールモデルは、ソフトウェア開発における代表的な開発モデルです。
それぞれを比較すると、次のようになります。
| 開発モデル | V字モデル | ウォーターフォールモデル |
| 開発の進め方 | 次の段階に進んでも、前の段階に戻ることができる | 次の段階に進んだら前の段階には戻らない |
| テスト | 各段階でテストが行われる | 開発の最後にテストが行われる |
| ソフトウェアに変更があった場合 | 変更に対応できる | 変更に対応できない |
| 特徴 | 開発とテストが結びついている | 単純で理解しやすい |
V字モデルは、ソフトウェア開発のプロセスを効果的に管理し、品質を向上させたい場合に採用される開発モデルです。
一方でウォーターフォールモデルは、ソフトウェア開発の大まかな流れが予測可能で変更が少ない場合に採用されています。
アジャイル開発との組み合わせ

アジャイル開発(Agile development)は、ユーザーの要求変更の対応を柔軟に行うことを重視している開発手法です。要件定義・設計・コーディング・テスト・リリース(運用)を繰り返すため、ソフトウェアの変更がしやすいことが特徴です。
また、効果的なテストと高品質を管理するV字モデルと、柔軟性のある開発プロセスを実現するアジャイル開発を組み合わせて、ソフトウェアを開発する場合もあります。
- 要求分析~基本設計
- 要求分析・要件定義・基本設計では、V字モデルの開発プロセスを使用
どのようなソフトウェアを開発するのか、情報を確立させ、開発の流れと方針を決める
- 要求分析・要件定義・基本設計では、V字モデルの開発プロセスを使用
- 詳細設計~単体テスト
- 詳細設計・コーディング・単体テストでは、アジャイル開発の開発プロセスを使用
- もしソフトウェアの変更があった場合は迅速に対応
- 統合テスト・システムテスト
- 統合テスト・システムテストでは、V字モデルの開発プロセスを使用
- 単体テストを終えた機能を統合し、統合テストを行った後、システムテストを実施
- フィードバックと修正
- ソフトウェアが完成したら、ソフトウェアの発注者にフィードバックをもらう
- ここではアジャイル開発の開発プロセスを使用
- もしソフトウェアの変更・修正が必要な場合は、迅速に対応を行う
このように、2つの開発プロセスを組み合わせる場合は「ハイブリット開発手法」と言います。ソフトウェア開発の進捗やソフトウェアの変更に応じて開発プロセスを組み合わせることで、効率的なシステム開発を実現します。
ただし、異なる手法を組み合わせる場合はソフトウェア開発の工程の管理が大変になりますので、事前にV字モデルとアジャイル開発について理解を深めておくといいでしょう。
V字モデルのメリット

次に、ソフトウェア開発にV字モデルを採用するメリットを解説します。
V字モデルは、1つ1つの段取りで工程を進めていくので、工程のわかりやすさや見通しの持ちやすさ、リスク低減など、多くのメリットがあります。
工程がわかりやすい
V字モデルは、
- 要求分析
- 要件定義
- 基本設計
- 詳細設計
- コーディング
- 単体テスト
- 統合テスト
- システムテスト
- 受け入れテスト
と工程が分かれているため、「何を決めるのか」「どんなテストをすればいいのか」など、段階ごとに何をすべきなのかがわかりやすいことが特徴です。
工程ごとにやるべきことが決まっていますので、V字モデルの開発の流れに沿って作業を進めれば、ソフトウェアの完成が比較的スムーズになります。
テスト計画を簡素化できる
V字モデルは開発工程とテスト工程が相互に対応しているため、テストの計画が立てやすいこともV字モデルのメリットです。
先に設計や開発を進めて、開発後にテスト内容を決めるという手順では、作業時間が伸びてしまう可能性が高くなります。
しかし、V字モデルを活用すれば、「要求分析で5つの結果が出たから、受入テストではそれらの結果に沿っているか確認しよう」といった、開発工程と紐づけてテスト工程の計画を立てることができます。
また、テスト計画が立てやすくなることにより、業務の効率性も上がります。
プロジェクト管理を可視化できる
開発工程が決まっているので、「今どの工程にいるのか」と見返すことができ、プロジェクトの進捗状況がわかります。
たとえば「10日までに要件定義を終わらせる」と計画をしていた場合、10日の時点で次の基本設計に入っていれば「プロジェクトが予定よりも早く進行できている」、13日の時点で要件定義が終わっていなければ「プロジェクトが予定より遅れている」と把握できます。
また、開発スケジュールを関係者全体に共有することも重要です。これにより関係者間での認識のズレを防ぐことができたり、トラブルや過不足点などへのスムーズな対応ができたりし、より効率的にシステム開発に取り組めます。
手戻りリスクを低減できる
システム開発するうえでトラブルはつきものであり、予期せぬ事態で前の工程に戻ることになって作業時間にロスが生じてしまったり、納期に間に合わなくなってしまったりすることも少なくありません。
しかし、V字モデルは、 要求分析の開発工程から受入テストのテスト工程を段階的に行うため、手戻りリスクを低減することができます。 ウォーターフォールモデルを基盤にして開発を進め、開発工程にテストを行うことで、工程ごとに不具合を見つけやすくなるからです。
V字モデルは、要求分析から要件定義へ、要件定義から基本設計へと落とし込み、詳細設計を開発したら単体テストを、クリアしたら基本設計の開発と統合テストを行うように、前の工程の作業が終わってから次の工程に進みます。
システム開発で懸念されている作業時間ロスや費用の増大などが、V字モデルの活用で防げることは開発者としても魅力的なポイントです。
V字モデルのデメリット

上流工程のミスが致命的
V字モデルでは、前の工程が終わったら次の工程へ進むので、逆に言えば前の工程の作業をもとにして開発を行います。そのため、開発工程の要求分析からコーティングのどこかの前工程でミスが生じた場合、開発側にとって大きなダメージになります。
電卓の開発を例にしてみましょう。
要求分析で「計算方法は、『足し算』『引き算』『掛け算』『割り算』の4つ」と決めた場合、要件定義から詳細設計・コーディングまでは、要求分析で決められた内容をもとに開発していきます。
しかし、要件定義で誤って「割り算」の定義を忘れてしまった場合、基本設計以降では、「割り算」について何も設計がされない(開発がされない)ということになってしまうのです。
さらには、万が一に要件定義が間違っていたとしても開発後のシステムテストで間違いに気づけない可能性があり、次の工程である「受け入れテスト(要求分析)」ではじめて「割り算ができない」ということに気が付きます。
そのようになってしまうと、開発したシステム全体を修正せざるをえなくなり、結果的に作業時間や費用などに大きな影響を与えます。
したがって、次の工程に進む前に、設計漏れや開発の関係者間で認識の差異がないかを、今一度よく確認することが大切です。
変更への対応が困難
開発の途中で、ソフトウェアの仕様が変更されることは良くあります。しかし、V字モデルは手戻りが難しいウォーターフォールモデルを基盤に開発しているため、前の工程に戻ってシステムを変更する対応も難しいです。
万が一、ソフトウェアの仕様変更が加わった場合は、開発工程では要求分析からコーディングまでの設計すべてを、テスト工程では実施するテスト内容を修正しなければなりません。
そのため、V字モデルは、仕様が変更されるかもしれないソフトウェアの開発には不向きと言えます。
初期段階で要件定義を詳細に行う必要がある
要求分析の段階で決まった仕様をだんだんと詳細化していくのが、V字モデルの大まかな流れです。つまり、要求分析の結果で決まったものに対し、必要とする機能などを定義する要件定義の段階で、より詳細に仕様を決める必要があります。
基本的には、要件定義で決まった仕様はコーディングまで引き継がれ、システムテストで初めて確認されます。
そのため、要件定義での開発内容・機能の詳細化の質によって、「今後の作業工程で後戻りがどれだけ少なくなるか」が決まるといっても過言ではありません。
テスト段階までに時間がかかる
V字モデルのテスト工程は、要求分析からコーディングまでの開発工程がすべて終わったあとに、単体テストから受入テストまでを順番に行われます。そのため、1つ1つのテスト段階に時間がかかり、システム全体のテストが終了するまで長い時間を必要とするのが、V字モデルのデメリットです。
開発を終えても、すぐにテストできるのは詳細設計で決まったことを確認する単体テストのみであり、要求分析の内容は受け入れテストの工程に入るまで確認できません。
ソフトウェアを開発する際には、トラブル発生やテスト段階までに時間がかかる点も考慮して、余裕を持ったスケジュールで行いましょう。
V字モデルの開発工程とテスト工程

ここまでは、V字モデルの基本やウォーターフォールモデルとの違い、アジャイル開発との活用について解説しました。
続いては、V字モデルの開発工程の流れと、テスト工程との関係性について詳しく説明します。
V字モデルは、要求分析から開発工程が始まり、ソフトウェアの開発後は単体テストからテスト工程に移るように、段階的に開発を進めていきます。
今回は、PCやスマートフォンの中に搭載する「電卓」を、開発するソフトウェアとして例に挙げてみましょう。
大まかな開発の流れとテスト工程の関係は、以下の表の通りです。
- 要求分析/受け入れテスト
- 要件定義/システムテスト
- 基本設計/統合テスト
- 詳細設計/単体テスト
要求分析/受け入れテスト

要求分析では、「どのようなソフトウェアを開発するのか」を分析する段階なので、たとえばこのような分析結果が挙げられます。
- どのような用途で使用するのか
- 何ができてほしいのか
- 何ができてはいけないのか
- どのような環境で使用するのか
そして開発工程の考え方としては、以下のような手順で行います。
【電卓=数字の計算をするためのソフトウェア】
「どのような用途で使用するのか」
→数字の計算
「何ができてほしいのか」
→ 足し算・引き算・掛け算・割り算
「何ができてはいけないのか」
→ 数字以外の入力・足し算から割り算以外の計算
「どのような環境で使用するのか」
→ 他のアプリケーションやソフトウェアと同時に
※他のアプリケーションやソフトウェアを使いながら、複雑な数字の計算を行うことを想定
※旅行を計画し、交通機関の運賃や宿泊代の検索と電卓での計算を、PCもしくはスマートフォン1台で行うようなイメージ
開発工程では、このように1つ1つの要求に対する答えを紐解いていき、分析結果を出します。
一方の受け入れテストでは、実際に開発されたソフトウェアを、PCやスマートフォンを使った実際の環境で動かしてみて、「きちんと使用できるか」「要求に沿ったソフトウェアになっているのか」を確認します。
したがって、要求分析の内容は、受け入れテストで確認することができるのです。
要件定義/システムテスト

要件定義では、「ソフトウェアを開発するには、どのような機能が必要なのか」を具体的に定義していく工程です。
- どのような機能を持たせるか
- 何が指定/設定できるのか
- 何が指定/設定できないのか
- ソフトウェアを動かすのに必要な環境
例えば、先ほどの要求分析の「どのような環境で使用するのか」で、「PC上で使用するソフトウェア」と決定しました。
しかし、「PC」と一括りに言っても、「Windowsなのか、Macなのか?」「OSのバージョンは?」「ソフトウェアを動かすためにPCに求められるスペックは?」と、さまざまな条件がありますよね。これらの内容を具体的に決めるのが要件定義です。
かわってシステムテストでは、「開発されたソフトウェアが、定義された要件(機能)を持っているのか」を、ソフトウェア開発を行っている環境で確認します。
先ほどの受け入れテストは実際にソフトウェアが使用される環境で動くことを確認しますが、システムテストは開発中の環境で動くことを確認するという違いがあります。
基本設計/統合テスト

基本設計では、具体的にどのようにソフトウェアを開発していくのか、ソフトウェアの全体像を決めます。
- ソフトウェアの全体像(大まかな処理の流れ)
- 各機能ごとの相互関係
- ソフトウェアの外部とのやり取り(入出力)
ソフトウェアの画面レイアウトや、数値の入力から計算結果を出すまでの流れなどが全体像の一例です。
そして統合テストで、開発された「電卓」というソフトウェアの機能が、「数値を入力する」→「『+』が入力されたとき、数値を足す」→「演算結果を出力する」と、一連の流れの機能が問題なく作動しているのかを確認します。
また、「数値を入力する」といった1つの動作・機能のテストは「単体テスト」になります。
詳細設計/単体テスト

詳細設計では、どのようにソフトウェアを開発していくのか、機能ごとに決めます。
「電卓」というソフトウェアは、「数値を入力」→「演算子(+-×÷)を入力」→「数値を入力」→「イコール(=)を入力」→「計算結果が表示」という手順で操作を行い、計算をしますよね。
この、数値を入力から計算結果が表示までの大まかな処理の流れを決めているのは、基本設計です。
詳細設計では、「演算子の『+』が入力されたときの処理」「『-』が入力されたときの処理」というように、細かい操作ごとの処理について決めます。そのため、単体テストでは、設計された機能ごとに正常に動作するか確認します。
電卓の場合は、「演算子の『+』が入力されたとき、数値を足しているか」「『-』が入力されたとき、数値を引いているか」といったテストです。
V字モデルの活用ポイント

V字モデルの活用ポイントを押さえることで、システム開発でより効率的な効果を発揮します。
先ほど解説した「V字モデルのメリット」とあわせて具体的な活用ポイントを紹介しますので、ぜひ参考にしてください。
品質管理とリスク低減
V字モデルのメリットである品質管理とリスク低減では、定期的なテストの実施やテスト結果の分析、管理ツールの活用が、V字モデルの活用ポイントです。
品質管理においては、単体テストから受入テストまでの段階的なテストの実施や、開発工程の設計内容に基づいた早期的なテスト計画が重要であることを紹介しました。
また、「テスト管理ツール」や「リスク管理ツール」などの管理ツールを利用することも有効な手段です。
管理ツールはテストやリスクに関する情報を一元化するので、テストの重複を防ぎ、欲しい情報・結果情報が簡単に探すことができて、業務の効率性を上げられます。
このように工夫することで、結果的に開発時のリスク低減にも繋がるのです。
プロジェクト進行の可視化と把握
V字モデルを活用することでプロジェクトの進捗状況を可視化して把握することができ、それらをより有効的にするポイントが、開発とテストの目的・目標の明確化と、情報共有です。
システム開発では、多くの関係者が携わりながら開発を進めていきます。
しかし、その関係者の間で、開発・テストを行う目的や、スケジュールや内容の認識に不一致があるとプロジェクトが難航し、必要以上の労力やコストがかかってしまいます。
そうならないためにも、目的・目標の明確化と情報共有が重要なのです。
たとえば、要求分析や要件定義で開発の目的を決める際に、各工程にマイルストーン(中間目標地点)も明記しておくと、開発計画をより具体化できます。
そして、マイルストーンに向かってプロジェクトを進め、定期的な報告会や会議、報告書作成などで情報共有することで、関係者全体で進捗状況の把握を実現します。
また、これらの取り組みでは、課題の内容や進捗を記録する「課題管理ツール」の活用が有効です。
変更管理と追跡
V字モデルは、手戻りや変更の対応が困難であると紹介しました。しかし、「工程が段階的」という特徴に焦点を当てて言い換えると、変更点が何か・どこなのかがわかりやすく、「変更の管理と追跡がしやすい」ということになります。
そして、変更の管理・追跡を効率的に行うポイントが、管理ツールの活用やベースライン管理です。
変更に関する管理ツールでは、変更内容や履歴・変更時に受ける影響の分析などを記憶・管理する「変更管理ツール」を活用することで、スムーズな変更対応を実現します。
また、変更時に開発内容や目的のベースから逸脱せず、変更内容が比較できるよう、ベースライン管理を徹底しておきましょう。
このように管理ツールやベースライン管理をを活用することで、「どの工程で、何を変更したのか」が見つけやすくなり、開発業務が捗ります。
V字モデルとW字モデルの違い

これまではV字モデルについて解説を行ってきました。最後に、V字モデルと似たモデルの「W字モデル」について解説します。
W字モデルは、V字モデルを改良した開発モデルで、開発工程の段階からテストが行えることが最大の特徴です。
より高度なテストを行うため求められるスキルや経験は高くなりますが、W字モデルのポイントを押さえ、活用できるとより質の高いソフトウェア開発が可能になります。
以下の図は、V字モデルとW字モデルを比較表です。
| 開発モデル | V字モデル | W字モデル |
| テスト | 開発プロセスが終わった後に行う | 開発プロセスの段階から行われる |
| 適したプロジェクト | 要件の変更が少ない | 要件の変更がある可能性が高い |
W字モデルとは
W字モデルとは、開発工程とテスト工程を同時に行うことを可能にした開発モデルです。
V字モデルは、先に開発を行ってからテストを行う流れで開発を行いますが、W字モデルは、開発工程の段階からテスト(確認)を行うことができます。
開発工程でテストが行えることで、システム設計時の不備やミスを防げたり、開発後のテスト工程でのバグや手戻りを防げたりと、トラブルとなる要因の早期発見を可能にします。
また、W字モデルでは確認作業を「レビュー」と呼び、開発とテストの平行やスケジュール管理などの複雑な業務を担うため、高度なスキル・経験を持ったエンジニアが担当することが多いです。
レビュー内容は、「設計する機能や内容にミスマッチはないか」「要求分析に基づいたシステムになっているか」などを、実際に開発する前に確認を行うことが主に上げられます。
たとえば要求分析では、「分析した内容が正しいか」「ソフトウェアを開発するにあたって求められている要求が正確に反映されているか」といったレビューを行います。
このように、要件定義では「要求分析の内容が詳細化されているか」、基本設計では「要件定義の内容をすべて実装できるような設計になっているか」などといったレビューをし、開発後にミスを発覚して手戻りになるリスクを抑えるのが、W字モデルの役割です。
一方で、W字モデルのレビュー担当はV字モデルのテスト工程の担当とは別のものになるので、その分の人員やコストの確保が必要となります。また、開発段階でレビューを行うので開発時間が通常よりかかったり、対応可能なエンジニアが必要であったりと、注意点も把握しておきましょう。
V字モデルとW字モデルに適したプロジェクト
V字モデルに適したプロジェクトは、以下のようなプロジェクトが挙げられます。
- 要件の変更が少ない
- 品質管理が重要
- 大規模な開発
これらに当てはまる代表的なシステムは、金融システムや基幹システム、医療システムです。いずれも利用目的が概ね統一され、比較的に要件の変更がありません。
このようなシステムを開発する場合は、V字モデルの活用が適しています。
一方で、W字モデルに適しているプロジェクトは、以下のような条件です。
-
- 要件が変更される可能性がある
- 開発に関わる関係者との頻繁なやり取りが必要
- アジャイル開発と組み合わせる
主なプロジェクトとして、モバイルアプリやWebサイト、ゲームなどが挙げられます。これらは、利用の目的はある程度同じであっても、求められている要件(サービス)は利用者によってさまざまですよね。
また、求められる要件は流行や最新技術などによっても目まぐるしく変化することから、要件が変更される可能性が高く、かつ迅速な開発が重要です。そのようになれば、開発の関係者とのやり取りの頻度も高まります。
このようなことから、要件の変更に柔軟に対応できるシステムを開発する場合は、W字モデルの活用が適しています。また、変更に柔軟性のあるアジャイル開発と組み合わせることも有効な手段です。
まとめ

V字モデルはシステム開発モデルの1つで、開発の工程に合わせたテストを行い、検証精度や高品質なシステムの管理を実現することが特徴です。
要求分析から詳細設計までの開発工程と、単体テストから受入テストまでのテスト工程を段階的に行うため、開発・テストの見通しが持て、計画的・効率的にシステムを開発できます。
ウォーターフォールモデルの基盤によるリスクとリスク低減のポイント、アジャイル開発やW字モデルの活用なども、V字モデルの活用で重要なポイントです。システム開発でV字モデルを活用する際は、今回の内容もぜひ参考にしてくださいね。
また、ソフトウェアやシステムの開発について不明点やお悩みがある際は、株式会社Jiteraへぜひお問い合わせください。経験豊富なスタッフのサポートと独自に開発した開発自動化システムの「JITERA」で、スピーディーなシステム開発を実現します。



