...

Coverity Static Analysis

by user

on
Category: Documents
145

views

Report

Comments

Transcript

Coverity Static Analysis
Coverity Static Analysis
最高品質のソフトウェア開発を実現
Coverity Static Analysisは、開発ライフサイクルの早期段階で、最高品質で
信頼性の高いソフトウェアを保証する優れた自動化ツールです。今日利用でき
る静的コード解析ソリューションとして最も精度の高いStatic Analysisは、
コードに変更を加えたりシステムをビルドすることなく、C/C++、Javaおよ
びC#ソースコードを自動的に解析します。ビルド環境とソースコードを完全
に理解しているStatic Analysisは、柔軟で、深部に及ぶ正確なソースコード
解析が必要な開発者に最適なツールです。
世界中の何百もの開発組織で採用されているStatic Analysisは、大量の複雑な
コードを自動的に解析して、システム障害、実行時例外、セキュリティ脆弱性、お
よびパフォーマンス低下につながる、修正が必要で重大な欠陥を検出します。
顧客の多くは、医療機器製造、航空宇宙・防衛技術、ネットワーキングインフ
ラストラクチャ、ストレージシステム、自動車製造、金融サービスなど、ソース
コードのセキュリティと信頼性への要求が厳しい業界に属しています。これ
らの企業は、ソフトウェアの不具合がどのような深刻な結果をもたらすか、ま
たコードの品質がどれほど重要かをよく理解しており、高品質ソフトウェア
の開発を実現すべく、Coverity Static Analysisを使用しています。
Static Analysisは高度な技術を駆使することで、現時点で最も正確で包括
的な静的解析を実現し、業界で平均誤検出率が最も低い静的解析ツールで
す。Static Analysisは、コンパイラの呼び出しだけでなく、ビルドを統一表
示できるSoftware DNA Map TM 解析システムを唯一提供し、開発者はソー
スコード全体を完全かつ正確に把握できます。
Coverity Static Analysisの利点:
・データ破壊とアプリケーション不具合の原因となる重大な欠陥を検出
・開発チームの作業効率を高め、重要なアプリケーションの市場投入にかか
る時間を短縮
・ソフトウェアの完全性とエンドユーザーの満足度向上に貢献
Static Analysisは柔軟性に富み、既存のプロセスに適合できる設計となっ
ています。ソースコード管理やバグ追跡システムと統合できるほか、カスタマ
イズ可能なワークフローによって、欠陥を修正するための共同作業プラットフ
ォームも提供しています。Coverity Static Analysisは開発サイクルの早期
段階で重大な欠陥を検出し、開発チームが重要なアプリケーションの市場投
入を早めるのを助け、コスト削減にも貢献します。また、Coverity Dynamic
Analysisなどの動的解析ツールと組み合わせると、強力なソフトウェア品質
管理ソリューションとなります。
Coverity Static Analysisの機能:
高信頼性ソフトウェア開発を実現する3つのステップ
プログラミング形式と構文ベースのチェックに重点を置く他のソースコード
解析ツールとは異なり、Static Analysisでは高度で細部に及ぶ解析手法を駆使
し、多くの開発者が重要視する、修正が必要な欠陥を検出します。パスシミュレ
ーション(データフロー解析)とブール充足可能性(SAT)ソルバーを唯一提供
し、コードおよび実行パスを100%カバーすることにより深部に及ぶ正確な静
的解析を実現し、誤検出率を5%にまで抑えることに成功した顧客もいます。
重大な欠陥を排除し、
ソフト ウェアの 完 全 性
を高めます
Static Analysisの優れた技術を
使用した主な機能:
高精度の解析
Static Analysisは最も正確で信頼性の
高い結果が得られる静的解析ツールとし
て、市場で最も低い、平均誤検出率を維持
し、その平均は15%を下回っています。
100%のパスカバー率
Static Analysisはソースコードのパス
を100%解 析し、可能性のある実 行ブ
ランチをすべて追跡する一方で、可能性
のないパスを除去します。
スケーラビリティと統合力
Static Analysisは数時間で何百万行
ものコードをスキャンします。開発プロ
セスを中 断 せずに、通常のビルドプ ロ
セスに簡単に統合できます。
柔軟性の高いワークフロー
Static Analysisを使 用すると、開発
者は自分のデスクトップ、または中央の
ビ ルドシステムでコード を 解 析で きま
す。また、Defect Managerを使 用す
ることで、開 発 チ ームは 瞬 時に欠 陥を
把握し、責任者を割り当てて、カスタマ
イズ 可能なワークフローを通じて解決
できます。
広範なチェッカー
Static Analysisのチェッカーは、シス
テムクラッシュ、メモリリーク、メモリ
破壊、予期しない動作を引き起こす、修
正が必要である重大な品質欠陥および
並列処理欠陥だけでなく、バッファオー
バーフローやコマンドインジェクション
攻撃 などのセキュリティ脆 弱 性も 検 出
するように設計されています。
1.Software DNAのマッピング
ソース コ ード上 のすべ ての 操 作 を 自 動 的 に 完
全 表 示 で きる 高 度 な 技 術 を 備 えて い る の は
Coverity Static Analysisだけです。Coverityの
Software DNA Map解析システムを使用する
と、ビルドシステムの最深部まで徹底的に見通す
ことができるため、開発者は実行可能ファイルの
生成に使用されたすべての関連ソースコードデー
タを正確に統一表示できます。ソースコードを正
確に表示することは、高品質なソフトウェア開発
実現への第一歩となります。
Coverityの3段階のプロセスは、重大なソフトウェア欠陥を検出し除去するため
の包括的な手法です。
2.重大な欠陥を特定
Software DNA Map解析システムで生成された包括的なデータを活用し、いくつもの高度な技術を駆使して、開発サイク
ルの早期段階で重大な品質欠陥、セキュリティ欠陥、および並列処理欠陥を検出します。
・パスシミュレーションおよびプロシージャ間解析−
パ スシミュレーションではソースコード上のすべての関 数の 制 御フローを 追 跡 できるので、すべての 値とデータパ スを
100%シミュレーションし、リソース割り当て、ポインタ操作、バッファや文字列の使用状況、および不正確なデータ処理に関
する欠陥を幅広く検出できます。プロシージャ間解析では、各関数の効果を要約することで、ファイルおよびモジュール全体
の深部まで複雑なコールチェーンを確認できます。プロシージャ間解析で、仮想関数呼び出しも解決でき、オブジェクト指向
のソースコードを深部までカバーします。統計解析エンジンは、ソースコード全体の動作パターンを追跡します。このため、こ
れまでに監視した動作に基づいて適切な動作を推測できます。さらに、フォールス パス プルーニングは、各ブランチの状態
を解明し、現在のパスでtrueかfalseかunknownかを調べます。このため、誤検出を効率的に排除し、約15%の平均誤検出
(FP)率を実現しています。
・ブール充足可能性(SAT)−
電子設計オートメーション(EDA)会社がデジタル回路の設計に長年使用してきた手法ですが、Coverityはこの手法をC/
C++静的解析ツールに初めて採用しました。Coverityの画期的な技術は、最初にSoftware DNA Mapからビット精度表現
を作成します。次に、関連するあらゆる操作がブール変数(trueと falseの値を持つ変数)とブール演算子(AND、NOT、OR)
で構成されるブール式に変換され、さらにSATソルバーで解析するための式に変換されます。SATエンジンを使用すること
で、複雑な条件の組み合わせが関与するフォールスパスが除去され、整数オーバーフローなどの重大な算術演算上の問題が検
出されるため、検査の正確さが大幅に向上します。
3.欠陥の解決
欠陥を特定するだけでは十分とはいえません。開発者は最高品質のソフトウェアを開発するために、Static Analysisの静的解
析データを使用し、欠陥を解決する必要があります。Static AnalysisのわかりやすいDefect Managerインターフェイスを使用
すると、欠陥をすばやく理解でき、責任者を割り当てて、カスタマイズ可能なワークフローを通じて解決することができます。
解析結果はDefect Managerに表示され、新しい欠陥が検出されるたびに責任者を自動的に割り当てて、電子メールで通知
することができます。
欠陥ごとに完全なパス情報が表示されるので、開発者はエラーの根本原因をすばやく突き止めることができます。また、解
析エンジンがエラー検出に使用したロジックに関する情報もソースコードに直接表示されます。正確な相互参照を通じて、す
べての変数および関数の宣言と使用状況にアクセスできるので、エラー診断がさらに簡単になります。現在、および過去の欠
陥のステータスに関する最新情報が記載された実用的なレポートにより、コードの品質を瞬時に認識できます。
Coverity Static Analysisの柔軟なインターフェイスで、開発チームは欠陥の優先順位を付けそ
の修正を割り合て欠陥修正状況をトラッキングできます。
特長
並列処理チェッカー
Static Analysisで、他に類のない解析精度および解析の深さ
Static Analysisには今日の複雑なマルチスレッドアプリケー
を実現でき、その高度な機能により既存の開発プロセスへ簡単
ションに対応した並列処理チェッカーが備わっているので、開
に統合させることができます。
発者はデータ破壊やシステム障害を引き起こすデッドロックや
Software DNA Map™ 解析システム
競合状態を排除できます。
CoverityのSoftware DNA Map解析システムは、ビルドシス
統計解析およびプロシージャ間解析
テムを監視し、記録します。さらに、深部に及ぶ正確な静的解
開発者にとって重要なクラッシュの原因となる欠陥を検出する
析に適した包括的なコード表現を作成します。
ため、Static Analysisは統計解析を使用して、ソースコード
自動欠陥検出
を追跡した動作パターンに基づいて適切な動作を推測し、関
し、メモリ破壊、エラー、実行時例外、セキュリティ脆弱性、
ジャ間(プログラム全体)の解析を実行します。
Static Analysisはコードベース全体を完全に自動スキャン
数、ファイル、モジュールの境界を超えて深部に及ぶプロシー
並列処理欠陥、パフォーマンス低下などの、修正が必要な欠陥
誤検出率の低さ
を特定します。
Static Analysisの高度な解析エンジンは、各言語とエラータイプ
Defect Manager
に特有のセマンティックスおよびイディオムを考慮し、慎重に誤
開発プロセスを反映したカスタマイズ可能なワークフローを通
によっては誤検出率を5%に抑えられたという報告もあります。
包括的なワークフロープラットフォームの採用により、既存の
検出を回避します。平均誤検出(FP)率は約15%と低く、顧客
じて、共同で簡単に欠陥の表示、優先順位決定、解決ができる
電子メール通知
ようになりました。Webベースのインターフェイスにより、開
検査で新しい欠陥が見つかると、欠陥の存在とそのバグに関す
発者は時と場所を選ばずに欠陥を修正できます。
る主な情報を知らせる電子メール通知が自動配信されます。
ローカル解析と集中解析
LDAP統合
ェックの前後に中央のビルドシステムまたは自分のデスクトッ
認証手順に簡単に適合できます。
プで、ローカルにコードを解析できます。このため、夜間にビ
ビルド統合
Static Analysisを使用し、開発者は、ビルドシステムでのチ
ルドした後で欠陥を修正し、中央のサーバーと同期をとること
ができます。
ブール充足可能性(SAT)
この画期的な解析エンジンは、C/C++ソースコードをブール
値に基づいた表現に変換し、SATソルバーを適用してパスが実
行可能かどうかを決定することで、正確に欠陥を検知し、低い
誤検出率を実現します。この画期的な技術にさらなる精度を付
加した製品はStatic Analysisだけです。
Static Analysisはユーザーの集中管理が必要な組織の既存の
Static Analysisはシステムを変更したり開発プロセスを中断
することなく通常のビルドシステムにシームレスに統合でき、
ハードウェアを追加する必要もありません。
レポート
グラフィカルなレポーティング機能により、コード品質および
現在と過去の欠陥に関する最新情報を瞬時に把握でき、管理者
は、品質目標達成に向けた進捗状況の査定に必要なすべての情
報を入手できます。
サポート環境
Coverity Static Analysis for C/C++
サポートされているプラットフォーム
サポートされているコンパイラー
Windows XP 2003
Linux
Solaris
HPUX
Mac OS X
FreeBSD
NetBSD
gcc, g++
Microsoft Visual C++
Sun C/C++
AR M
Wind River
TI Code Composer
Green Hills
Freescale/Nokia CodeWarrior
IAR
HI-TECH PICC
Intel C/C++
HPUX aCC
Marvell MSA
Freescale/Cosmic Compiler
Renesas HS8 Version 6.1
他のANSI C/C++のサポート
互換性のあるコンパイラーは、
リクエストがあればご提供します。
サポートされているIDE
システム要件
Eclipse 3.2以降
EclipseのIDEは以下の通りです。
AR M
IBM
Rational
Mentor
Graphics
Nokia
QNX
Telelogic
WindRiver
CPU: 1GHz
R AM: 最小1 GB,2GBを推奨
ハードディスクの空き領域:1GB
Coverity Static Analysis for Java
サポートされているプラットフォーム
サポートされているIDE
Windows XP, 2003
Linux
Solaris
Mac OS X
Eclipse 3.2,3.3
IBM RationalといったEclipseベースのIDE
Borland/Application Developer 7.0, JBuilder2007
システム要件
JDK 1.4以降
CPU: 1GHz (x86 or SPARC)
R AM: 最小1GB
2GB推奨
ハードディスクの空き領域:1GB
Coverity Static Analysis for C#
サポートされているプラットフォーム
サポートされているコンパイラー
Windows XP, 2003
Microsoft Visual Studio 2003, 2005, 2008
システム要件
CPU: 1GHz
R AM: 1.5GB,2GB推奨
ハードディスクの空き領域:2GB
オンサイトトライアル
クラッシュの原因となるソースコード上のさまざまな欠陥を数時間で検出できるStatic Analysisを無料でご試用いただ
けます。コード変更も不要で、コードの大きさに制限はありません。詳細な解析結果レポートを無料でご提供いたしま
す。ご希望の方は、http://www.coverity.com/html_ja/free_trial.phpでお申し込みください。担当からご連絡さ
せていただきます。
Coverity, Inc.(コベリティ
インク)について
コベリティは、米 国サンフランシスコに本 社をおくソースコード解 析ツール 会 社です。ソフトウェアの 開 発 工 程 の
初 期段 階で、重 大なソフトウェア不 具合およびセキュリティの脆 弱 性を自動 的に解 析、検 出するコベリティの画 期
的 な 技 術 は 、ますます 複 雑 化 するソフトウェア 開 発 を 効 率 的に行うサ ポートをしています。コ ベリティ社 の 製 品
は、何千万行ものコードに対応するだけでなく、フォールスポジティブ 率(誤 検 知率)が 非常に低く、100% のパス
をカバーしており、すでに700 社を 超 える有力 企 業 が 導入しています。おもな 顧 客には、サムスン、Symantec/
VERITAS、日本電気、ACCESS、Wind Riverなどがあり、コベリティ製品を利用して、ミッションクリティカルな
コードのセキュリティや品 質における不 具合を検出し、品 質の向上、開発 の 効率化に役 立てています。同社の詳 細
は、http://www.coverity.com/index _ jp.htmlでご覧ください。
コベリティ 日本支社
〒163-0510 東京都新宿区西新宿1-26-2 新宿野村ビル10階
TEL:03-5909-8838 E-mail: [email protected]
Website: http://www.coverity.com/index_jp.html
Coverity, Inc. 米国本社
185 Berry Street, Suite 1600 San Francisco,CA 94107 USA
E-mail: [email protected]
Website: http://www.coverity.com http://scan.coverity.com
Coverity は Coverity, Inc. の登録商標です。その他の会社名および商品名は各社の商標または登録商標です。
Fly UP