Semiconductor Portal

» セミコンポータルによる分析 » \術分析 » \術分析(デバイス設& FPD)

ソフトウエアのバグがないことを証してくれるツールをMonoidicsが拡販へ

半導ビジネスにソフトウエアの比率が高まってくるにつれ、ソフトウエアプログラムにつきもののバグが頭痛の|になる。これまでバグをEするツールは見つけて除去するだけで、他にも遒鵑任い覯性はあった。もし、バグがないことを証してくれたら、SoCの設時間がぐんと]くなる。この夢を実現してくれるソフトウエアツールが普及の兆しを見せている。

英国ロンドンを拠点として日櫃砲皀フィスをく、モノイディクス(Monoidics)社は、2Qiにロンドンj学のピーター・オーハン教bと櫂ーネギーメロンj学のジョン・C・レイノルズ教bが]ち立てたプログラムのしさを証する理bをWして、それを化し商@「Infer」と@けた。二人の教bは今でもモノイディクス社の顧問でもある。

同社日本Ъ劵妊レクタであるRichard Rettigによると、このツール「Infer」は世の中にあるC/C++で書いたプログラムならどれでも適できるが、同社の狙うx場は組み込みソフトの分野だという。組み込みUのj模なSoCやFPGAのプログラム開発ではC言語を使う例が\えているからだ。

「Infer」のメリットは、コストを抑えたままバグのないソフトウエアプログラムを証できる点である。これまでバグを除去する場合は、ソフトウエアのプログラムをつぶさに調べると時間(コスト)がかかってしまうが、調hのプログラム霾をらすと時間は]くなるが、カバレージ(垣)が下がってしまいプログラムのが落ちてしまう。できるだけ]時間でバグのないことが証できればありがたい。「Infer」は]時間でバグを調べバグがなくなったことを証するソフトウエアである。ただし、プロシージャ(プログラムの中で、繰り返し登場する処理を行うためにk連の命令をkつの}順(procedure)としてまとめたもの)レベルでのコードがWであることを証するlであり、プロシージャレベルではないコードに関してはずしもWというlではない。

「Infer」は3つのソフトウエアからなる。発見しにくいバグを捉えるBug Catchingと、L陥のないことを証するFormal Verification、ソフトウエアのをビジュアルに表するInferクオリティチャート、である。Bug Catchはソースコードの画C屬縫┘蕁爾あるとそれをハイライトで表し、Formal Verificationはプロシージャごとに証ダイアグラムを発行する。Inferクオリティチャートでは、Tの優先順位と、カバー率を表しプログラムのをビジュアル化する。

この中で、Formal Verificationツールと}ばれるものは来もあった。しかし、これまでのツールではプログラムコードをチェックし、バグのある所に優先度をけそれぞれ直していくという作業が中心だったという。「Infer」のFormal Verificationツールは、バグがないことを数学的に証するものであり、プログラムのをチェックする時間を]縮、すなわち検hコストを下げることができる。


図1 プログラムのを図で表 出Z:Monoidics
図1 プログラムのを図で表 出Z:Monoidics


Inferクオリティチャートは、ソフトウエアのをCall Rankという指Yと、証の(プルーフ)カバレージという指Yを使って表すもの(図1)。横軸のプルーフカバレージは0%から100%まであるが、e軸のCall Rankはプロシージャが}ばれる割合で、高い気曚匹茲}ばれていることをす。L陥のある霾を掘∠堯黄でそれぞれHい、中くらい、少ない、を表している。L陥がないコードはuで表す。図1の笋曚Wであり、左笋柾L陥を含む可性がHいことを表している。

「Infer」はコードとメモリとの関係をきっちり保証することが実現のカギだという。見つけにくいバグの中でもメモリリークと}ばれる、メモリ覦茲徐々にってしまう現に咾ぁメモリリークはOSのメモリ管理桔,北筱があったり、アプリケーションにバグが残っていたりするときやすい、と言われている。

「Infer」の~Wな点は、サードパーティのコードに瓦靴討をチェックできることだ(図2)。経済噞省の組込みソフトウエア噞実調h報告書2010によると、世の中にあるてのソフトウエアの平均的なプログラム行数は99.8万行であり、そのうちくゼロから開発するコードは45.4万行である。残りの54.4万行はソフトの再Wということになる。となるとサードパーティのソフトを流することがごくk般的になってきていることになる。ただし、「サードパーティのコードには基がない。その基は他のコードとの互換性もない」とRichard Rettigは言う。また、サードパーティのコードがたとえしくても、組み合わせるとL陥となるケースもあるという。


図2 サードパーティのソフトのチェックにも~効 出Z:Monoidics

図2 サードパーティのソフトのチェックにも~効 出Z:Monoidics


そこで、サードパーティも含めたソフトウエアのをチェックするために、ドライバからライブラリ、ミドルウエア、アプリケーションのてに渡ってチェックすることが要になってくる。それもできるだけ開発の嵶工で行い、バグをZい工までeっていかないことが_要になる。に、Androidデバイスに使われるソフトウエアはサードパーティだらけなので再Wのチェックは不可Lである。

このソフトの入}桔,箸靴董PCやサーバーにインストールするパッケージソフトの他に、クラウドをWする桔,眤靴┐討い襦「Infer」はC/C++をサポートしているが、2012QにはJavaプログラムにも官する予定だ。

(2011/08/31)
ごT見・ご感[
麼嫋岌幃学庁医 91心頭咸仔寄頭匯雫壓濆杰| 消消忝栽消消消消| 俤俤篇撞窒継心| 喟弊柿泰v猟bysnow畠猟堋響| 挫槻繁壓濾饌輦以嘖斛濆杰www 挫槻繁壓濆杰憾瀁緤啼www | 消消娼瞳篇撞冉巖| 天胆來寄媾消消消消消| 繁曇嶄猟忖鳥岱繁戴壓| 弼玻玻際際際際弼忝栽消匯| 忽恢撹繁涙鷹怜匚篇撞壓濆杰| 2021晩云眉雫尖胎唹垪| 寄遜匯雫谷頭窒継篇撞鉱心i | 匯雫仔弼a雫頭| 涙鷹娼瞳消消消爺爺唹篇| 消荷篇撞壓瀉盞儿杰| 天胆撹繁怜匚窒継頼撹| 冉巖娼瞳天胆娼瞳晩昆娼瞳 | 卯皮胆溺用坪丗18鋤黛其利嫋| 臼訳醍纎74何恬瞳壓濆杰| 弼謹謹壓濆杰簡啼| 忽恢壓濔瞳匯曝屈曝音触醍狭 | 槻伏才溺伏壓匯軟餓餓議載祐| 狹狹壓濆杰潅盞儔シ| 築洋弼圀AV壓濂シ店恢晩昆 | 恷除恷仟嶄猟忖鳥| 冉巖崙捲某沃娼瞳消消| 天胆爾秤匯曝屈曝眉曝膨曝| 冉巖忝栽娼瞳秉蕎綻値| 間寄議坪燈値倉序竃篇撞| 膨拶唹篇壓灑西鍛盞儿杰| 欧腿築篇撞壓濆杰竿訖| 忽恢壓瀘淆詈啼客伺屈曝眉曝| 天胆爾秤videossex擦平| 忽恢娼瞳冉巖天胆晩昆消消| 88aa膨拶唹撹繁娼瞳| 忽囂徭恢裕田娼瞳篇撞裕| AAA晩云互賠壓濂シ澱盞儿杰| 溺繁互咳蒙雫谷頭| 匯曝屈曝眉曝鉱心| 弌秤詑互賠忽恢壓濂シ| 匯雫溺繁18頭谷頭窒継篇撞|