Klocworkのご紹介
-
Upload
masaru-horioka -
Category
Engineering
-
view
99 -
download
0
Transcript of Klocworkのご紹介
12002-2014 Rogue Wave Software, Inc. All Rights Reserved.
12002-2014 Rogue Wave Software, Inc. All Rights Reserved.
22002-2014 Rogue Wave Software, Inc. All Rights Reserved.
22002-2014 Rogue Wave Software, Inc. All Rights Reserved.
KlocworkStatic Code Analysis による
コーディング品質向上自動化ソリューションのご紹介
Masaru HoriokaSenior Sales Engineer – APACRogue Wave Software Japan
32002-2014 Rogue Wave Software, Inc. All Rights Reserved.
32002-2014 Rogue Wave Software, Inc. All Rights Reserved.
会社概要• Rogue Wave Software( ローグウェーブ ソフトウェア)
設立: 1989 年本社:米国 コロラド州 ボルダー日本オフィス:東京都千代田区二番町5 - 5 番町フィフスビル 3 F 業務内容:ソフトウェア開発ツールおよび組み込みコンポーネント(ライブラリ)の開発および販売
• Klocwork について– ノーテルネットワークスにおけるコード構造解析プロジェクトにより開発された技術
をベースとする Klocwork 社の静的解析ツール。 2014 年 1 月より Rogue Wave
Software により買収される。
– 10 年以上の静的解析分野への技術革新への取り組み、 SD Times (米国のソフトウェア業界紙) Top 100 award を 8 年連続受賞
– 北米、ヨーロッパ、アジア各国(日本も含む)において、直接販売、および、パートナー様と連携しビジネス展開
42002-2014 Rogue Wave Software, Inc. All Rights Reserved.
42002-2014 Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave Software
• Klocwork– C/C++ 、 Java, C# 向け静的
解析ツール
• TotalView– C/C++/Fortran 向け並列対
応 GUI デバッガ / 動的解析
• Visualization– Views/JViews/Elixir GUI コン
ポーネント
• SourcePro– エンタープライズアプリケー
ション向け C++ ライブラリ
• OpenLogic– OSS テクニカルサポート– OSS 監査サービス– SaaS 型 OSS 管理プラットフォー
ム
• IMSL– C/C++, Java, C#, Python,
Fortran 向け数値計算・統計、データマイニングライブラリ
• PV-WAVE– 可視化データ解析用ソフトウェア
• Stingray Studio– Windows 向け GUI ライブラリ
ソフトウェア開発ツールおよび組み込みコンポーネント(ライブラリ)の開発および販売
52002-2014 Rogue Wave Software, Inc. All Rights Reserved.
52002-2014 Rogue Wave Software, Inc. All Rights Reserved.
Financial Services Telecom Gov’t / Defense Technology Other Verticals
お客様Rogue Wave のソリューションは世界57カ国
3,000 社以上のお客様に利用されています
62002-2014 Rogue Wave Software, Inc. All Rights Reserved.
62002-2014 Rogue Wave Software, Inc. All Rights Reserved.
静的コード解析とは
72002-2014 Rogue Wave Software, Inc. All Rights Reserved.
72002-2014 Rogue Wave Software, Inc. All Rights Reserved.
2014 年 2 月 25 日 IT Media 社のニュースの記事より
Twitter 上の反応
82002-2014 Rogue Wave Software, Inc. All Rights Reserved.
82002-2014 Rogue Wave Software, Inc. All Rights Reserved.
静的解析ツールとは?ソースコードを解析し、ソフトウェアを実行することなく欠陥(主にプログラミングエラー)を自動的に発見する
テストツールまるわかりガイド(入門編)より
92002-2014 Rogue Wave Software, Inc. All Rights Reserved.
92002-2014 Rogue Wave Software, Inc. All Rights Reserved.
Goto Fail 問題の静的解析による指摘例
102002-2014 Rogue Wave Software, Inc. All Rights Reserved.
102002-2014 Rogue Wave Software, Inc. All Rights Reserved.
静的コード解析が注目されている理由 : 生産性と 品質
セキュアで信頼性の高いソフトウェアを構築、およびコスト削減に寄与• 大規模で複雑なソフトウェア開発において、人手によるコードレ
ビューや、既存のテスト手法ではカバーしにくい領域を補完• 自動実行可能、コード変更毎のくり返し実行が容易
仕様デザイン
コード
単体テスト
システムテスト
受け入れテスト
リリース
修
正コ
スト
ソフトウェア・ライフサイクル
112002-2014 Rogue Wave Software, Inc. All Rights Reserved.
112002-2014 Rogue Wave Software, Inc. All Rights Reserved.
静的コード解析が注目されている理由 : 業界標準とプロセス
主要な業界標準の順守に必要不可欠• DISA STIG, CWE, MISRA
• CERT, SAMATE
• OWASP, DO-178B, FDA validation
• … その他
近年納入条件の一つとして「静的解析ツールの利用とそのエビデンスの提供」が指定されるケースが増えてきている
122002-2014 Rogue Wave Software, Inc. All Rights Reserved.
122002-2014 Rogue Wave Software, Inc. All Rights Reserved.
静的コード解析が注目されている理由 : 効果
Klocwork のお客様事例• ローレンス・リバモア国立研究所 : 360K LOC のプロジェクトに対
して $200K (2400万円相当) のコスト削減に貢献• ロッキード・マーティン社 : 「開発者が重大な不具合を一件 / 年発
見してくれれば元はとれる」
132002-2014 Rogue Wave Software, Inc. All Rights Reserved.
132002-2014 Rogue Wave Software, Inc. All Rights Reserved.
自動化による静的解析ツールの最適活用法
142002-2014 Rogue Wave Software, Inc. All Rights Reserved.
142002-2014 Rogue Wave Software, Inc. All Rights Reserved.
静的解析ツール利用のアンチパターン
開発サイクル
編集 保存 コンパイル テスト チェック
イン ビルド 解析& 修正
ポイント : • 開発フェーズの最後に解析(&修正)• 修正による“手戻り”が発生するためツールの活用が進
まない• 修正されないまま放置、または、修正コストが高くつ
く• 低い生産性、改善されない品質、低い ROI
152002-2014 Rogue Wave Software, Inc. All Rights Reserved.
152002-2014 Rogue Wave Software, Inc. All Rights Reserved.
静的解析活用のベスト・プラクティス:コーディング段階から解析
編集 保存 解析 & 修正
コンパイル テスト チェック
イン ビルド
開発サイクル
ポイント : • コーディング段階から活用• 不具合を含むコードがチェックインされることを防ぐ• 手戻りが少ない• コーディング段階から品質の見える化
162002-2014 Rogue Wave Software, Inc. All Rights Reserved.
162002-2014 Rogue Wave Software, Inc. All Rights Reserved.
Klocwork を活用した静的解析環境構築
• Jenkins等との連携による自動解析
• デスクトップ解析
•品質を見える化するレポート
172002-2014 Rogue Wave Software, Inc. All Rights Reserved.
172002-2014 Rogue Wave Software, Inc. All Rights Reserved.
Klocwork 製品構成
統合ビルド解析デスクトップ解析
不具合管理サーバーライセンスサーバー
管理者、チーム開発向け開発者向け
182002-2014 Rogue Wave Software, Inc. All Rights Reserved.
182002-2014 Rogue Wave Software, Inc. All Rights Reserved.
Klocwork を利用した静的解析環境構築例
ソースコード管理システム
チェックアウト
チェックイン
ビルドサーバー:統合ビルド解析
開発者:デスクトップ解析
修正&解析&確認
Jenkins等による自動化
課題管理 / プロジェクト管理システム連携
電子メールによる新規不具合、担当者割当通知
品質状況の確認モジュールにまたがる不具合の発見
チェックイン前の品質向上
192002-2014 Rogue Wave Software, Inc. All Rights Reserved.
192002-2014 Rogue Wave Software, Inc. All Rights Reserved.
様々な環境で利用可能なデスクトップ解析Visual Studio, Eclipse 向けプラグインに加え、その他の任意のエディタと併用可能なKlocwork Desktopを提供
Visual Studio 、 Eclipse では IDE 内から解析の実行が可能
202002-2014 Rogue Wave Software, Inc. All Rights Reserved.
202002-2014 Rogue Wave Software, Inc. All Rights Reserved.
コーディング段階から品質の見える化• 指摘の種類の分析• 指摘数の推移• 修正、利用状況の管理• 複雑度等メトリクス取得
品質を見える化するためのレポーティング機能
212002-2014 Rogue Wave Software, Inc. All Rights Reserved.
212002-2014 Rogue Wave Software, Inc. All Rights Reserved.
• C/C++ 、 C# および Java 向けの数百のチェッカー• 最先端のデスクトップ解析• 様々な業界コーディング標準のサポート• カスタマイズが容易 :
– チェッカーの有効・無効化– 不具合の重要度の変更– カスタムチェッカーの追加
Klocwork の特徴
• MISRA, DISA STIG, CWE, CERT
• デッドコード• 未到達コード• 使用されない計算済みの変数• 使用されていない関数の引数• …
コーディング標準 & 保守性
• メモリー・リソースリーク• メモリ破壊• 並行処理の問題• 無限ループ• NULL ポインタの間接参照• 未初期化の変数…
信頼性
• バッファオーバーフロー• 検査されていない入力値の使
用• SQL インジェクション• Path インジェクション• File インジェクション• クロスサイトスクリプティン
グ• 情報漏えい• 脆弱性を生むコーディング作
法• …
セキュリティ
222002-2014 Rogue Wave Software, Inc. All Rights Reserved.
222002-2014 Rogue Wave Software, Inc. All Rights Reserved.
環境、対応コンパイラ
ハードウェア要件
CPU : 1 GHz 以上 ( Intel Core i5 同等かそれ以上を推奨。大規模環境では 4 コア以上の CPUを推奨)メモリ:解析環境 : 最小 1GB ( コア数 *1GB が推奨 ) 不具合管理サーバー 最小 2GB (解析対象のコード行数やユーザ数に依存。 100 万行以上の場合 4GB 以上推奨)ディスク: 100GB の空きスペース ( 対象コード行数に依存 )
ソフトウェア要件
オペレーティング・システム :Windows (サーバー 2003/2008/2012 、 XP 、 Vista 、 7 、 8 )Linux ( RHEL 、 Fedora 、 Debian 、 SUSE 、 Ubuntu )Solaris ( 10 、 11 )Aix ( Version 5.3 TL 7 、 IBM AIX 6.1 TL 4 )MacOS ( 10.6, )
対応コンパイラ(ビルド環境)
GNU C/C++(gcc 、 g++ 、 cc 、 c++ ) 、 Microsoft Visual Studio(2005,2008,2010,2012) 、その他組み込みコンパイラ詳細は http://goo.gl/M4Btgu
対応統合開発環境( IDE)
Eclipse/ Microsoft Visual Studio/ IBM Rational Application Developer/ IntelliJ IDEA/QNX Momentics
詳細は http://goo.gl/jt8ZzG を参照下さい
232002-2014 Rogue Wave Software, Inc. All Rights Reserved.
232002-2014 Rogue Wave Software, Inc. All Rights Reserved.
デモ
242002-2014 Rogue Wave Software, Inc. All Rights Reserved.
242002-2014 Rogue Wave Software, Inc. All Rights Reserved.
まとめ
• 不具合は発見されない限り修正できない• 発見された欠陥は修正されないと意味が無い
• 開発者が静的解析により発見された欠陥を修正するには、コスト・時間がかかる
• 静的解析への投資対効果を最大化するためには以下が必要– 継続的インテグレーションによる開発の早期段階からの実行– 効率的に欠陥を修正するような開発プロセスをサポートするツールの選択
Klocwork のコネクテッドデスクトップ解析+継続的インテグレーション は、欠陥の早期発見、早期修正のためのベストソリューション
252002-2014 Rogue Wave Software, Inc. All Rights Reserved.
252002-2014 Rogue Wave Software, Inc. All Rights Reserved.
無料トライアルのご紹介
• 対象– 導入を検討されているお客様
• 概要– 試用ライセンスを提供します。– 御社の環境に Klocwork Insight を導入にいただき、開発中のコードなどを解析いただき、解
析結果を確認いただけます。– 導入から解析結果の見方までサポートいたします。– 解析結果を用いて御社コードの品質状況を解析結果報告会としてご報告いたします。
• ステップ– お申込み– 環境の確認(言語、使用コンパイラ、 OS 、マシンスペック、導入規模など)– 導入および解析の実行– 解析結果のレビューおよび重要な指摘例のピックアップ– 解析結果報告会– 評価および導入に向けたご相談
262002-2014 Rogue Wave Software, Inc. All Rights Reserved.
262002-2014 Rogue Wave Software, Inc. All Rights Reserved.