システム開発におけるV字モデルとは?他のモデルとの比較やメリット、注意点を解説

0

2024年03月05日 3:01

システム開発の現場においては、しばしば「V字モデル」という開発手法を採用する場合があります。このV字モデルという開発手法は、経済産業省やIPA(独立行政法人情報処理推進機構)なども積極的に推奨しており、システム開発において昔から信頼のおかれている手法です。

システム開発において、V字開発を採用することによって、プロジェクトを成功に導く可能性が高まるため、担当者としてどのような手法なのかを知っておく必要があるでしょう。

そこで今回の記事では、システム開発におけるV字モデルとはどのような手法なのか、採用するメリットや注意点などを経済産業省やIPAが公開している資料をもとにしていきます。

システム開発におけるV字モデルとは?

image
ソフトウェアやシステムを開発する際に、どのように作業を進めるのか、開発モデルをどのようなものにするのか事前に決めておくことは重要です。一般的に、多くのプロジェクトにおいて採用されている開発モデルの一つが「シーケンシャル開発モデル」と呼ばれているものになります。

この開発モデルは、ソフトウェアやシステム開発において様々な作業を、連続的(シーケンシャル)に行う開発プロセスです。代表的なシーケンシャル開発モデルの例としては、「ウォーターフォールモデル」が挙げられます。ウォーターフォールモデルとは「品質を作り込む上流工程から、品質を確認する下流工程へと滝のような形で水が流れていく」ように開発を進めることから名付けられた名前です。

一方で「V字モデル」とは、ウォーターフォールモデルにおける上流と下流の対応を明確にしたモデルになります。

【V字モデルのイメージ】
image
引用:ソフトウェア開発の標準プロセス|IPA
V字モデルにおいては「品質を決定する上流工程(要求分析~コーディング)」と「品質を確認するための下流工程(コードレビュー~受け入れテスト)」の各工程における対応が明確に定義されています。このような形で各工程の対応が明確に定義されることで、システム開発における工程や作業プロセスを、細かく確認しやすいという特徴があります。

そのため、V字モデルは大規模なシステム開発において数多く採用されており、実際に独立行政法人情報処理機構によっても、プロジェクトによってはV字モデルの採用を推奨・提唱しています。

なぜV字モデルなどの開発モデルがシステム開発において必要なのか?

image
システム開発において、V字モデルのような開発モデルがなぜ重要なのでしょうか?独立行政法人情報処理機構は、システム開発プロジェクトなどにおいてこのような開発モデルを採用していない場合、次のような問題が発生する可能性が高いと警鐘を鳴らしています。

【独立行政法人情報処理機構による開発モデルを採用しない場合のリスク】

  • システムの品質が安定しない
  • 納期が不確実となる。必ずしも納期を守れなくなる
  • 教育訓練の標準化が図れず作業手順や方法がバラバラになる
  • プロセスの確立や標準化が図れないため、ITによるシステム化が難しい。
  • 上記要因によって当初想定していたよりもコストがかかる

参考:ソフトウェア開発の標準プロセス|IPA

開発モデルに沿ってシステム開発を行わない場合、プロジェクトは上記のようなリスクを常に抱えて進行することになります。結果的にはコストが当初想定していたよりもかかってしまったり、プロジェクト自体がうまくいかずに終わってしまったりする可能性が高いです。

こういったことを防ぐためには、システム開発においてV字モデルのような開発モデルを採用している、きちんとしたプロセスにのっとって開発を進めていく必要があるのです。

システム開発におけるV字モデルのプロセス

image
システム開発におけるV字モデルのプロセスは以下の通りです。

  • 要件定義(システム/受入テスト)
  • 基本設計(結合テスト)
  • 詳細設計(コンポーネントテスト)

なおV字モデルにおいては、開発工程とテスト工程が次のような形で対応する仕組みとなっています。
【V字モデルのイメージ】
image
引用:ソフトウェア開発の標準プロセス|IPA

それぞれのプロセスについて以下で詳しく解説していきます。

要件定義(システム/受入テスト)

システム開発において1番最初に行われるのが要件定義であり、一連の流れにおいて最も重要なプロセスでもあります。要件定義とは「システム開発をする目的に基づいて実装したい機能や納期、必要な工数などをまとめた設計図」のようなものです。

要件定義を行う段階で、開発開発者側はユーザーの求めているニーズを正確に把握して、システムに必要な機能とそうでないものを区別して定める必要があります。要件定義を行う際は、まず次のような項目に関して詳しく定めた要件定義書を作成します。

【要件定義書で定める内容の例】

  • 開発するシステムの内容や性能
  • 必要な機能
  • 運用する方法
  • テスト方法
  • 開発コスト
  • システム開発チームの人員
  • 納期
  • システムの構築方法

要件定義書で定める内容については、それぞれの企業や開発するシステムによって異なります。参考として独立行政法人情報処理推進機構による「失敗しない要件定義とリスク対策」で例示されている、主な要件定義書の内容について紹介するので参考にしてください。
image
image
引用:失敗しない要件定義とリスク対策|独立行政法人情報処理機構
V字モデルにおいては、要件定義の工程に対応してシステムテストが行われます。システムテストにおいては、全ての部品が組み立てられた状態でシステムの開発者がテストを行います。

基本設計(結合テスト)

基本設計とは、要件定義で検討した内容をもとに基本設計書を作成する段階です。基本設計書では、画面の構成案となる「ワイヤーフレーム」、画面がどのような形で移り変わっていくのか、各種ボタンなどの要素がどのように動作をするのかなどの定義を記載した「画面仕様書」、デザインデータなどが含んだ内容を決定します。

V字モデルにおいては、基本設計に対応して結合テストを行います。結合テストでは、ある機能を開発するための部品を組み合わせた状態で、開発したシステムが正常に動作するかシステムも開発者がテストを行います。

詳細設計(コンポーネントテスト)

無事に基本設計が終了したら、システム開発の工程は詳細設計へと進みます。詳細設計の段階では、システムをプログラミングしていく際に必要となる「詳細設計書」を作成します。詳細設計書には、APIの仕様書やデータベースの定義書などが含まれるのが一般的です。

V字モデルにおいては、システム開発の詳細設計に対応して単体テストを行います。単体テストでは、ある機能を開発するために作成したパーツ単体の部品が詳細設計通りに動くかどうかを、システム開発者がテストします。

システム開発においてV字モデルを採用するメリット

image
システム開発においてV字モデルを採用するメリットは次の4つです。

1.テスト内容を明確にできる
2.担当業務や責任者が明確になる
3.プロジェクト全体の進捗がわかりやすくなる
4.上流工程と下流工程の認識の相違などが起こりにくくなる

それぞれのメリットについて以下で詳しく解説していきます。

1.テスト内容を明確にできる

システム開発においてV字モデルを採用することによって、開発工程において対応するテスト内容を具体的に決めることができます。なぜなら、システム開発におけるV字モデルの工程について解説したように、V字モデルでは各工程においてどのようなテストを行うのか明確になっているためです。

テスト内容が明確になっていることによって、各工程において行った開発をもれなく検証することができます。そのため、各工程で開発をしたのにもかかわらずテストをしていなかったという事態を防ぐことが可能です。また、各工程においてしっかりとテストを行うので、システムローンチ後の不具合発生のリスク軽減なども事前に防ぐことができます。

2.担当業務や責任者が明確になる

V字モデルを採用することによって、担当業務や責任者が明確になるのもメリットです。V字モデルでは、システム開発のテスト項目を細分化して、各工程において誰が仕事を分担しているのか明確になります。

担当業務や責任者が各工程において明確になるので、仮にエラーやバグが発生した際においても、迅速に処理することが可能です。また、担当業務がはっきりすることによって、自分自身の担当する作業範囲というのが明確になり、各担当者がどれくらいの業務をやれば良いのか見通しがつくので、モチベーションや集中力を保ちやすいのもV字モデルの利点と言えるでしょう。

3.プロジェクト全体の進捗がわかりやすくなる

V字モデルでは各工程やテストを細分化しているので、担当業務や責任者が明確になりプロジェクト全体の進捗も把握しやすくなります。システム開発においては、納期に向けてスケジュールというのが常にタイトになりがちです。

各工程が少しでも遅れることによって他の工程にも大きく影響が出る場合もあるので、常にスケジュールを正確に把握することは極めて重要なポイントとなります。仮にV字モデルを採用していれば、どこかの工程で遅れが生じてしまったとしても、担当業務なども明確になっているので早めにどのように対処すれば良いのか対策を練ることが可能です。

4.上流工程と下流工程の認識の相違などが起こりにくくなる

独立行政法人情報処理機構は、システム開発において開発モデルを採用しなかった場合、システム化の方針や目的が曖昧になって次のような問題が発生しやすいとしています。

  • システムの方針や目的が曖昧になる
  • システムの要件が固まらない
  • 要件定義書が作成されない
  • 実現可能性について検討されない
  • 要件について開発者とユーザーが合意しない
  • 曖昧な見積もりのまま開発に入ってしまう
  • 要件が確定しないのにもかかわらず次の工程に進んでしまう
  • 発注者の合意や承認を取らずに次の工程に進んでしまう

参考:失敗しない要件定義とリスク対策|独立行政法人情報処理機構

このような問題が発生してしまった場合、基本的にシステム開発がうまくいくことはありません。V字モデルを採用すれば、あらかじめこういった問題が起きることを防げます。

システム開発においてV字モデルを採用するデメリット

image
システム開発においてV字モデルを採用することによって「上流工程において何らかの問題が発生した場合手戻りのリスクがある」というデメリットがあります。V字モデルにおいては、開発工程で起きた問題というのがテスト工程で発覚するのが通常です。

問題発覚するタイミングが遅れてしまうので、場合によっては手戻りのリスクにつながります。手戻りが起きてしまった場合、余分な工数や時間的ロスが発生してしまう可能性が高いです。

例えば、V字モデルにおけるテスト工程の後半に位置づけられている「受入テスト」において不具合が発生してしまった場合、それが前工程の単体レベルの不具合であれば、詳細設計から見直しをしなければいけなかったり、不具合の修正や影響範囲が大きくなってしまったりする可能性があります。

もっとも、各テストのレベルを事前に規定してフェーズを細かく分け、各工程での不具合などのチェックを十分に行った上で初めて次の工程に進むという手順を踏んでいけば、こういった形で手戻りが起きるリスクを最小限に抑えることが可能です。

手戻りによって起きるスケジュールの遅延やコストの増大は、システム開発において最も頭を悩ませる問題でもあるため、うまく運用して回避する必要があるでしょう。

システム開発におけるV字モデルと他の開発モデルの違いや比較

image
システム開発においては、V字モデルの他に次のような開発モデルも存在します。

  • ウォーターフォールモデル
  • アジャイル型開発
  • プロトタイプ型開発

それぞれの開発モデルについて、どのような方法なのか以下で詳しく解説していきます。

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

ウォーターフォールモデルとは、システム開発のプロセスを一連の段階に細分化して、各段階において順次開発を進めていくモデルです。このモデルを採用した場合、前の段階の工程が完了するまでは次の段階に進めることができません。また、各段階における仕様変更などが難しく、急な変更などが必要な場合は後の段階に影響を及ぼす可能性があります。

ウォーターフォールモデルとV字モデルの違いは、V字モデルでは各工程に対応したテストが行われて、品質を確保し要件を満たしていることを確認しながら開発を進めていく点です。

そのため、V字モデルはしばしばウォーターフォールモデルの一部を拡張した開発モデルとも捉えられています。基本的に、ウォーターフォールモデルでは「要件定義・基本設計・詳細設計・実装・単体テスト・結合テスト・システムテスト」といった形で順番に行われるのが基本です。開発の上流から下流までの流れが直線的な形となっているので、手戻りが起きないことが前提とされています。

V字モデルとウォーターフォールモデルの違いをまとめると、以下のとおりです。

【V字モデルとウォーターフォールモデルの違い】
開発の進行…ウォーターフォールモデルでは開発が段階的に行われて、各段階が完了してから次の段階に進む。一方でV字モデルに関しては、開発とテストが同時に進行して、対応するテストが開発と同時に行われる。
柔軟性…ウォーターフォールモデルは開発からテストまで直線的に行われるので、後からの仕様変更などが難しい。要件変更などが発生する場合、最初の段階に戻る必要があるので時間とコストがかかってしまう。V字モデルの場合、柔軟的に仕様変更が可能。
リスク管理…ウォーターフォールモデルを採用した場合、前の段階の問題を次の段階に持ち越してしまう可能性がある。V字モデルの場合、段階ごとにテストが行われるので問題などが起きても早期発見できる。

なお、独立行政法人情報処理機構が行った調査によると、日本においてのシステム開発はウォーターフォールモデルが約97.4%の割合で採用されていることがわかっています。
参考:ソフトウェア開発データ白書2018-2019

アジャイル型開発

アジャイル型開発とは、顧客の要求変更に柔軟に対応できることを重視した開発手法です。短いリテレーション内で要求定義や設計、実装・テストなどを繰り返して行い、顧客のフィードバックを取り入れながら開発を進めていく手法になります。

【アジャイル型開発のモデル例】
image
引用:非ウォーターフォール型開発の動向と課題|独立行政法人情報処理機構
アジャイル型開発では、細かい機能ごとに開発サイクルを行うことができるので、システムをどの開発手法よりも素早くリリースすることができます。一方でV字モデルの場合、要件定義や設計といった上流の工程から順番に進めて、各工程ごとにテストを行うのが基本です。

もっとも、V字モデルとアジャイル型開発は相互補完的な関係にあると言われています。なぜなら、V字モデルを採用することによって高い品質保証と各工程における正確なテストを行うことができ、アジャイル型開発を補完的に採用することによって柔軟に開発プロセスを進めることができるためです。

そのため、プロジェクトの規模や性質によっては、基本的にはV字モデルを採用しながら補完的にアジャイルが高いはずを取り入れるケースもあります。

V字モデルとアジャイル型開発の違いをまとめると以下の通りです。

【V字モデルとアジャイル型開発の違い】

  • 開発の進行…アジャイル型は短期間でリテレーションを進行するので段階的な開発ではない。基本的にはV字モデルと異なる開発モデル。
  • 急な要件変更への対応がしやすい…アジャイル型は急な要求変更に対しても柔軟に対応できる。イテレーションごとに新しい要求を組み込みながら、フィードバックを反映しつつ開発を進めることは可能。一方で、システムの性質などによってはV字モデルは急な変更に対応しにくい
  • 顧客との連携がしやすい…アジャイル型では顧客とやり取りをしながらニーズを取り入れつつ開発を進めやすい。一方で、V字モデルの場合は一番最初の要件定義の段階で顧客のニーズをしっかりと汲み取らなければいけない。

プロトタイプ型開発

プロトタイプ型開発とは、一番最初の要件定義の段階でプロトタイプとなるシステムを開発して、顧客とのやり取りをしながら要件を細かく定義していくモデルとなります。プロトタイプ型開発の場合、後から本格的なシステムを組み込むというのが一般的です。

V字モデルとプロトタイプ型開発の違いをまとめると以下の通りです。

【V字モデルとプロトタイプ型開発の違い】

  • 要件定義とフィードバック…プロトタイプが高いはずでは要件定義の前にプロトタイプを開発して、それに基づいて顧客からフィードバックを得る。そのため要件定義をしやすく、V字モデルと比べると顧客と合意形成を迅速にしやすい。
  • 柔軟な変更が可能…プロトタイプ型開発の場合、一番最初に開発するのはあくまでも仮のものであるため後からの変更などに柔軟に対応できる。V字モデルの場合、内容などによっては後からの急な変更が難しい。

システム開発においてV字モデルを採用する場合の注意点

image
システム開発においてV字モデルを採用する場合の注意点は以下の通りです。

  • 利害関係者の役割と責任分担を明確化する
  • 多段階の見積もり方式を採用する
  • 適切なテスト計画を策定する
  • ドキュメンテーションが重要
  • 変更管理を想定しておく

それぞれの注意点について以下で詳しく解説していきます。
利害関係者の役割と責任分担を明確化する
V字モデルに限らず、システム開発をするにあたっては利害関係者の役割と責任分担を明確することが重要です。これについては、独立行政法人情報処理機構も重要性について常に発信しています。
image
引用:ソフトウェア開発の標準プロセス|IPA
事業要件や業務要件、システム要件をそれぞれ定義することができるのは、経営層や業務部門、情報システム部門のみです。それぞれが責任を持って自らの役割を果たすことによって、システム開発に最も重要とも言われている要件定義を適切に行うことができます。

そのためシステム開発を行うにあたっては、上記の画像のような形で、どの部署や役職の人がどの要件定義を担当するのか、どのような内容について定めるのかについてしっかりと決めなければいけません。

多段階の見積もり方式を採用する

システム開発においては、開発がスタートすると一番最初の段階では想定していなかった問題やトラブルなどが発生しがちです。そのため、一番最初の見積もりの段階では不確定要素が多く、システム開発のプロジェクトの目標値として設定するには不適切と言えるでしょう。
image
引用:ソフトウェア開発の標準プロセス|IPA
仮に曖昧さが多く残る段階で見積もりをしてしまうと、システム開発において必要なものや問題となるものが明確になったとしても、後から柔軟に変更することができません。そのため、システム開発プロジェクトにおいては、多段階の見積もり方式を採用して、後から再見積もりできるようなルール作りをすることが成功の鍵となります。

適切なテスト計画を策定する

システム開発においてV字モデルを採用するのであれば、適切なテスト計画をしっかりと策定することが重要です。プロジェクトの最初の段階で、テスト項目やテストケースに関する明確な定義、テストを行う範囲や機関など、細分化して計画を策定しましょう。

仮に長期的なプロジェクトであったとしても、テスト計画を曖昧にしたまま開発を進めてしまった場合、後から大きな問題やトラブルが発生してしまう可能性もあります。テスト計画をきちんと策定していれば、どの時点で問題が起きたのかをすぐに明確にできるので対策もしやすいです。

手戻りなどのリスクも最小限に防ぐことができるので、必ず適切なテスト計画を策定しましょう。

ドキュメンテーションが重要

V字モデルにおいては、各工程ごとのドキュメンテーションというのが重要となります。各工程で常にテストを行う開発モデルなので、プロジェクト策定の段階から要件定義や設計の仕様書、テスト計画などに関するドキュメントなどをしっかりと作成しましょう。

変更管理を想定しておく

システム開発においては、顧客の要求によって想定していなかった変更というのが必ず起きるものです。そのため、ある程度変更が起きることを想定して変更管理のプロセスを確立しておきましょう。

変更に伴ってどのような影響が起きるのかを想定して、品質保証を維持するためにはどのような対策をすべきなのか考えておくことが重要です。特にアジャイル開発などと比べてV字モデルの場合、開発途中の急な変更には対応しにくい構造となっています。

変更を想定してあらかじめアジャイル開発を組み込んでおくなど、変更管理を想定したプロジェクトを策定することも重要です。

システム開発におけるV字モデルとW字モデルの関係

image
システム開発におけるV字モデルは、さらに発展させたモデルとしてW字モデルというものが存在します。W字モデルとは、テストの段階をさらに追加して詳細な品質管理を追加するという手法です。

このモデルはWの形をしており、V字モデルと同様に開発工程とテスト工程が対応しているのが特徴です。

【W字モデルの具体的な例】
image
引用:開発手法ガイドブック-独立行政法人情報処理推進機構
W字モデルを採用することによって次のようなメリットがあります。

  • 品質向上…各段階でより詳細なテストが行われるので品質管理がより行いやすく、問題の早期発見と修正が可能となるため品質が結果的に向上する
  • 詳細な計画…プロジェクトの段階ごとに計画を立てて進捗を追跡することになるので、プロジェクト管理がやりやすい
  • リスクが軽減できる…早い段階で問題を発見しやすい構造となっているので、手戻りやコスト増加を防ぐことができる

もっともV字モデルと比較しても各工程の数が大幅に増加するので、最初の段階から詳細な計画を策定して進めないとプロジェクトが遅れやすいです。また、各段階でテストを行う必要があるので、テストに割くリソースも必要となります。もっともV字モデルよりも品質管理をより重視したシステム開発モデルであるため、細かくアプローチをしていきたいというプロジェクトにとっては最適です。

まとめ

image
システム開発におけるV字モデルとはどういったものなのかという基本的なところから、採用するメリット・デメリット、注意点について解説してきました。

失敗しがちなシステム開発において、V字モデルのような開発モデルを採用して、プロジェクトを進めていくことは非常に重要なことです。V字モデルは開発と並行してテストも行うので、進捗管理がしやすく、手戻りなどのリスクも防げるといったメリットがあります。

一方で急な変更には対応しづらいという注意すべき点もあるので、プロジェクトの規模や性質によってはアジャイル型開発を組み込んで柔軟に対応しやすい体制を整えるというのも良いでしょう。

# AWS
# C#
# Hack
# Java
# Next.js
# Swift
0

診断を受けるとあなたの現在の業務委託単価を算出します。今後副業やフリーランスで単価を交渉する際の参考になります。また次の単価レンジに到達するためのヒントも確認できます。

目次を見る