
ソフトウェア開発の「V字モデル」とは何か?
見出し
1.V字モデルとは、どのような開発手法か
ソフトウェアを開発する際、どのように作業を進めるのか、開発モデルを事前に決めておくことは重要です。特に広く採用されている開発モデルのひとつが「シーケンシャル開発モデル」と呼ばれているものになります。これは、ソフトウェア開発のさまざまな作業を、シーケンシャル(連続的)に行う開発プロセスです。
代表的なシーケンシャル開発モデルとしては、「ウォーターフォールモデル」がよく知られています。ウォーターフォールモデルとは、品質を作り込む工程(上流)から、品質を確認する工程(下流)へと、ウォーターフォール(滝)で水が流れていくように開発を進めていくモデルです。
今回紹介する「V字モデル」は、このウォーターフォールモデルの上流と下流の対応を明確にしたモデルとなります。V字モデルでは、品質を決定する上流(要求分析~コーディング)と、品質を確認する下流(コードレビュー~受け入れテスト)の各工程の対応が明確に定義されているため、工程や作業プロセスごとに確認しやすいという特徴があります。そのため、V字モデルは大規模なソフトウェア開発でも多く採用されています。
2.V字モデルの各工程の役割とは
V字モデルの最上流に当たるのは、「要求分析」です。要求分析とは、どのようなソフトウェアを作りたいのかという発注者の要求をまとめる工程です。要求分析に対応する下流側の工程は「受け入れテスト(UAT)」で、要求通りのソフトウェアになっているかどうかを確認します。
要求分析で示された機能をどのように実現していくかをまとめる工程が、「要件定義」です。ソフトウェア開発の目的やそのためにどのような機能が必要なのかを明示するだけでなく、セキリュティや保守、予算や開発期間などについても記載します。
要件定義の下流側に対応する工程が、「システムテスト」です。これはシステム開発者側の最終テストのことで、開発したソフトウェアが要件定義の求める機能が実現できているかをチェックします。
要件定義で求められた機能を実現するには、ソフトウェアがどのような動きをするのかを「基本設計」で決定して、それをどのように実現するのかを「詳細設計」で決めていきます。そして実際のソースコード(プログラム)を作成する「コーディング」へと進んでいきます。
この3つの工程に対して、下流では「コードレビュー」「単体テスト」「結合テスト」が行われます。
3.V字モデルにおける「発注者」「開発者」とは
ソフトウェアを開発する場合、開発やテストの担当者は、それぞれの工程により変わります。V字モデルの各工程では、誰が業務を担当するのでしょうか。
まず「要求分析」は、発注者が行います。自社開発の場合で考えてみましょう。経理部が「旅費交通費管理システムが欲しい」と考え、情報システム部に開発を依頼した場合、発注者は経理部となります。その後、要求を受けた情報システム部は、どのようなソフトウェアが必要なのかをまとめた「要件定義」を行います。この要件定義以降の工程が、開発者側の作業です。一般的に、要件定義~システムテストは、開発者(開発会社)が行います。
最終的な「受け入れテスト」については、発注者(発注会社)が行う場合が一般的ですが、発注者(発注会社)に十分なテストノウハウが無い場合もあります。その際は、第三者機関にテストを依頼する場合もあります。
4.V字モデル開発で実機を用いたテストを行うタイミングとは
ソフトウェア開発では開発モデルに関わらず、いずれかの工程で実際にエンドユーザーが使用する端末でテストを行う必要があります。V字モデルでは、一般的に結合テストの工程以降から実機テストを行います。
ソフトウェアの中でも、特にスマートフォン向けアプリの場合、複数の端末で動作や表示の確認を行う必要があります。iPhoneやAndroidといった端末のハードウェアに複数のモデルがあるうえ、OSにも複数のバージョンがあり、これらの組み合わせに対応するには、複数の実機を用意する必要があるでしょう。
テスト用の端末をすべて自社で調達するためには、コストも手間もかかりますが、実機テスト用のスマートフォンはレンタルすることも可能です。詳しくは、以下の記事をご参照ください。
関連記事:iPhoneアプリの実機テストを効率化!実機レンタルツールで簡単に検証する方法
V字モデルは複数の開発モデルの中でも、各工程が明確になる点が特徴です。V字モデルでソフトウェア開発を行っている場合、テスト工程で実機が必要になる期間や、各工程でどの程度のバリエーションの端末が必要かも明確です。網羅的に実機検証を行う必要がある場合、レンタルサービスの利用を検討してみてはいかがでしょうか。
5.スマホがその場ですぐレンタルできるRemote TestKitとは
Remote TestKitは、クラウドベースで最新のiOSやAndroidデバイスを簡単にレンタルできるサービスです。700機種以上のスマホを利用可能で、最新機種から過去の機種まで幅広くカバーしており網羅的な検証が可能です。
必要な時に必要な端末をレンタルできるため、実機購入や維持・管理といったコストの削減も期待できます。