世界初、静的解析ツールでのレースコンディションの検知が可能に
2007 年 12 月 12日 - C/C++ および Java プログラムの静的ソースコード解析ツール会社の、Coverity, Inc.(CEO:Seth Hallem、本社:米国カリフォルニア州サンフランシスコ、以下コベリティ)は、主力商品Coverity Prevent™ の並列処理の不具合検出の新機能を発表しました。
静的解析ツール初のこの新技術により、マルチスレッド アプリケーションで発生しうる、最も検出が困難な並列処理エラーの一つであるレースコンディション(※)の不具合の検出が可能になりました。この機能により、開発者は、他の並列処理の不具合だけでなくレースコンディションの不具合を、バグの修正において一番費用効率の高い、開発工程の初期段階において自動的に検知できます。
本日発表のCoverity Prevent の最新のインターフェイスは、特にマルチスレッド アプリケーションに存在する複雑な関係を開発者が理解しやすいように設計されています。Prevent の新解析機能は複雑なコードを的確に理解し、これらの関係を100% 解析します。
レースコンディションの不具合は、ソフトウェアの最も悪質なエラーの一因になっています。たとえば、Therac-25 放射線治療器のソフトウェアのレースコンディションは、5 人の患者を死に至らしめたといわれています。また、2003 年 8 月の北米停電事故の原因にもなり、5 千万人に影響を与えたのも、レースコンディションの不具合でした。
AMD や Intel などのベンダのコンピュータや、ソニー PlayStation 3 のようなゲーム機器などでの、マルチコア ハードウェアの出現は、レースコンディションの影響を受けやすいマルチスレッド アプリケーションが増える要因となっています。
マルチコア ハードウェアのメリットを活かすには、相互に影響を与える複数のコンピュータ タスクを同時に実行できる新しいマルチスレッド アプリケーションが必要です。
マルチスレッド アプリケーションの設計は非常に複雑であり、スレッドの同時実行といった複雑な作業を適切に処理しないと、新たな種類の不具合を招く可能性があります。これまで、複数のスレッドが同時に実行されていると同時に共有メモリにアクセスしているという実行時の環境の複雑さのために、レースコンディションのような並列処理の不具合の検知は、非常に困難でした。
Coverity の最高技術責任者である Ben Chelf は、以下のように述べています。「Coverity は、長年、当社のお客様がマルチスレッド アプリケーションの並列処理の不具合を解消できるように支援してきました。このたび、当社が識別する危険な不具合の領域にレースコンディションを追加することにより、それらの機能を拡張できたことに満足しています。レースコンディションは、検証が難しく、再現はほぼ不可能で、レースコンディションの結果は致命的ともいえるので、開発者にとっては特に難題です。Coverity のこの新技術はこれらの課題を克服し、開発者がこういった修正に時間のかかる種類の不具合を排除するのに役立ちます。」
なお、Coverity Prevent は、検出困難なレースコンディションを含む、以下のようなクラッシュを引き起こす並列処理の不具合を自動的に検知して、開発者がマルチスレッド アプリケーション設計時の複雑な作業を管理するのに役立ちます。
Coverity, Inc.(コベリティ インク)について
コベリティは、米国サンフランシスコに本社をおく静的ソースコード解析ツール会社です。ソフトウェアの開発工程の初期段階で、重大なソフトウェア不具合およびセキュリティの脆弱性を自動的に解析、検出するコベリティ の画期的な技術は、ますます複雑化するソフトウェア開発を効率的に行うサポートをしています。コベリティ社の製品は、何千万行ものコードに対応するだけでなく、フォールス ポジティブ率(誤検知率)が非常に低く、100% のパスをカバーしており、すでに 350 社を超える有力企業が導入しています。 おもな顧客には、サムスン、Symantec/VERITAS、NTT、Synopsys、ACCESS、Wind River などがあり、コベリティ製品を利用して、ミッションクリティカルなコードのセキュリティや品質における不具合を検出し、品質の向上、開発の効率化に役立てています。同社の詳細は、http://www.coverity.com/html_ja/index.htmlでご覧ください。
Coverity は Coverity, Inc. の登録商標です。Coverity Extend およびCoverity Prevent は Coverity, Inc. の商標です。その他の会社名および商品名は各社の商標または登録商標です。
【本リリースに関するお問い合わせ先】
コベリティ 日本支社
PR担当:仲嶋
TEL: 03-5909-8838
Email: knakajima@coverity.com
【製品に関するお問い合わせ先】
コベリティ 日本支社
渡辺 晃一郎
TEL: 03-5909-8838
Email: kwatanabe@coverity.com
「メモリの取り扱いに関するバグの発生率は限りなくゼロに……」
株式会社外為どっとコム
「解析の精度で選びました」
株式会社コナミデジタルエンタテインメント
「開発者が頼れる開発者のためのツールです」
株式会社シンプレクス・コンサルティング
「バグ解析の精度は、“目からうろこ”でした。」
株式会社セガ
「見つけにくいバグを発見できる特効薬でした」
三菱電機株式会社