システム開発におけるV字モデルとは?他のモデルとの比較やメリット、注意点を解説
2024年03月05日 3:01
システム開発の現場においては、しばしば「V字モデル」という開発手法を採用する場合があります。このV字モデルという開発手法は、経済産業省やIPA(独立行政法人情報処理推進機構)なども積極的に推奨しており、システム開発において昔から信頼のおかれている手法です。
システム開発において、V字開発を採用することによって、プロジェクトを成功に導く可能性が高まるため、担当者としてどのような手法なのかを知っておく必要があるでしょう。
そこで今回の記事では、システム開発におけるV字モデルとはどのような手法なのか、採用するメリットや注意点などを経済産業省やIPAが公開している資料をもとにしていきます。
ソフトウェアやシステムを開発する際に、どのように作業を進めるのか、開発モデルをどのようなものにするのか事前に決めておくことは重要です。一般的に、多くのプロジェクトにおいて採用されている開発モデルの一つが「シーケンシャル開発モデル」と呼ばれているものになります。
この開発モデルは、ソフトウェアやシステム開発において様々な作業を、連続的(シーケンシャル)に行う開発プロセスです。代表的なシーケンシャル開発モデルの例としては、「ウォーターフォールモデル」が挙げられます。ウォーターフォールモデルとは「品質を作り込む上流工程から、品質を確認する下流工程へと滝のような形で水が流れていく」ように開発を進めることから名付けられた名前です。
一方で「V字モデル」とは、ウォーターフォールモデルにおける上流と下流の対応を明確にしたモデルになります。
【V字モデルのイメージ】
引用:ソフトウェア開発の標準プロセス|IPA
V字モデルにおいては「品質を決定する上流工程(要求分析~コーディング)」と「品質を確認するための下流工程(コードレビュー~受け入れテスト)」の各工程における対応が明確に定義されています。このような形で各工程の対応が明確に定義されることで、システム開発における工程や作業プロセスを、細かく確認しやすいという特徴があります。
そのため、V字モデルは大規模なシステム開発において数多く採用されており、実際に独立行政法人情報処理機構によっても、プロジェクトによってはV字モデルの採用を推奨・提唱しています。
システム開発において、V字モデルのような開発モデルがなぜ重要なのでしょうか?独立行政法人情報処理機構は、システム開発プロジェクトなどにおいてこのような開発モデルを採用していない場合、次のような問題が発生する可能性が高いと警鐘を鳴らしています。
【独立行政法人情報処理機構による開発モデルを採用しない場合のリスク】
開発モデルに沿ってシステム開発を行わない場合、プロジェクトは上記のようなリスクを常に抱えて進行することになります。結果的にはコストが当初想定していたよりもかかってしまったり、プロジェクト自体がうまくいかずに終わってしまったりする可能性が高いです。
こういったことを防ぐためには、システム開発においてV字モデルのような開発モデルを採用している、きちんとしたプロセスにのっとって開発を進めていく必要があるのです。
システム開発におけるV字モデルのプロセスは以下の通りです。
なおV字モデルにおいては、開発工程とテスト工程が次のような形で対応する仕組みとなっています。
【V字モデルのイメージ】
引用:ソフトウェア開発の標準プロセス|IPA
それぞれのプロセスについて以下で詳しく解説していきます。
システム開発において1番最初に行われるのが要件定義であり、一連の流れにおいて最も重要なプロセスでもあります。要件定義とは「システム開発をする目的に基づいて実装したい機能や納期、必要な工数などをまとめた設計図」のようなものです。
要件定義を行う段階で、開発開発者側はユーザーの求めているニーズを正確に把握して、システムに必要な機能とそうでないものを区別して定める必要があります。要件定義を行う際は、まず次のような項目に関して詳しく定めた要件定義書を作成します。
【要件定義書で定める内容の例】
要件定義書で定める内容については、それぞれの企業や開発するシステムによって異なります。参考として独立行政法人情報処理推進機構による「失敗しない要件定義とリスク対策」で例示されている、主な要件定義書の内容について紹介するので参考にしてください。
引用:失敗しない要件定義とリスク対策|独立行政法人情報処理機構
V字モデルにおいては、要件定義の工程に対応してシステムテストが行われます。システムテストにおいては、全ての部品が組み立てられた状態でシステムの開発者がテストを行います。
基本設計とは、要件定義で検討した内容をもとに基本設計書を作成する段階です。基本設計書では、画面の構成案となる「ワイヤーフレーム」、画面がどのような形で移り変わっていくのか、各種ボタンなどの要素がどのように動作をするのかなどの定義を記載した「画面仕様書」、デザインデータなどが含んだ内容を決定します。
V字モデルにおいては、基本設計に対応して結合テストを行います。結合テストでは、ある機能を開発するための部品を組み合わせた状態で、開発したシステムが正常に動作するかシステムも開発者がテストを行います。
無事に基本設計が終了したら、システム開発の工程は詳細設計へと進みます。詳細設計の段階では、システムをプログラミングしていく際に必要となる「詳細設計書」を作成します。詳細設計書には、APIの仕様書やデータベースの定義書などが含まれるのが一般的です。
V字モデルにおいては、システム開発の詳細設計に対応して単体テストを行います。単体テストでは、ある機能を開発するために作成したパーツ単体の部品が詳細設計通りに動くかどうかを、システム開発者がテストします。
システム開発においてV字モデルを採用するメリットは次の4つです。
1.テスト内容を明確にできる
2.担当業務や責任者が明確になる
3.プロジェクト全体の進捗がわかりやすくなる
4.上流工程と下流工程の認識の相違などが起こりにくくなる
それぞれのメリットについて以下で詳しく解説していきます。
システム開発においてV字モデルを採用することによって、開発工程において対応するテスト内容を具体的に決めることができます。なぜなら、システム開発におけるV字モデルの工程について解説したように、V字モデルでは各工程においてどのようなテストを行うのか明確になっているためです。
テスト内容が明確になっていることによって、各工程において行った開発をもれなく検証することができます。そのため、各工程で開発をしたのにもかかわらずテストをしていなかったという事態を防ぐことが可能です。また、各工程においてしっかりとテストを行うので、システムローンチ後の不具合発生のリスク軽減なども事前に防ぐことができます。
V字モデルを採用することによって、担当業務や責任者が明確になるのもメリットです。V字モデルでは、システム開発のテスト項目を細分化して、各工程において誰が仕事を分担しているのか明確になります。
担当業務や責任者が各工程において明確になるので、仮にエラーやバグが発生した際においても、迅速に処理することが可能です。また、担当業務がはっきりすることによって、自分自身の担当する作業範囲というのが明確になり、各担当者がどれくらいの業務をやれば良いのか見通しがつくので、モチベーションや集中力を保ちやすいのもV字モデルの利点と言えるでしょう。
V字モデルでは各工程やテストを細分化しているので、担当業務や責任者が明確になりプロジェクト全体の進捗も把握しやすくなります。システム開発においては、納期に向けてスケジュールというのが常にタイトになりがちです。
各工程が少しでも遅れることによって他の工程にも大きく影響が出る場合もあるので、常にスケジュールを正確に把握することは極めて重要なポイントとなります。仮にV字モデルを採用していれば、どこかの工程で遅れが生じてしまったとしても、担当業務なども明確になっているので早めにどのように対処すれば良いのか対策を練ることが可能です。
独立行政法人情報処理機構は、システム開発において開発モデルを採用しなかった場合、システム化の方針や目的が曖昧になって次のような問題が発生しやすいとしています。
参考:失敗しない要件定義とリスク対策|独立行政法人情報処理機構
このような問題が発生してしまった場合、基本的にシステム開発がうまくいくことはありません。V字モデルを採用すれば、あらかじめこういった問題が起きることを防げます。
システム開発においてV字モデルを採用することによって「上流工程において何らかの問題が発生した場合手戻りのリスクがある」というデメリットがあります。V字モデルにおいては、開発工程で起きた問題というのがテスト工程で発覚するのが通常です。
問題発覚するタイミングが遅れてしまうので、場合によっては手戻りのリスクにつながります。手戻りが起きてしまった場合、余分な工数や時間的ロスが発生してしまう可能性が高いです。
例えば、V字モデルにおけるテスト工程の後半に位置づけられている「受入テスト」において不具合が発生してしまった場合、それが前工程の単体レベルの不具合であれば、詳細設計から見直しをしなければいけなかったり、不具合の修正や影響範囲が大きくなってしまったりする可能性があります。
もっとも、各テストのレベルを事前に規定してフェーズを細かく分け、各工程での不具合などのチェックを十分に行った上で初めて次の工程に進むという手順を踏んでいけば、こういった形で手戻りが起きるリスクを最小限に抑えることが可能です。
手戻りによって起きるスケジュールの遅延やコストの増大は、システム開発において最も頭を悩ませる問題でもあるため、うまく運用して回避する必要があるでしょう。
システム開発においては、V字モデルの他に次のような開発モデルも存在します。
それぞれの開発モデルについて、どのような方法なのか以下で詳しく解説していきます。
ウォーターフォールモデルとは、システム開発のプロセスを一連の段階に細分化して、各段階において順次開発を進めていくモデルです。このモデルを採用した場合、前の段階の工程が完了するまでは次の段階に進めることができません。また、各段階における仕様変更などが難しく、急な変更などが必要な場合は後の段階に影響を及ぼす可能性があります。
ウォーターフォールモデルとV字モデルの違いは、V字モデルでは各工程に対応したテストが行われて、品質を確保し要件を満たしていることを確認しながら開発を進めていく点です。
そのため、V字モデルはしばしばウォーターフォールモデルの一部を拡張した開発モデルとも捉えられています。基本的に、ウォーターフォールモデルでは「要件定義・基本設計・詳細設計・実装・単体テスト・結合テスト・システムテスト」といった形で順番に行われるのが基本です。開発の上流から下流までの流れが直線的な形となっているので、手戻りが起きないことが前提とされています。
V字モデルとウォーターフォールモデルの違いをまとめると、以下のとおりです。
【V字モデルとウォーターフォールモデルの違い】
開発の進行…ウォーターフォールモデルでは開発が段階的に行われて、各段階が完了してから次の段階に進む。一方でV字モデルに関しては、開発とテストが同時に進行して、対応するテストが開発と同時に行われる。
柔軟性…ウォーターフォールモデルは開発からテストまで直線的に行われるので、後からの仕様変更などが難しい。要件変更などが発生する場合、最初の段階に戻る必要があるので時間とコストがかかってしまう。V字モデルの場合、柔軟的に仕様変更が可能。
リスク管理…ウォーターフォールモデルを採用した場合、前の段階の問題を次の段階に持ち越してしまう可能性がある。V字モデルの場合、段階ごとにテストが行われるので問題などが起きても早期発見できる。
なお、独立行政法人情報処理機構が行った調査によると、日本においてのシステム開発はウォーターフォールモデルが約97.4%の割合で採用されていることがわかっています。
参考:ソフトウェア開発データ白書2018-2019
アジャイル型開発とは、顧客の要求変更に柔軟に対応できることを重視した開発手法です。短いリテレーション内で要求定義や設計、実装・テストなどを繰り返して行い、顧客のフィードバックを取り入れながら開発を進めていく手法になります。
【アジャイル型開発のモデル例】
引用:非ウォーターフォール型開発の動向と課題|独立行政法人情報処理機構
アジャイル型開発では、細かい機能ごとに開発サイクルを行うことができるので、システムをどの開発手法よりも素早くリリースすることができます。一方でV字モデルの場合、要件定義や設計といった上流の工程から順番に進めて、各工程ごとにテストを行うのが基本です。
もっとも、V字モデルとアジャイル型開発は相互補完的な関係にあると言われています。なぜなら、V字モデルを採用することによって高い品質保証と各工程における正確なテストを行うことができ、アジャイル型開発を補完的に採用することによって柔軟に開発プロセスを進めることができるためです。
そのため、プロジェクトの規模や性質によっては、基本的にはV字モデルを採用しながら補完的にアジャイルが高いはずを取り入れるケースもあります。
V字モデルとアジャイル型開発の違いをまとめると以下の通りです。
【V字モデルとアジャイル型開発の違い】
プロトタイプ型開発とは、一番最初の要件定義の段階でプロトタイプとなるシステムを開発して、顧客とのやり取りをしながら要件を細かく定義していくモデルとなります。プロトタイプ型開発の場合、後から本格的なシステムを組み込むというのが一般的です。
V字モデルとプロトタイプ型開発の違いをまとめると以下の通りです。
【V字モデルとプロトタイプ型開発の違い】
システム開発においてV字モデルを採用する場合の注意点は以下の通りです。
それぞれの注意点について以下で詳しく解説していきます。
利害関係者の役割と責任分担を明確化する
V字モデルに限らず、システム開発をするにあたっては利害関係者の役割と責任分担を明確することが重要です。これについては、独立行政法人情報処理機構も重要性について常に発信しています。
引用:ソフトウェア開発の標準プロセス|IPA
事業要件や業務要件、システム要件をそれぞれ定義することができるのは、経営層や業務部門、情報システム部門のみです。それぞれが責任を持って自らの役割を果たすことによって、システム開発に最も重要とも言われている要件定義を適切に行うことができます。
そのためシステム開発を行うにあたっては、上記の画像のような形で、どの部署や役職の人がどの要件定義を担当するのか、どのような内容について定めるのかについてしっかりと決めなければいけません。
システム開発においては、開発がスタートすると一番最初の段階では想定していなかった問題やトラブルなどが発生しがちです。そのため、一番最初の見積もりの段階では不確定要素が多く、システム開発のプロジェクトの目標値として設定するには不適切と言えるでしょう。
引用:ソフトウェア開発の標準プロセス|IPA
仮に曖昧さが多く残る段階で見積もりをしてしまうと、システム開発において必要なものや問題となるものが明確になったとしても、後から柔軟に変更することができません。そのため、システム開発プロジェクトにおいては、多段階の見積もり方式を採用して、後から再見積もりできるようなルール作りをすることが成功の鍵となります。
システム開発においてV字モデルを採用するのであれば、適切なテスト計画をしっかりと策定することが重要です。プロジェクトの最初の段階で、テスト項目やテストケースに関する明確な定義、テストを行う範囲や機関など、細分化して計画を策定しましょう。
仮に長期的なプロジェクトであったとしても、テスト計画を曖昧にしたまま開発を進めてしまった場合、後から大きな問題やトラブルが発生してしまう可能性もあります。テスト計画をきちんと策定していれば、どの時点で問題が起きたのかをすぐに明確にできるので対策もしやすいです。
手戻りなどのリスクも最小限に防ぐことができるので、必ず適切なテスト計画を策定しましょう。
V字モデルにおいては、各工程ごとのドキュメンテーションというのが重要となります。各工程で常にテストを行う開発モデルなので、プロジェクト策定の段階から要件定義や設計の仕様書、テスト計画などに関するドキュメントなどをしっかりと作成しましょう。
システム開発においては、顧客の要求によって想定していなかった変更というのが必ず起きるものです。そのため、ある程度変更が起きることを想定して変更管理のプロセスを確立しておきましょう。
変更に伴ってどのような影響が起きるのかを想定して、品質保証を維持するためにはどのような対策をすべきなのか考えておくことが重要です。特にアジャイル開発などと比べてV字モデルの場合、開発途中の急な変更には対応しにくい構造となっています。
変更を想定してあらかじめアジャイル開発を組み込んでおくなど、変更管理を想定したプロジェクトを策定することも重要です。
システム開発におけるV字モデルは、さらに発展させたモデルとしてW字モデルというものが存在します。W字モデルとは、テストの段階をさらに追加して詳細な品質管理を追加するという手法です。
このモデルはWの形をしており、V字モデルと同様に開発工程とテスト工程が対応しているのが特徴です。
【W字モデルの具体的な例】
引用:開発手法ガイドブック-独立行政法人情報処理推進機構
W字モデルを採用することによって次のようなメリットがあります。
もっともV字モデルと比較しても各工程の数が大幅に増加するので、最初の段階から詳細な計画を策定して進めないとプロジェクトが遅れやすいです。また、各段階でテストを行う必要があるので、テストに割くリソースも必要となります。もっともV字モデルよりも品質管理をより重視したシステム開発モデルであるため、細かくアプローチをしていきたいというプロジェクトにとっては最適です。
システム開発におけるV字モデルとはどういったものなのかという基本的なところから、採用するメリット・デメリット、注意点について解説してきました。
失敗しがちなシステム開発において、V字モデルのような開発モデルを採用して、プロジェクトを進めていくことは非常に重要なことです。V字モデルは開発と並行してテストも行うので、進捗管理がしやすく、手戻りなどのリスクも防げるといったメリットがあります。
一方で急な変更には対応しづらいという注意すべき点もあるので、プロジェクトの規模や性質によってはアジャイル型開発を組み込んで柔軟に対応しやすい体制を整えるというのも良いでしょう。
エンジニア採用や業務委託の課題を解決するための次世代プラットフォーム 「ISSUE」 をご存知ですか?
登録エンジニア数:4,000名以上
厳選されたフリーランスエンジニアが多数登録。スキルや実績に基づき、最適なマッチングを実現します。
採用も業務委託も1つのプラットフォームで完結
開発プロジェクトの要件に合ったエンジニアを素早く見つけることが可能です。
エンジニア出身の経営陣が開発組織のニーズを深く理解
あなたの会社に最適な提案をお届けします。
今すぐ、エンジニア採用・業務委託の課題を解決し、開発プロジェクトを加速させましょう!
「ISSUE」で、採用と業務委託をもっとシンプルに。
成功事例も多数掲載中!
まずは詳細をチェックしてみてください。
➡️ 今すぐチェックする
診断を受けるとあなたの現在の業務委託単価を算出します。今後副業やフリーランスで単価を交渉する際の参考になります。また次の単価レンジに到達するためのヒントも確認できます。