システム開発においては、ウォーターフォール型やアジャイル型など、さまざまな種類の開発モデルがあります。それぞれ特徴やメリット・デメリットがあるため、プロジェクトに適したモデルを採用することが重要です。
今回は、複数存在している開発モデルの中から、よく利用されているV字モデルについてご紹介します。システム開発を検討されている方でも、V字モデルは目にしたことはあるけど、詳細は把握できていないという方も多いのではないでしょうか。
本記事では、V字モデルの基礎知識や採用することで得られるメリット、デメリット、具体的な工程などを徹底解説します。
目次
システム開発会社選びはプロにお任せ完全無料で全国5000社以上からご提案
システム開発のV字モデルをわかりやすく説明!
システム開発において、どのように作業を進めていくのか、開発手法を事前に決定することは重要なポイントの1つです。
V字モデルとは、システム開発での開発からリリース・実装までの流れにおける開発工程とテスト工程の対応関係を表したモデルを指します。
ここでは、V字モデルの以下のことについて詳しくご紹介します。
-
基礎知識
-
V字モデルの特徴
-
各工程の役割
-
アジャイル開発との違い
●基礎知識
前述のとおり、システム開発のモデルは複数存在しています。中でも特に広く採用されている開発モデルの1つとして、「シーケンシャル開発モデル」が挙げられます。
シーケンシャル開発モデルとは、開発におけるさまざまな作業をシーケンシャル(連続的)に行う開発プロセスを指します。シーケンシャル開発モデルの1つとして、「ウォーターフォールモデル」が代表的です。
ウォーターフォールモデルとは、品質を作り込む工程から、品質を確認する工程へと、水が流れていくように開発を進めていくモデルを指します。品質を作り込む過程を上流、品質を確認する工程を下流とし、まるで滝のように進めていくことが由来です。
V字モデルは、ウォーターフォールモデルから派生した開発モデルです。ウォーターフォール型開発における開発工程とテスト工程を詳細さのレベルに応じて対に並べ、各工程の対応関係を明示したモデルです。
以下の図を見ていただくとわかりやすいのではないでしょうか。
V字の左側が開発工程になり、V字の右側がテスト工程になります。つまり、V字の下のほうへ工程が進み、コーディングまで完了したら開発工程は終了します。その後、コーディングをスタート地点として、V字の右側であるテスト工程に移っていきます。
例えば、要件定義の段階で行った内容を運用テストの際に検証し、「要望と合致したシステムになっているか」ということを検証します。ウォーターフォールモデルは、工程や作業プロセスごとに品質保証が求められますが、このV字モデルによって明示的に表されるということになります。
V字モデルは、ウォーターフォール型開発にテスト工程をリンクさせることによって、検証の精度を向上させた、進化した開発モデルだといえます。
●V字モデルの特徴
システム開発においてさまざまなテストが行われますが、V字モデルでは品質を決定する上流と、品質を確認する下流の各工程の対応が明確に定義されているため、工程や作業プロセスごとに確認しやすい点が特徴です。
そのため、各工程の成果物に対するテストのレベルや範囲、内容を適切に認識し、設定することによって、成果物の品質の確保につながります。
ただし、ウォーターフォールモデルをもととしているため、原則的に前のフェーズに後戻りすることはできません。
●各工程の役割
V字モデルの工程において最上流にあたるのは、「要件定義」です。要件定義は、どのようなシステムを作りたいかという発注者の要求をまとめる工程を指します。要件定義の下流側に対応する工程が、「運用テスト」です。
要件定義の次の段階である「外部設計」では、要件定義で求められた機能を実現するために、システムがどのような動きをするのか決定します。外部設計の下流側に対応する工程は「結合テスト」になります。
外部設計で決めた内容をどのように実現するかを「内部設計」で決定します。内部設計の下流側に対応する工程は、「単体テスト」、内部設計の次には実際のソースコード(プログラム)を作成する「コーディング」へと進んでいきます。
●アジャイル開発との違い
開発ではさまざまなモデルがありますが、ウォーターフォールモデルと並んで多く採用されているのが「アジャイル開発」です。
アジャイル開発とは、最初に詳細な要求仕様書を作成せず、優先度の高い要件から順に小さな単位で開発を進め、顧客のフィードバックを取り入れながら進めていく手法を指します。
アジャイル(agile)は英語で、「すばやい」「機敏な」という意味を表す言葉であるため、アジャイル開発はスピーディーな開発が求められるプロジェクトに適しています。
V字モデルの場合は最初に詳細な要求仕様書を作成し、その仕様に沿って開発を進めていく手法であるため、アジャイル開発とは大きく異なります。
また、テストを開発と同様に重要な作業として捉えている点もアジャイル開発との違いとして挙げられます。V字モデルは開発の工程ごとにテストでの確認を行うため、品質の高さが求められるシステム開発に適しています。
システム開発のV字モデルにおけるメリットとは
システム開発では数多くの開発モデルがありますが、プロジェクトに適したモデルを採用するためには、それぞれのメリットやデメリットについて理解しておくことが重要です。V字モデルを採用した際には、数多くのメリットが得られる一方で、デメリットも生じます。
ここでは、V字モデルにおけるメリット・デメリットについて詳しくご紹介します。
メリット | デメリット |
---|---|
適切なテスト内容の決定 | 柔軟性の欠如 |
進捗管理の容易化 | |
品質向上と不具合修正の効率化 | リスクの先送り |
初期段階での完成品イメージ形成 |
●メリット
V字モデルを採用して得られるメリットは、以下の4つが挙げられます。
適切なテスト内容の決定
V字モデル開発においては、各工程の終了時に次の工程のテスト計画を立てます。テストを計画的に行うことによって、必要なテスト内容を明確にしてからテストを実施できるため、問題の早期発見が可能になります。また、事前にテストの対象範囲も明確にできるため、テスト作業の効率化にもつながります。
進捗管理の容易化
V字モデル開発においては、各工程の終了時にテストを実施するため、工程ごとの進捗状況を把握しやすくなります。そのため、進捗の管理を容易に行えます。進捗状況をしっかり管理することは問題の早期発見や修正などにつながりやすく、品質の高いシステムを開発することが可能になります。
品質向上と不具合修正の効率化
V字モデル開発では、上流の工程での設計や検証をより詳細に行うため、システムの不具合や欠陥が後の工程で発生するリスクが低減します。テスト工程においても、テスト計画やテストケースの作成をシステム設計と並行して行えるため、テスト工程での不具合を発見しやすくなります。そのため、システムの品質向上につながります。
また、ソフトウェア開発の工程を上流から下流へと進めていくことによって、前工程の修正や手戻りのリスク削減につながります。最上流の要件定義から下流のコーディングやテストへと段階的に進んでいく手法であるため、後の工程で前工程の不備が発覚した際でもその前工程に戻って修正する必要がありません。
このように手戻りのリスクを防げるため、不具合修正の効率化につながります。それだけでなく、開発期間やコストの削減も可能になります。
初期段階での完成品イメージ形成
V字モデルはアジャイル開発とは異なり、要件定義をしっかり行い、詳細な要求仕様書を作成し、その仕様に沿って開発を進めていく手法です。また、各工程の終了時に次の工程のテスト計画を立て、テストを計画的に行うため、初期段階での完成品のイメージが形成しやすい点もメリットとして挙げられます。
●デメリット
V字モデルでは得られるメリットが多くある一方で、以下のようなデメリットも生じます。
柔軟性の欠如
V字モデルは、ウォーターフォール開発から派生したモデルであるため、基本的には後戻りができません。開発途中において方針変更の希望があった場合、上流工程に戻って調整し、その後の工程もやり直しをするため、膨大な工数やコストが必要になります。そのため、開発途中での方針変更が困難であり、柔軟性の欠如がデメリットとして挙げられます。
V字モデル開発は、上流工程から下流工程までの一貫性を保証することによって品質を担保しているため、要件定義や設計といった上流工程での作業を綿密に行うことが重要です。
リスクの先送り
上流工程と下流工程を対称的に配置することによって開発の品質の向上が望めることがV字モデルの特徴ですが、その性質上、上流工程でのミスや不備が下流工程に大きな影響を及ぼすことも起こり得ます。
例えば、要件定義の段階で内容に不備があった場合、その後の設計や開発においてもその誤った要件が引き継がれてしまい、最終的には品質の低いシステムが完成することにもなりかねません。そのため、リスクの先送りという点もデメリットの1つとして挙げられます。上流工程での品質確保をしておくことによって防げるため、要件定義をしっかり行うことが大切です。
システム開発のV字モデルの工程とは
V字モデルでは、上流工程である開発工程と下流工程であるテスト工程を対象的に配置し、各作業をリンクさせることで検証作業を効率よく行えます。
それぞれの工程のリンクは、以下のとおりです。
-
要件定義の内容を運用テストで確認
-
外部設計の内容を結合テストで確認
-
内部設計の内容を単体テストで確認
ここでは、各工程について、開発工程とテスト工程に分けて詳しく解説します。
●開発工程
V字モデルの開発工程として、以下の4つが挙げられます。
-
要件定義
-
外部設計
-
内部設計
-
コーディング
要件定義では、顧客からの要望をヒアリングし、業務要件や機能要件、非機能要件を洗い出して要件定義書として定義します。要件定義書は顧客側主導で作成される場合が大半です。
V字モデルの特性を活かし、高品質なシステムを開発するためには、要件定義が非常に重要な要素だといっても過言ではありません。要件定義で不備や漏れがあった場合、全工程の品質やプロジェクトの成否に大きな影響を及ぼします。情報をきちんと共有し、項目が漏れないように注意しましょう。
外部設計とは、要件定義で決定したシステムを実現するために必要な部分を設計することを指します。外部である顧客やユーザーから見た時にどのような動きをするシステムなのかを設計していく工程です。具体的には、画面やレポートなどユーザーが目に見えるインタフェイスの部分です。外部設計は基本設計とも呼ばれ、この工程で作られるのが基本設計書です。
内部設計とは、外部設計において決定した内容をどのように開発していくかを設計する工程を指します。内部である開発側がどのように開発を進めていくかを決める工程であるため、内部設計と呼ばれています。
細分化された各機能の内部ロジックを詳細に設計することでもあるため、詳細設計と呼ばれることもあります。この工程では、詳細設計書を作成し、それを元に、プログラムを開発します。
コーディングは最後の工程であり、設計書を基にコードを書いていく工程を指します。設計書によって定められたプログラミング言語を使用し、ソースコードを記述していきます。
●テスト工程
V字モデルのテスト工程としては、以下の4つが挙げられます。
-
単体テスト
-
結合テスト
-
システムテスト
-
運用テスト
単体テストとは、開発工程の内部設計で設計された内部ロジックどおりに開発されているかを検証するテストを指します。プログラムモジュール単位で行うテストであり、具体的な内容としては、網羅的にテストを行えるホワイトボックステストとブラックボックステストが挙げられます。
ホワイトボックステストは、プログラムの構造に基づき、分岐や繰り返しといった内部動作のすべてを網羅し、想定どおりの結果となるかを確認するテストです。ホワイトボックステストではデータや変数の流れに着目しますが、ブラックボックステストでは、入力データと出力データの網羅性に注目してテストを行います。単体テストを行うことによって、プログラムレベルでのコーディングミスを発見できます。
結合テストとは、外部設計で設計されたインタフェイスが設計されたとおりに実装されているかを検証するテストを指します。一定の機能単位で実施するテストであり、単体テストの完了後に行います。結合テストにおいては、複数のモジュールが連携して円滑に動作するかを確認します。
結合テストを実施することによって、システムの機能レベルでの設計ミスやモジュール連携処理におけるミスなどの発見が可能です。
システムテストとは、要件定義で定義された要件が、開発されたシステムで満たされているかを検証するテストを指します。システムは、最終的に業務で活用することが目的で開発されます。開発したシステムが業務と一致しなければ、せっかく開発したシステムが活用できません。
システムテストを実施することによって、要件とシステム設計の不一致などを発見できます。
運用テストとは、システムが本番稼働した後に正しく運用できるかを確認するためのテストを指します。一般的には、発注者側が実施します。
運用テストの目的は、発注者が自らシステムを利用し、業務に活用できるかを確認することです。そのため、運用テストは、受け入れテストや承認テストと呼ばれることもあります。どの名称であっても、システムが要件どおりに完成していることを発注者が確認するために実施するテストであることに変わりはありません。
V字モデルとW字モデルの違い
V字モデルと合わせて理解しておくと良いのが、W字モデルです。 W字モデルは、開発工程とテスト工程を同時に並行して進めていくモデルのことを指します。 V字モデルを元にしており、開発の要求定義、設計、実装フェーズで意識的にテストプロセスをかかわらせていくため、V字モデルを発展させたテストモデルだといえます。
V字モデルとの違いとしては、まず開発の進め方の違いが挙げられます。
W字モデルでは、V字モデルで行う流れに加え、テスト工程とは別に、開発工程の中でも検証を行いながら工程を進めます。そのため、W字モデルではテストを行うテストエンジニアが上流工程から参加し、設計や開発に関与するのが特徴です。
よってW字モデルでは、不具合やミスを早期に発見でき品質を高められる点や、設計段階で不具合を発見した場合であっても、開発を行う前に見つけられるため、手戻りの工数を抑えられることがメリットだといえます。
しかし、開発プロセスの現状分析ができていないとW字モデルの効果が得られないことが注意点です。W字モデルにおいては、開発にかかわるプロジェクトメンバーの間で、開発工程における現状分析や課題分析といった情報の共有が重要です。現状や課題の分析について共有されていなかった場合、具体的にどのフェーズで、どのようなテストや修正作業が必要になるのかということがわからなくなってしまい、全体の流れが滞ってしまう可能性があります。
V字モデルとW字モデルのそれぞれのメリット、デメリットを理解し、開発したいシステムによって使い分けましょう。
システム開発のV字モデルを活用しよう
システム開発におけるV字モデルとは、ウォーターフォールモデルから派生した開発モデルであり、ウォーターフォール型開発における開発工程とテスト工程を詳細さのレベルに応じて対に並べ、各工程の対応関係を明示したモデルです。
V字モデルを採用することによって、期間やコストを削減しながら品質の高いシステムを開発できます。
V字モデルを採用したシステム開発をご検討しているという担当者の方もいらっしゃるのではないでしょうか。V字モデルでの開発の外注先にお悩みの方は、発注ナビにお任せください。
「自社に合った開発会社がわからない」「選定にできるだけ時間をかけずにスムーズに導入したい」とお考えのご担当者様はぜひ一度ご検討してみてはいかがでしょうか。
システム開発会社選びはプロにお任せ完全無料で全国5000社以上からご提案
■システム開発に関連した記事