klocworkのご紹介

26
1 2002-2014 Rogue Wave Software, Inc. All Rights Reserved. 1 2002-2014 Rogue Wave Software, Inc. All Rights Reserved.

Upload: masaru-horioka

Post on 17-Aug-2015

99 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Klocworkのご紹介

12002-2014 Rogue Wave Software, Inc. All Rights Reserved.

12002-2014 Rogue Wave Software, Inc. All Rights Reserved.

Page 2: Klocworkのご紹介

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

Page 3: Klocworkのご紹介

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 年連続受賞

– 北米、ヨーロッパ、アジア各国(日本も含む)において、直接販売、および、パートナー様と連携しビジネス展開

Page 4: Klocworkのご紹介

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 ライブラリ

ソフトウェア開発ツールおよび組み込みコンポーネント(ライブラリ)の開発および販売

Page 5: Klocworkのご紹介

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 社以上のお客様に利用されています

Page 6: Klocworkのご紹介

62002-2014 Rogue Wave Software, Inc. All Rights Reserved.

62002-2014 Rogue Wave Software, Inc. All Rights Reserved.

静的コード解析とは

Page 7: Klocworkのご紹介

72002-2014 Rogue Wave Software, Inc. All Rights Reserved.

72002-2014 Rogue Wave Software, Inc. All Rights Reserved.

2014 年 2 月 25 日 IT Media 社のニュースの記事より

Twitter 上の反応

Page 8: Klocworkのご紹介

82002-2014 Rogue Wave Software, Inc. All Rights Reserved.

82002-2014 Rogue Wave Software, Inc. All Rights Reserved.

静的解析ツールとは?ソースコードを解析し、ソフトウェアを実行することなく欠陥(主にプログラミングエラー)を自動的に発見する

テストツールまるわかりガイド(入門編)より

Page 9: Klocworkのご紹介

92002-2014 Rogue Wave Software, Inc. All Rights Reserved.

92002-2014 Rogue Wave Software, Inc. All Rights Reserved.

Goto Fail 問題の静的解析による指摘例

Page 10: Klocworkのご紹介

102002-2014 Rogue Wave Software, Inc. All Rights Reserved.

102002-2014 Rogue Wave Software, Inc. All Rights Reserved.

静的コード解析が注目されている理由 : 生産性と 品質

セキュアで信頼性の高いソフトウェアを構築、およびコスト削減に寄与• 大規模で複雑なソフトウェア開発において、人手によるコードレ

ビューや、既存のテスト手法ではカバーしにくい領域を補完• 自動実行可能、コード変更毎のくり返し実行が容易

仕様デザイン

コード

単体テスト

システムテスト

受け入れテスト

リリース

正コ

スト

ソフトウェア・ライフサイクル

Page 11: Klocworkのご紹介

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

• … その他

近年納入条件の一つとして「静的解析ツールの利用とそのエビデンスの提供」が指定されるケースが増えてきている

Page 12: Klocworkのご紹介

122002-2014 Rogue Wave Software, Inc. All Rights Reserved.

122002-2014 Rogue Wave Software, Inc. All Rights Reserved.

静的コード解析が注目されている理由 : 効果

Klocwork のお客様事例• ローレンス・リバモア国立研究所 : 360K LOC のプロジェクトに対

して $200K (2400万円相当) のコスト削減に貢献• ロッキード・マーティン社 : 「開発者が重大な不具合を一件 / 年発

見してくれれば元はとれる」

Page 13: Klocworkのご紹介

132002-2014 Rogue Wave Software, Inc. All Rights Reserved.

132002-2014 Rogue Wave Software, Inc. All Rights Reserved.

自動化による静的解析ツールの最適活用法

Page 14: Klocworkのご紹介

142002-2014 Rogue Wave Software, Inc. All Rights Reserved.

142002-2014 Rogue Wave Software, Inc. All Rights Reserved.

静的解析ツール利用のアンチパターン

開発サイクル

編集 保存 コンパイル テスト チェック

イン ビルド 解析& 修正

ポイント : • 開発フェーズの最後に解析(&修正)• 修正による“手戻り”が発生するためツールの活用が進

まない• 修正されないまま放置、または、修正コストが高くつ

く• 低い生産性、改善されない品質、低い ROI

Page 15: Klocworkのご紹介

152002-2014 Rogue Wave Software, Inc. All Rights Reserved.

152002-2014 Rogue Wave Software, Inc. All Rights Reserved.

静的解析活用のベスト・プラクティス:コーディング段階から解析

編集 保存 解析 & 修正

コンパイル テスト チェック

イン ビルド

開発サイクル

ポイント : • コーディング段階から活用• 不具合を含むコードがチェックインされることを防ぐ• 手戻りが少ない• コーディング段階から品質の見える化

Page 16: Klocworkのご紹介

162002-2014 Rogue Wave Software, Inc. All Rights Reserved.

162002-2014 Rogue Wave Software, Inc. All Rights Reserved.

Klocwork を活用した静的解析環境構築

• Jenkins等との連携による自動解析

• デスクトップ解析

•品質を見える化するレポート

Page 17: Klocworkのご紹介

172002-2014 Rogue Wave Software, Inc. All Rights Reserved.

172002-2014 Rogue Wave Software, Inc. All Rights Reserved.

Klocwork 製品構成

統合ビルド解析デスクトップ解析

不具合管理サーバーライセンスサーバー

管理者、チーム開発向け開発者向け

Page 18: Klocworkのご紹介

182002-2014 Rogue Wave Software, Inc. All Rights Reserved.

182002-2014 Rogue Wave Software, Inc. All Rights Reserved.

Klocwork を利用した静的解析環境構築例

ソースコード管理システム

チェックアウト

チェックイン

ビルドサーバー:統合ビルド解析

開発者:デスクトップ解析

修正&解析&確認

Jenkins等による自動化

課題管理 / プロジェクト管理システム連携

電子メールによる新規不具合、担当者割当通知

品質状況の確認モジュールにまたがる不具合の発見

チェックイン前の品質向上

Page 19: Klocworkのご紹介

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 内から解析の実行が可能

Page 20: Klocworkのご紹介

202002-2014 Rogue Wave Software, Inc. All Rights Reserved.

202002-2014 Rogue Wave Software, Inc. All Rights Reserved.

コーディング段階から品質の見える化• 指摘の種類の分析• 指摘数の推移• 修正、利用状況の管理• 複雑度等メトリクス取得

品質を見える化するためのレポーティング機能

Page 21: Klocworkのご紹介

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 インジェクション• クロスサイトスクリプティン

グ• 情報漏えい• 脆弱性を生むコーディング作

法• …

セキュリティ

Page 22: Klocworkのご紹介

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 を参照下さい

Page 23: Klocworkのご紹介

232002-2014 Rogue Wave Software, Inc. All Rights Reserved.

232002-2014 Rogue Wave Software, Inc. All Rights Reserved.

デモ

Page 24: Klocworkのご紹介

242002-2014 Rogue Wave Software, Inc. All Rights Reserved.

242002-2014 Rogue Wave Software, Inc. All Rights Reserved.

まとめ

• 不具合は発見されない限り修正できない• 発見された欠陥は修正されないと意味が無い

• 開発者が静的解析により発見された欠陥を修正するには、コスト・時間がかかる

• 静的解析への投資対効果を最大化するためには以下が必要– 継続的インテグレーションによる開発の早期段階からの実行– 効率的に欠陥を修正するような開発プロセスをサポートするツールの選択

Klocwork のコネクテッドデスクトップ解析+継続的インテグレーション は、欠陥の早期発見、早期修正のためのベストソリューション

Page 25: Klocworkのご紹介

252002-2014 Rogue Wave Software, Inc. All Rights Reserved.

252002-2014 Rogue Wave Software, Inc. All Rights Reserved.

無料トライアルのご紹介

• 対象– 導入を検討されているお客様

• 概要– 試用ライセンスを提供します。– 御社の環境に Klocwork Insight を導入にいただき、開発中のコードなどを解析いただき、解

析結果を確認いただけます。– 導入から解析結果の見方までサポートいたします。– 解析結果を用いて御社コードの品質状況を解析結果報告会としてご報告いたします。

• ステップ– お申込み– 環境の確認(言語、使用コンパイラ、 OS 、マシンスペック、導入規模など)– 導入および解析の実行– 解析結果のレビューおよび重要な指摘例のピックアップ– 解析結果報告会– 評価および導入に向けたご相談

Page 26: Klocworkのご紹介

262002-2014 Rogue Wave Software, Inc. All Rights Reserved.

262002-2014 Rogue Wave Software, Inc. All Rights Reserved.