V&V(ぶいあんどぶい)情報システム用語事典

verification and validation / VnV / 検証と妥当性確認 / ベリフィケーション&バリデーション

» 2011年11月07日 00時00分 公開

 分析・設計・開発・製造などの過程(プロセス)が正しく行われ、その結果として最終製品(アウトプット)もまた正しく作り出されているかについて、検証(ベリフィケーション)(注1)と妥当性確認(バリデーション)(注2)という2つの視点から評価すること。製品やサービス、システムなどの品質を確保する基本手段とされる。

 V&Vでいう「検証」とは対象が仕様・設計・計画などの要求事項を満たしているかに関する確証をいい、「妥当性確認」とは対象の機能や性能が本来意図された用途や目的に適っているか、実用上の有効性があるかについての評価をいう。

 コンピュータソフトウェア製品やシミュレーションモデル、医薬品、医療機器、食品安全、航空機、さらには温暖化ガスの排出取り引きなどの検証確認活動において実施され、ISO 9000をはじめとする各種の国際規格や国内規格、業界ガイドラインに取り入れられている。

 ソフトウェアに関するV&Vは、ソフトウェアV&Vとも呼ばれる。ソフトウェア開発は一般に、ユーザー要求に基づいて仕様書や設計書を作り、その後にこれらの文書に従ってコーディングやシステム統合を行う。このとき、設計どおりにコーディングされているか、仕様どおりの機能を持っているかという評価が検証、作られたソフトウェア製品が大元のユーザー要求を満たしているかに関する評価が妥当性確認となる。Vモデルでは上側が妥当性確認、下側が検証と説明される。

ALT ソフトウェアV&V(ベームのVチャート)

 ソフトウェアV&Vの具体的手段としてはソフトウェアテストソフトウェアレビュー、静的解析、あるいはモデル検査、形式検証などがある。活動としては明示的な仕様や要求との整合性確認以外に、仕様や要求にないもの――例えば、バグや不整合、余計な実装などの発見も含まれる。

 Vモデルをみると、妥当性確認は最終工程でのみ行うもののように受け取れるが、どの工程でも最終的なユーザー要求とのずれがないことを意識することはできるので、中間ステップごとにV&Vを行うことが望ましい。この考え方は、ソフトウェアV&Vのプロセスやアクティビティを定義した標準規格のIEEE Std 1012にも取り入れられている。

 IEEE Std 1012はV&V全体を調達V&V、提供V&V、開発V&V、運用V&V、保守V&Vと、これらを調整するV&V管理のV&Vプロセスに分け、各プロセスで企画・実施・報告の3段階のV&V活動を行うという枠組みを示している。

 シミュレーションや数値解析についてのV&Vは、モデルV&Vとも呼ばれる。固体力学、構造力学、流体力学、熱伝導、流動フロー、交通・輸送、化学、音響効果などの分野で用いられる、シミュレーションモデルや数値解析の確かさを評価する方法である。

 工学的シミュレーションは、考察の対象となる現実世界の問題を抽象化して概念モデルを作り、これを基に計算モデル(コード)を作成、コンピュータで実行して計算結果を得る。このとき、概念モデルと計算結果の差異を定量化する処理がベリフィケーション、現実世界の問題と計算結果との差異を定量化する処理がバリデーションとなる。

ALT モデルV&Vを表す図(サージェントのサークル)

 モデルV&Vには標準化のためのガイドラインがある。数値流体力学については米国航空宇宙工学連盟(AIAA)の、計算個体力学については米国機械学会(ASME)のガイドラインが知られる。これらは、各分野のシミュレーションが既存のシミュレーションソフトやCAEシステムを無条件に信用して行われていることが多く、それでは社会的信頼性を維持できない可能性があることから、解析担当者や解析コード開発者に対して検証確認の枠組みを提供することを目的にしている。

 一般にシミュレーションを行うには、まず解きたい現実の問題を概念モデル/数学モデル(微分方程式など)化し、ここから任意のアルゴリズムを使って計算モデル/解析プログラムを作るというプロセスを経る。計算モデルには離散化精度や材料物性などが含まれる。この2つ過程でそれぞれに誤りや誤差が紛れ込む可能性があり、そのままでは計算結果を信頼できないという問題がある。

 シミュレーションプロセスの問題のうち、前者は方程式を正しく解いているかという数学上の問題、プログラムコードに誤りはないかという問題で、これに対する検証がベリフィケーションである。ASMEのガイドラインでは計算ベリフィケーションとコードベリフィケーションに分かれる。ベリフィケーション自体は、解析解/半解析解と数値解の誤差を評価する数学的作業である。

 他方、後者は現実の課題事象に対して正しい方程式を解いているか、十分な精度が得られているかという問題である。これに対する評価がバリデーションであり、内容的には解析結果と実験結果/実測値を比較する数学的作業となる。

 今日の実用シミュレーションでは、複数の解析を組み合わせて実施することも多い。例えば、自動車の衝突シミュレーションでは、組み立て品や部品それぞれのレベルで変形や固有振動数、座屈荷重、接合部の剛性、摩擦などの解析を行い、総合化して結果を出す。シミュレーション自体が階層化され、下位の解析が上位の解析を支えることになるが、一般に上位階層での解析精度は劣化する。そのため階層ごとにV&Vの実施が必要となる。

 シミュレーションは未知の事象を(実験なしに)推し量る方法とみなされることもあるが、ASMEのガイドラインはシミュレーションはバリデーション範囲外の現象を予測できず、“定量的なV&Vがとり得る最良の手段である”という立場である。

(注1)http://www.atmarkit.co.jp/aig/04biz/verification.html

(注2)http://www.atmarkit.co.jp/aig/04biz/validation.html

参考文献

▼『ソフトウェアテスト見積りガイドブック――品質要件に応じた見積りとは』 情報処理推進機構ソフトウェア・エンジニアリング・センター=編/オーム社/2008年9月

▼『課題・仕様・設計――不幸なシステム開発を救うシンプルな法則』 酒匂寛=著/インプレスネットビジネスカンパニー/2003年12月

▼「Software Verification and Validation: An Overview」 Dolores R. Wallace、Roger U. Fujii=著/IEEE Software, Vol.6, No.3/1989年5月

▼「Terminology for Model Credibility」 Stuart Schlesinger=著/Simulation, Vol. 32, No. 3/1979年

▼「Guidelines for Verifying and Validating Software Requirements and Design Specifications」 Barry W. Boehm=著/EURO IFIP'79/1979年


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ