【基礎知識】V字モデルとは?ウォーターフォール型開発におけるメリット・デメリット!
ウォーターフォール型開発について調べたことのある方は、V字モデルと言う言葉を聞いたことがあるのではないでしょうか。今回は、ウォーターフォール型開発について理解を深めるために、なじみの深いV字モデルについて解説します。
ウォーターフォール型開発に関しては以下の記事で詳しく解説していますので、合わせてお読みください。
目次
V字モデル(Vモデル)とは
まず、下記の図をご覧ください。
V字モデルとは上の図のように、ソフトウエアの開発から最終段階のリリースまで、開発工程とテスト工程の対応関係を表したモデルの1つです。ウォーターフォール型開発を基にしており、原則として後戻りはできません。
上の図では、ウォーターフォール図で左側に「開発工程」を表し、「実装」で折り返し、左側の開発工程に対応した「テスト工程」が右上がりに表されています。
工程の流れを図にするとV字型になることからV字モデルと呼ばれるのです。
V字の左右、同じ高さを見比べることで、実施されるテストが「どのレベルの開発内容を検証するのか」、「何に着目したテストなのか」、が一目瞭然になります。
V字モデルは、ウォーターフォール型開発に「テスト工程」をリンクさせることで検証の精度を上げた、進化した開発モデルと言えるでしょう。
ここからは、V字モデルをそれぞれ開発工程、テスト工程でリンクする関係に分けて見ていきます。
要求分析→システム/受入テスト
V字モデルを活用、高品質なソフトウェアの開発には、かかる期間やコストの明確化が必要になります。
そこで、エンドユーザーの要望を分析し、品質や実装すべき機能を明確にする要求分析を行うのです。要求分析をもとに、具体的に何をユーザーに実現させるか決めるのが要件定義。対応し、確認検証するのがシステムテストになります。
ここでのテストは、
- 要件通りに機能や性能がみたされているか
- 不具合やリスクが排除されているか
- 品質が基準を満たしているか
を検証していきます。
上記は、要件定義した内容が、正しく実現されているかチェックすることが目的です。
基本設計→結合テスト
画面やボタンなどのユーザーインターフェース、主にユーザーの目に見える範囲の設計をするのが基本設計。基本設計通りに内容が実現されているかに対応、確認検証するのが結合テストです。
ここでのテストは、
- インターフェースが基本設計通りか
- 業務シナリオ、業務構想通りか
- 負荷に耐えられるか
を検証していきます。
上記は、ユーザーが快適に使用できるかをチェックすることが目的です。
詳細設計→コンポーネントテスト
ユーザーから見えない範囲、機能間のロジックやデータ、整合性の設計を詳細設計と呼びます。詳細設計に対応し確認検証するのがコンポーネントテストです。
ここでのテストは、
- モジュール単位で作動するか
- ブラックボックス(システムの仕様)
- ホワイトボックス(プログラムが想定通り動いているか)
を検証していきます。
上記は、単体で適切に作動するか、開発物の細かな機能や性能が正常に働くかをチェックすることが目的です。
実装
ここでの実装は、プログラミング・コーディングを指します。ユーザーの求める機能・動作をシステム上で正しく作動せるべく、作成した詳細設計書をもとに丁寧に製造するのです。
V字モデルのメリット4つ
V字モデルのメリットを4つ詳しく紹介します。
適切なテスト内容を決定しやすい
上のV字モデルの図を見ると、どの開発工程がどのテスト工程に対応するのか一目瞭然です。
一見複雑な開発工程において、どのテストを実施すれば良いのかが明確になっているため、適切なテスト内容を決定しやすくなります。例えば、結合テストで対になっているのは基本設計なので、基本設計を対象に、結合テストを行うようなイメージです。
システム開発において、よりスムーズに工程を進められるのは、大きなメリットといって良いでしょう。
テスト工程の進捗を管理しやすい
より精度の高いテストを計画する場合にも、V字モデルを使うことでテスト工程の進捗を管理しやすくなります。
テスト工程において「何を検証するのか」「どのような作業が必要なのか」といった認識がプロジェクト関係者の間で共有しやすくなり、リスクの発生や認識のずれを最小限に抑えられるでしょう。
開発段階では様々なテスト工程が発生し、不具合の発生率、修正工数などを細分化してシミレーションする必要が出てきます。そのような複雑な工程もよりスムーズに管理することが可能です。
これにより、各工程における計画をさらに精度の高い物にして、プロジェクトの進捗を正確に把握・予測できます。
前工程の修正作業など「手戻り」リスクの軽減できる
ソフトウエアの開発で一番問題になるものの一つに「手戻り」があります。
手戻りとは作業工程の途中で不具合が発生したり、大きな問題が見つかったりした結果、前の段階に戻って工程をやり直すことです。
手戻りが発生すると大きな時間のロスになるばかりでなく、コスト超過やスケジュールの遅延につながります。
V字モデルでの開発は各テストのレベルを規定して、各工程の不具合を十分に検証し、修正してから初めて次の工程に進むというモデルになっているため、この手戻りのリスクを軽減することが可能になります。
手戻りはなるべく避けたいソフトウエアの開発で、このリスクを軽減できるのは大きなメリットと言えるでしょう。
不具合の修正コストの削減できる
V字モデルは各テスト工程において適切にテスト・修正できるので、不具合が発生した場合にも該当するレベルを調査対象にします。テストの工程が明確になることで不具合の修正がより容易となり、大幅な労力やコストの軽減になります。
開発工程では不具合の修正の影響範囲が特定しづらく、発生した不具合の原因がどのレベルにあるのかの調査に大幅な時間がかかり収拾がつかなくなるケースもあります。そこで、開発工程に合わせてテスト工程を明確に規定したV字モデルは大きな効力を発揮します。
良い製品を作るうえで欠かせない「品質を積み上げていく」という作業がこのV字モデルで可能になるのです。
V字モデルのデメリット2つ
V字モデルのデメリットを2つ紹介します。
上流工程に正確性が求められる
V字モデルでは、上流工程ほど慎重に丁寧に進めていく必要があります。
V字モデルは、前段階の工程に問題がないことを前提に進みます。前段階を土台に積み重ねているので、上流工程であればあるほど、間違いがあった場合のダメージが大きいです。
上流工程で不具合が起こるとその後の工程にすべて修正が加わり、膨大な労力、コストがかかるでしょう。そのため、上流工程には何よりも正確性が求められます。
途中で方針変更しにくい
V字モデルは顧客からの変更要求や、テスト工程での仕様変更には対処しにくいでしょう。
ウォーターフォール型開発をもとにしている為、基本的には後戻りはできない開発モデルです。方針変更の希望があった場合には、上流工程まで戻って調整し、その後の工程もやり直しをする必要があります。要するに、時間や労力、コストがかさむ結果になるわけです。
そのため、途中で方針変更はできない旨を顧客に伝えておくなど、あらかじめ対処が必要になります。
V字モデルとW字モデルの違いは?
V字モデルによく似た開発モデルに、W字モデルが挙げられます。
V字モデルとW字モデルの違いは、進行の方法です。具体的には、V字モデルでは一つ一つの工程をクリアして次の工程に進んでいました。
それに対してW字モデルは開発工程とテスト工程をリンクさせた上で、工程同士を同時並行に進行させます。またテスト工程を行うエンジニアが開発工程初期の設計から参加するのも特徴です。
以上のことから、上流工程から確実に順を追って開発を進める場面ではV字モデル、開発工程とテストを同時進行させる場面ではW字モデルが有効です。
まとめ:大規模開発はV字モデルのウォータフォール開発がおすすめ!
今回は、ウォーターフォール開発の際に良く出てくる「V字モデル」と言う手法について紹介しました。ウォーターフォールは文字通り、滝のように順序立てて開発を行なっていきますが、必ずテストはあります。
このテストで致命的なミスを見逃さないことが、ローンチ後の不具合を最小限に抑えることに繋がります。ウォーターフォール開発を行う際は、本記事に書いてあるメリット・デメリットを理解した上で、V字モデルを採用してください。
弊社は、大手ITベンダー・大手webディレクター2人体制でプロジェクト管理を徹底し、素晴らしいチームワークのもと非常に高い「アタリマエ品質」を提供することが可能なプロの集団です。
開発の前段階では、フルカスタマイズのデザイン作成にも対応。デザインを通じて最終イメージを擦り合わせられるため、安心感のある開発が強みです。保守フェーズでは円滑な業務遂行を支えるDB定義書や保守ドキュメントの作成まで実施します。
「保守性が高く、クイックで健康的な開発支援」をお探しの方は、是非一度弊社までお問い合わせください。より効率的に、より早く、あなたのサービスを世の中に提供する、その一助になれれば幸いです。
弊社では、アプリ開発における概算費用を簡単に1分程度で算出するアプリ開発見積もりシミュレーターを提供しております!
参考価格をサクッと知りたい時に利用してください!
アプリ開発費見積もりシミュレーター:https://swooo.net/estimate