Javaのデッドロックや競合状態に困っている人の強い味方?

マルチスレッドアプリのコードを動的に解析するツール、米コベリティ

2008/05/12

 C/C++やJavaのコード解析システムベンダである米コベリティは5月12日、Javaマルチスレッドアプリケーション向けの動的解析ツール「Coverity Thread Analyzer for Java」の日本国内販売を開始した。

 「Coverity Thread Analyzer for Java」はマルチスレッドJavaアプリケーション開発における、デッドロックや競合状態といった再現が難しい問題のために作られたツールだ。同社のコード解析技術を生かして、並列処理のバグとなるコードをすばやく検出し、データ破壊とシステム障害を回避できる。Eclipseプラグイン版もあり、マルチスレッドを実行しながらその状況も監視できるという。

coverity01.jpg Eclipseプラグインとして実行された「Coverity Thread Analyzer for Java」(写真中央部の「Detects」ビューで1つ1つのスレッドの実行状況を監視できる)

 従来、マルチスレッド処理におけるデッドロックや競合状態といった問題は、コードの該当部分を検出するのが難しく、問題部分の特定に数週間を費やすこともあった。なぜなら、マルチスレッドにおける並列処理のバグは、現象を再現するためのパターンが何万通りもあり、しかも断続的に現象が起きるため、テストに膨大な時間がかかるからだ。

 また近年、マルチコアのプロセッサをソフトウェアでサポートする需要が増大しているのが、新たな課題となっているという。米コベリティ CTO ベン・シェルフ氏は次のように指摘する。「コードとテストの複雑さが増しても納期というのは延ばすことができず、さらに、多くの開発者はマルチスレッド開発での本格的なトレーニングが不十分だ。このため、シングルスレッド環境からマルチスレッド環境への移行時には多くの技術的問題が発生している」

coverity02.jpg 米コベリティ CTO ベン・シェルフ氏

 「Coverity Thread Analyzer for Java」を使えば、「これまで発生した」競合状態およびデッドロックだけではなく、「これから発生するかもしれない」問題を検出でき、マルチスレッドアプリケーション開発において発生する多くの問題がリリース前のQAテスト時に解決できる。

 さらに、コードのバグや脆弱性を静的に解析する同社製品「Coverity Prevent」と連携して使うことによって、製品間での情報共有機能による「複合解析」が可能だ。シェルフ氏は複合解析の利点を次のように述べた。「PreventでThread Analyzerを使用して静的解析の精度を向上させ、Thread AnalyzerでPreventの結果を使用してコードの動的解析の時間を短縮するという相互作用がある」

 「Coverity Thread Analyzer for Java」は5月12日から評価版を発表したが、出荷開始は6月20日の予定だ。さらに、C/C++版も今後のリリースに向けて現在開発中という。

(@IT 平田修)

情報をお寄せください:

Java Agile フォーラム 新着記事

キャリアアップ

- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

注目のテーマ

- PR -
ソリューションFLASH

「ITmedia マーケティング」新着記事

スマートスピーカー対応の広告配信ネットワークを構築して音声広告配信、博報堂DYメディアパートナーズなど3社
博報堂DYメディアパートナーズなど3社は、スマートスピーカーなどで提供されるニュースコ...

スマホネイティブの情報収集行動は「スクショ」「いいね!」――博報堂調べ
「スマートフォンユーザー情報行動調査2018」の結果が発表されました。スマートフォンの...

ブレインパッド、マッチングエンジン「Conomi」を新開発
ブレインパッドは、マッチングエンジン「Conomi」を開発したことを発表した。