TOP
連載一覧
@IT Special
セミナー
eBook
ブログ
アットマーク・アイティ ITエキスパートのための問題解決メディア
Loading
@IT総合トップ > @IT Special PR:GUIのデバッガで追うようにコードの問題個所を正確に特定できる静的解析ツールとは
@ITspecial
Tweet
このエントリーをはてなブックマークに追加

pr

GUIのデバッガで追うようにコードの問題個所を
正確に特定できる静的解析ツールとは


 〜 大規模開発での「同じ修正を2度行う」
悲劇から開発者を救う「Coverity 5」 〜
開発現場で当たり前のように使われるようになってきたソースコードの解析ツール。その最大の課題は、どれだけ正確に多くの致命的なバグや不具合を検出できるかだ。この課題に対する1つの回答としてコベリティが提示するのが、11月11日に発表されたばかりの「Coverity 5」だ。本稿では、「Coverity 5」の概要とその特長をいくつか紹介する。
ソースコード解析ツールが当たり前な時代の
課題を解決する「Coverity 5」と「CIC」

 「Coverity 5」を理解するには、まずコベリティが提供するスイート製品「CIC(Coverity Integrity Center)」について概要を知っておく必要がある。CICは、「Static Analysis(静的解析)」「Dynamic Analysis(動的解析)」「Build Analysis(ビルド解析)」「Architecture Analysis(アーキテクチャ解析)」という4つの解析ツールを備える。また、解析結果をGUIのダッシュボードで管理できる「CIM(Coverity Integrity Manager)」という、Webブラウザで操作するアプリケーションや、Microsoft Visual StudioやEclipseのプラグイン、カスタマイズ用のSDKなども含まれている(図1)。

図1 「CIC(Coverity Integrity Center)」と「Coverity 5」
図1 「CIC(Coverity Integrity Center)」と「Coverity 5」

 もちろん「CIC」は、スイート全体もしくは、静的解析ツール単体で導入することもできる。「Coverity 5」は、「Coverity Prevent」として知られていたC/C++、C#、Javaのソースコード静的解析の機能を向上した「Static Analysis(静的解析)」を含む4製品をカバーするCICに、「CIM」を追加してコード解析データの管理機能を強化したという位置付けだ。

GUIのデバッガで追うように
直感的にコードの問題個所を特定

 「Coverity 5」の新機能の核ともいえる「CIM」は、ひと言でいうと「バグレビューツール」だ。その主な機能は、不具合データのリスト化はもちろん、バグ密度や解析された不具合データの危険度のグラフ化、修正の進ちょく具合の時系列表示などで、さまざまなソースコード解析データを“可視化”する。

 また、リスト化された不具合からリンクして、問題個所がソースコードのどこにあるのかをGUIのデバッガで追うようにレビューすることもできる。問題のソースコードには、問題の詳細な内容を明記したコメントが付与され、関連する別ファイルのソースコードをインラインで表示できるため、画面遷移することなく効率的・直感的に問題を深く追究できる(図2)。

図2 ソースコードの問題個所を表示
図2 ソースコードの問題個所を表示(画像をクリックすると、拡大)

大規模開発での「同じ修正を2度行う」
悲劇から開発者を救うマージ機能

 そのほか「CIM」の特長としては、大規模開発で頻繁に起こる「同じ修正を2度行う」悲劇から開発者を救うマージ機能も見逃せない。「CIM」では、ソースコードの解析データを「プロジェクト」という単位で管理する。ソースコードの実態のまとまりとは別に、仮想的なまとまりで管理することによって、たとえ異なるパスの異なるファイルで同一の不具合が起きたとしても、それを内部的にマージ可能だ。

 例えば、共通のフレームワークを基に、プラットフォームが異なるシステムAとシステムBを複数開発している場合、「CIM」上のプロジェクトAではフレームワークとシステムAをまとめて管理し、プロジェクトBではフレームワークとシステムBをまとめて管理する。プロジェクトAで不具合を修正したソースコードが、システムAの中の共通フレームワークのものだった場合、プロジェクトBにも、その修正が反映される。プロジェクトBでも共通フレームワークの同一の不具合を修正してしまうという“悲劇”は起こらないのだ。

 このように、ソースコードや、その修正を管理しマージするというと、SubversionやCVS、Gitなどのいわゆる「バージョン管理ツール」が思い浮かぶが、「Coverity 5」は、それとは異なるツールだ。ソースコードの差分を上乗せすることはなく、解析するたびに「スナップショット」という固まり単位で不具合データのステータスやコメントを保持することによって拡張性の向上につなげている。

◇

 開発者や品質管理者に魅力的な機能が追加されたコベリティの新しい静的解析ツールだが、まだまだ紹介し切れない機能が多数あり、その使いどころやROI(費用対効果)、事例、動作環境、静的解析機能の詳細なども気になるところだ。それらについては、TechTargetジャパンの「製品レポート記事」が詳しいので、既存のソースコード解析ツールに満足できない読者は、ぜひご一読を。

TechTargetジャパン 製品レポート
“品質のために削れなかった”開発コストを削減する方法
ソフトウェア品質のために重要な「デバッグ&テスト」プロセス。しかし、このプロセスが開発コストの大半を占め、多くのプロジェクトで“削るに削れない”というジレンマに陥っていることをご存じだろうか。
さらに詳しい資料を読む⇒

提供:コベリティ 日本支社
アイティメディア 営業企画
制作:@IT 編集部
掲載内容有効期限:2009年11月30日


TechTargetジャパン 製品レポート
さらに詳しい資料を読む⇒“品質のために削れなかった”開発コストを削減する方法

ソフトウェア品質のために重要な「デバッグ&テスト」プロセス。しかし、このプロセスが開発コストの大半を占め、多くのプロジェクトで“削るに削れない”というジレンマに陥っていることをご存じだろうか。

ET2009(組込み総合技術展)出展決定!
11月18日(水)〜20日(金)にパシフィコ横浜にて開催される「Embedded Technology 2009/組込み総合技術展」に、coverityの出展が決定しました(専用ブース/小間番号: C‐34 )。


●セッション1
携帯開発への静的解析の採用事例にみる、組込みソフトウェアの品質管理手法

会場 : アネックスホール[F203]

日時 : 11月19日 (木) 12:00〜12:45

講演概要 :
ユーザーの視点から最新の静的解析技術が 携帯ブラウザ、ソフトウェアプラットフォームの開発工程に与えたメリットと効果を解説する。

講演者 :
・石黒 邦宏氏
ACCESS 取締役 常務執行役員 兼 最高技術責任者(CTO)兼 最高情報責任者(CIO)
IP Infusion Inc.最高技術責任者(CTO)

・リチャード セルート氏
コべリティ日本支社 日本アジア担当 マネージングディレクター


●セッション2
静的コード解析でわかる!不具合の傾向と対策

会場 : オープンステージ

日時 : 11月20日 (金) 15:00〜15:20

講演概要 :
100を超えるC/C++開発プロジェクトで静的コード解析を実施し得られた、リスクの高い不具合を統計結果と具体例と合わせて解説。静的コード解析から得られたメトリクスが開発現場にもたらす効果を説明する。

講演者 :
・安竹 由起夫氏
コベリティ 日本支社 プロフェッショナルサービスエンジニア


関連リンク

・コベリティ日本支社

・Coverity 5

・Coverity Integrity Centers Static Analysis


関連記事

・ビルドプロセスの「ブラックボックス」を解消する解析ツール (@IT MONOist)

・コベリティ、開発の問題発見・未然防止を実現する2製品を発売〜開発の初期段階で問題を解決し、コスト効率に貢献〜 (@IT NewsInsight)

・ソフトウェアテスト・ミーティング2008 (@IT 情報マネジメント Special)

・組み込みソフトウェア 品質向上セミナーレポート (@IT MONOist Special)

・C#用の静的解析ツール、コベリティが提供へ〜C、Javaに続いて対応〜 (@IT NewsInsight)

・関数の平均長と欠陥の量に相関なし、米コベリティ〜オープンソースで5500万行を解析〜 (@IT NewsInsight)

・マルチスレッドアプリのコードを動的に解析するツール、米コベリティ〜Javaのデッドロックや競合状態に困っている人の強い味方?〜 (@IT NewsInsight)

・動的テスト以上のバグ検出能力 〜 クリティカル分野で採用が続出 (@IT MONOist Special)

・500万行のソースコードを一晩で解析できるソフト〜誤検知率も20%以下を実現〜 (@IT NewsInsight)

@ITトップ|@IT Special インデックス|会議室|利用規約|プライバシーポリシー|サイトマップ


Copyright © ITmedia, Inc. All Rights Reserved.