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 平田修)

情報をお寄せください:

TechTargetジャパン

Java Agile フォーラム 新着記事

キャリアアップ

- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

ホワイトペーパーTechTargetジャパン

注目のテーマ

- PR -
ソリューションFLASH

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

ANAグループの顧客接点活用した訪日外国人向けプロモーション支援サービス、デジタルガレージが提供
デジタルガレージは全日空商事と協業し、国内企業や地方自治体が行う訪日外国人向けマー...

「リタゲ」から「フルファネル」へ――知っていそうで知らないダイナミック広告の活用法
企業が持つアイテムデータを活用し動的(ダイナミック)に配信されるダイナミック広告が...

訪日外国人旅行者を対象とした広告配信、IMJがインバウンド特化のマーケティングサービスを提供開始
アイ・エム・ジェイは、訪日外国人旅行者をターゲティングし、プロモーションの一環とし...