ナレッジ
V字モデルとは?特徴やメリット・デメリットを解説

目次
V字モデルとは、ソフトウェア開発モデルの一つです。
ソフトウェア開発モデルには、アジャイルモデル、プロトタイピングモデルなど、いくつもの種類がありますが、本記事では、その中のV字モデルを取り上げ、特徴やメリット・デメリットを解説します。記事を通して、どのようなソフトウェア開発でV字モデルを適用してもよいのかを把握できるようになってください。
V字モデル(英語:V-Model)とは?
V字モデルとは、ソフトウェア開発の各工程をV字で表した開発モデルです(図表1) 。
V字の左側には各開発工程を上流(後述)から右下がりに配置し、頂点部分にプログラミング(実装)を配置します。 V字の右側には各開発工程に対応したテスト工程(テストレベル)を、同じ高さに配置します。
このように工程を配置することで、各開発工程に対して妥当性確認として実施すべきテスト工程は何かが一目で分かるようになります。

【IPA ソフトウェアテスト見積ガイドブック】より引用
V字モデルとウォーターフォールモデルとの関係
ウォーターフォールモデルとは、ウォーターフォール(滝)の上流から下流に水が流れるように、各開発工程を表したモデルです(図表2) 。
滝が逆流することがないのと同じで、ウォーターフォールモデルでも、原則として各工程が手戻りしないことを前提としています。 そのため、ウォーターフォールモデルでは要件をしっかり分析し、後の工程で追加要求や仕様変更ができるだけ発生しないよう確定させてから開発計画を立てることが重要です。
ただし、ウォーターフォールモデルでは、各テスト工程で何を確認するべきかを明確に区分できないことが多く、各テスト工程でテスト内容(テスト条件)が重複したり、場合によっては抜け漏れが発生したりすることもあります。

「V字モデルは古い」と言われるが本当か?
V字モデルは古いのか? 結論から言わせてもらうと、V字モデルが古いということは決してありません。
現在、主流の開発モデルの一つに、アジャイル開発があります。 昨今の複雑化するソフトウェア開発において、確かにアジャイル開発は要件変更、仕様追加に柔軟・迅速に対応できる開発モデルです。 (アジャイル開発の説明は後述します)
ただし、どんなソフトウェアでもアジャイル開発で行えばよいという訳ではありません。アジャイル開発に向いているプロダクトとして、以下のような特徴が挙げられます。
<アジャイル開発向きのプロダクトの特徴>
- アップデートが容易に行える環境である
- ユーザーニーズが多様で、開発スコープを限定しても、より主要なニーズを選んでマッチさせる必要がある
- ユーザーストーリーは満足していて、ユーザーが気にしない(実質的に問題と思わない)軽度のバグであれば許容される
このような特徴から、一般的なスマートフォンアプリなどは、アジャイル開発に向いているソフトウェアが多いようです。 では、V字モデルに向いているプロダクトの特徴はどのようなものがあるでしょうか?
<V字モデル向きのプロダクトの特徴>
- アップデートが容易に行えない
- ユーザーニーズが基本的に変わらず、明確なゴールが決まっている
- 軽度のバグであっても許容されない
上記のような特徴があるため、以下のようなプロダクトが比較的V字モデルに向いていると言えます。
- デジタル時計や電子ポットなど、単純な組み込み製品のようなネットワークにつながっていない家電に組み込まれるプロダクト
- 軽度のバグであっても人体に影響を及ぼす可能性がある医療機器など、ミッションクリティカルなプロダクト
上記のアジャイル開発、V字モデルの特徴から、昨今市場で勢いのある(よく使用されている)プロダクトに、アジャイル開発向きのものが多くあることが分かると思います。 そのため、V字モデルは古い開発モデルと思われがちですが、決してそんなことはなく、向き/不向きがあるだけなのです。 また、V字モデルでは対応できないプロダクトが増えてきた時代に、そのデメリットを解消できるアジャイル開発が登場したため、V字モデルは古いというイメージがあるのかもしれません。
W字モデルとは
V字モデルからさらに発展した開発モデルに、W字モデルがあります(図表3) 。W字モデルでは、プロジェクトの各工程にリンクした“品質を上げるための工程”を、平行にV字に並べ実施していくことで、全体がW字になるよう表した開発モデルです。

【IPA ソフトウェアテスト見積ガイドブック】より引用
V字モデルとW字モデルの違い
V字モデルとW字モデルの大きな違いは、上流工程からQAエンジニアが品質に関われる点にあります。
実際に開発プロジェクトに参画した方であれば、要件定義・仕様策定の段階で、すでに顧客の要求を満たしていない仕様となってしまい、実装後のテスト工程で仕様バグとして発見された経験をした方もいると思います。 その際、発見が下流になればなるほど、大幅な手戻り工数が発生したのではないでしょうか。 W字モデルは、そのV字モデルのデメリットを解消した、改良版モデルと言えます。
上流で不具合を発見することで手戻り工数を大幅に削減できるため、昨今の複雑化しているソフトウェア開発の現場では、QAエンジニアが上流から品質に関わることが非常に有効であると言えます。 実際にV字モデルを採用している(と自称している)開発現場でも、QAエンジニアが上流から参画していることは珍しくありません。
V字とW字を明確に線引きする必要はありませんが、たとえV字モデルであっても、QAエンジニアが積極的に上流から品質に関わっていくことが、プロジェクト成功の鍵になると思います。
V字モデルの開発工程とテスト工程の対応関係
V字モデルの開発工程とテスト工程の対応については、図表1の通りです。
要件定義で決められた内容が実現されているか、運用テストで確認を行います。 同様に、基本設計の内容をシステムテストで確認します。詳細設計の内容を統合テストで、プログラム設計の内容を単体テストで確認します。 重要なことは、開発工程の内容を、対応しているテスト工程でしっかり確認することです。
責務が明確な分、各テスト工程の範囲に頭を悩ませる必要はありません。
V字モデルのメリット・デメリット
V字モデルのメリット・デメリットを解説します。
メリット
V字モデルの主なメリットは以下の通りです。
各テスト工程で確認すべき範囲を適切にし、責務を明確にできる
V字モデルでは、各開発工程に対応したテスト工程が一目で分かるため、各テスト工程の目的を明確にし、確認すべき範囲を適切化することができます。 何をどのテスト工程で確認するべきかが明確になるため、テスト範囲の重複や、テスト漏れを防ぐことにもつながります。
開発プロジェクトの進捗状況を把握しやすい
V字モデルでは、現在の工程を完遂させてから次の工程に移行するという、非常に分かりやすい進行条件となっています。そのため、現在の作業工程、実施済みの工程、残りの工程が簡単に把握でき、全体の進捗状況も把握しやすいというメリットがあります。 また前述した通り、各テスト工程の責務を明確にできるため、精度の高いテスト計画を立てやすいのも大きな特徴です。
手戻りリスクを軽減できる
昨今複雑化しているソフトウェア開発において、手戻り工数は大きな問題の一つとなっています。 下流に行けば行くほど、手戻りが発生した際に必要な工数は大幅に増加するため、なるべく上流で不具合を発見し、手戻りを防ぐことがプロジェクト成功の鍵となります。
V字モデルでは原則として、各工程をしっかりと完遂してから次の工程を移るため、手戻りが発生するリスクを軽減することができます。
デメリット
V字モデルの主なデメリットは以下の通りです。
仕様変更などへの対応が難しい
V字モデルでは基本的に上流工程にさかのぼることはありません。 もちろん絶対にさかのぼれないという訳ではありませんが、基本的に各工程を完遂してから次工程に進むため、仕様変更等が発生した際には、すでに実施済みの工程も全てやり直す必要が出てきます。 その結果、工数が大幅に増えてしまいます。
そのため上流工程の段階で、しっかりとユーザー要求を分析し、ユーザーが本当に実現したいことは何か、それを実現するために必要な仕様は何かを確定させることが重要となります。
上流工程でのミスが許されない
上述した通り、上流工程でミスがあった場合、大幅な手戻り工数がかかってしまいます。ミスが許されないというのは少し大げさに聞こえるかもしれませんが、上流でのミスがプロジェクトの失敗に直結することもあるため、各工程を正確に完遂する事が求められます。
V字モデルの向き不向きについて
「V字モデルは古い」と言われるが本当か?の章でも触れていますが、どんなソフトウェア開発でもV字モデルを採用すればうまくいくということは決してありません。
V字モデルに一番不向きなプロダクトの特徴である、 “ユーザーニーズが多様で、開発スコープを限定しても、より主要なニーズを選んでマッチさせる必要がある”プロダクトに、V字モデルを採用しても必ず失敗してしまいます。
プロダクトの特徴をしっかり把握し、適切な開発モデルを採用しましょう。
V字モデルとアジャイル開発
V字モデルは、各工程をしっかりと完遂させてから次工程へ移り、ウォーターフォール(滝)のように、基本的に前工程に戻ることはないというのが、大きな特徴です。
これに対してアジャイル開発は、[計画]→[設計]→[実装]→[テスト]を一つのサイクルとし、このサイクルを短いスパンで何度も繰り返していくという開発モデルになります。(※)
このサイクルはおよそ1週間から、長くても1カ月ほどの小さいサイクル(イテレーション)とし、何度も繰り返しながら、ユーザーストーリーを増やしていくことで品質と顧客満足度を上げていくことが、アジャイル開発の特徴です。 サイクルごとにリリースを行い、ユーザーからのフィードバックを受けて、以降のサイクルで改善していくこともあります。
V字モデルには開発途中での仕様変更は困難というデメリットがありますが、アジャイル開発はプロジェクトの途中でも仕様変更に柔軟に対応できる点が大きなメリットです(図表4)。
| V字モデル | アジャイル |
---|---|---|
一般的な特徴 | ・初めに要求分析、仕様策定をしっかり行う | ・要件仕様書などは作成せず、優先度の高い要件から開発していく |
メリット | ・開発スケジュールを立てやすく、進捗管理もしやすい(アサインもしやすい) | ・顧客、ユーザーのニーズを柔軟に取り入れられる |
デメリット | ・開発途中での仕様変更が困難 | ・明確なゴールが決まっていないため、進捗管理が困難 |
図表4:V字モデルとアジャイル開発の比較
(※)アジャイル開発やアジャイルテストについての解説はこちらをご参照ください。
これからも積極的にV字モデルを活用していこう
V字モデルは前時代的な開発モデルだと考えるエンジニアも多いですが、ここまで読んでいただけた方は、決してそんなことはないと理解されたと思います。
重要なことは、自分たちが開発するソフトウェアの特徴をつかみ、適切な開発モデルを採用することです。このファーストステップを間違ってしまうと、その開発プロジェクトは必ず失敗すると言っても過言ではありません。適切な開発モデルを採用し、皆さまのプロジェクトをぜひ成功に導いてください。
この記事は面白かったですか?
今後の改善の参考にさせていただきます!