テストの本質を探る ――30年の歴史を持つ 「ソフトウェア工学」の知恵に学ぶ

伊藤昌夫

tag: 組み込み

技術解説 2004年4月24日

●○● Column ●○●
◆V&Vのいろいろ-2◆

●形式的手法:LSI検証の分野で実用化

 次に紹介するのは形式的な方法です(表C-2).ここでいう「形式的な(formal)」というのは,それがなんらかの数学的なモデルに基づいて記述されているということを意味しています.正しくなんらかの数学的モデルに基づいていれば,機械的に検証することも可能となります.数学的モデルとしては,公理的集合論や述語論理などが用いられます.

 形式的検証の場合,テスト・ケースを実行するための入力ベクトルを用意する必要がありません.例えば,y=x2であるとき,xに1や-1を入れてみてyがどうなるかを試してみなくても,(例えば)y≧0は数学的に明らかです.その意味で,先の「非形式的な方法」をまとめて動かして結果をみるという意味で「シミュレーション」と呼ぶ場合もあります.

 残念ながらソフトウェア開発の現場で,形式的検証が用いられることはほとんどありません.ソフトウェアが対象とする多くのものは人間系であり,例えば使い勝手にかかわるようなもの(画面全体の色調を明るく,など)は,数学的に表現することが困難です.また,結果がほんとうに正しいかどうかは人間にしかわかりません.

 もちろん,人間系が介在しない世界(通信プロトコルの実現)や,総合的に人間が介在するにしても,人間の生命にかかわるような領域(よくある例は,踏み切りのシステム)では有効な手段になります.また,LSI設計の世界ではかなりポピュラな手法になってきています.

 V&Vは,決まったルールに従う標準化のようなものと思われるかもしれません.最後は具体的なものに対する個別の議論になります.プロジェクトは,QCD(品質,コスト,デリバリ)の制約をつねに受けます.その中で,必要に応じて(それが,形式的であろうと非形式的であろうと)採用するということになります.重要なことは,場面に応じてどのV&Vが使えるかを知っていること,ということになります.

〔表C-2〕形式的なV&Vの方法
リアルタイム・プロパティとは,一般に「活性(liveness;望んでいることはいつかは生じる)」と「安全性(safety;望んでいないことは決して起こらない)」を指す.

手 法
内 容
模型検査(model checking) 時間論理で記述されたシステムの(リアルタイム)プロパティを検証する
形式的検証(formal verification) 数学モデルに基づいて検証する
組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日