12002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 12002-2014 Rogue Wave Software, Inc. All Rights Reserved.
2.
22002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 22002-2014 Rogue Wave Software, Inc. All Rights Reserved.
機能安全規格対応
ソースコード解析ツール
Klocworkのご紹介
Masaru Horioka
Sales Engineering Manager,
APAC
Rogue Wave Software
3.
32002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 32002-2014 Rogue Wave Software, Inc. All Rights Reserved.
静的コード解析とは
4.
42002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 42002-2014 Rogue Wave Software, Inc. All Rights Reserved.
静的コード解析とは?
ソースコードを解析し、パターンマッチや仮想実
行により、ソフトウェアを実行することなく欠陥
発見する
テストツールまるわかり
ガイド(入門編)より
5.
52002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 52002-2014 Rogue Wave Software, Inc. All Rights Reserved.
2014年2月25日IT Media社のニュースの記事より
Twitter上の反応
6.
62002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 62002-2014 Rogue Wave Software, Inc. All Rights Reserved.
Goto Fail問題の静的解析による指摘例
7.
72002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 72002-2014 Rogue Wave Software, Inc. All Rights Reserved.
静的コード解析が注目されている理由1
バグの発見の前倒し、テスト網羅性の向上
• 大規模で複雑なソフトウェア開発において、人手によるコードレ
ビューや、既存のテスト手法ではカバーしにくい領域を補完
• 自動実行可能、コード変更毎のくり返し実行が容易
仕様
デザイン
コード
単体テスト
システムテスト
受け入れ
テスト
リリース
修正コスト
ソフトウェア・ライフサイクル
8.
82002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 82002-2014 Rogue Wave Software, Inc. All Rights Reserved.
静的コード解析が注目されている理由2
近年納入条件の一つとして「静的解析ツールの利用とその
エビデンスの提供」が指定されるケースが増えてきている
– 機能安全規格準拠
– コーディング標準対応
– 複雑度の増加等、下流工程に影響をあたえるコードの弱
点を早期検出し、問題を未然に防ぐ
9.
92002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 92002-2014 Rogue Wave Software, Inc. All Rights Reserved.
静的解析ツール
Klocworkによる
機能安全規格サポート
10.
102002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 102002-2014 Rogue Wave Software, Inc. All Rights Reserved.
機能安全規格と静的解析
何が求められている?何ができる?
IEC61508 part 3やISO26262 part 6で記載されるソフトウェア設計指針や
コーディング規約の順守、ソフトウェア検証としての静的解析ツールの
使用
静的解析ツールを用いると、上記に対するチェックおよびエビデンス
作成が自動化できる
Klocworkならデスクトップ解析により効率的なチェックが可能
使用するツールのQualification
事前にCertificationを得ているものを使用すると、Qualificationを自前
でやる労力を削減することができる
11.
112002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 112002-2014 Rogue Wave Software, Inc. All Rights Reserved.
KlocworkのISO 26262サポート
• Klocworkの機能と26262の要件のマッピング:
http://goo.gl/KHc36f
12.
122002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 122002-2014 Rogue Wave Software, Inc. All Rights Reserved.
ISO 26262-6 Table 1
13.
132002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 132002-2014 Rogue Wave Software, Inc. All Rights Reserved.
ISO 26262-6 Table 3
14.
142002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 142002-2014 Rogue Wave Software, Inc. All Rights Reserved.
ISO 26262-6 Table 8
15.
152002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 152002-2014 Rogue Wave Software, Inc. All Rights Reserved.
様々な環境で利用可能なデスクトップ解析
Visual Studio, Eclipse 向けプラグインに加え、その他の任意のエディタと併
用可能なKlocwork Desktopを提供
16.
162002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 162002-2014 Rogue Wave Software, Inc. All Rights Reserved.
コーディング段階から品質の
見える化
• 指摘の種類の分析
• 指摘数の推移
• 修正、利用状況の管理
• 複雑度等メトリクス取得
品質を見える化するためのレポーティング機能
17.
172002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 172002-2014 Rogue Wave Software, Inc. All Rights Reserved.
Web APIによる独自レポート作成
18.
182002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 182002-2014 Rogue Wave Software, Inc. All Rights Reserved.
Qualification と certification
• Certified (pre-qualified)取得済み
– https://support.roguewave.com/documentation/klocw
ork/en/iso-2017/
– 利用者自らQualificationが必要な場合、一連のテス
トケースを含むQualification Deployment Package
(QDP) を提供
19.
192002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 192002-2014 Rogue Wave Software, Inc. All Rights Reserved.
デモ
20.
202002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 202002-2014 Rogue Wave Software, Inc. All Rights Reserved.
まとめ
Klocwork: 機能安全規格対応ソースコード解析ツール
• ISO 26262やIEC61508で要求されているソフトウェア静的検証が可能
• 26262や61508は特定バージョンでは認証取得済み。それ以外の環境では
利用者による認証を支援するQualification Deployment Packageを提供
• デスクトップ解析、Webレポーティング機能により、機能安全への取り
組みを開発プロセスに自然な形で統合することが可能
21.
212002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 212002-2014 Rogue Wave Software, Inc. All Rights Reserved.
無料トライアルのご紹介
• 対象
– 導入を検討されているお客様
• 概要
– 試用ライセンスを提供します。
– 御社の環境にKlocworkを導入にいただき、開発中のコードなどを解析いただき、解析結
果を確認いただけます。
– 導入から解析結果の見方までサポートいたします。
– 解析結果を用いて御社コードの品質状況を解析結果報告会としてご報告いたします。
• ステップ
– お申込み
– 環境の確認(言語、使用コンパイラ、OS、マシンスペック、導入規模など)
– 導入および解析の実行
– 解析結果のレビューおよび重要な指摘例のピックアップ
– 解析結果報告会
– 評価および導入に向けたご相談
22.
222002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 222002-2014 Rogue Wave Software, Inc. All Rights Reserved.
23.
232002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 232002-2014 Rogue Wave Software, Inc. All Rights Reserved.
ライセンス体系
および
無料トライアルのご紹介
24.
242002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 242002-2014 Rogue Wave Software, Inc. All Rights Reserved.
ライセンスの特徴
• 1年更新のサブスクリプション型
• ビルドサーバー数、開発者数に応じた課金 (最小構成:1ビルド+10ユーザ)
• Flexlmを使用したネットワークライセンス
• ライセンスの種類
– ビルドライセンス:
• 統合ビルド解析の実行やシステム管理コマンドの実行に使用される
• ホスト名によりライセンスをロックする
• リンガータイム: 2週間
– ユーザライセンス:
• 解析結果の閲覧やデスクトップ解析に使用される
• ユーザ名によりライセンスをロックする
• リンガータイム:7日間
• 詳細
– https://support.roguewave.com/documentation/klocwork/jp/10-
x/howlicensingworks/#concept674
25.
252002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 252002-2014 Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave Software
会社概要
26.
262002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 262002-2014 Rogue Wave Software, Inc. All Rights Reserved.
会社概要
• Rogue Wave Software(ローグウェーブ ソフトウェア)
設立:1989年
本社:米国 コロラド州 ルイビル
日本オフィス:東京都千代田区二番町5-5 番町フィフスビル3F
業務内容:ソフトウェア開発ツールおよび組み込みコンポーネント(ライブラリ)の開発および
販売
• Klocworkについて
– ノーテルネットワークスにおけるコード構造解析プロジェクトにより開発された
技術をベースとするKlocwork社の静的解析ツール。2014年1月よりRogue Wave
Softwareにより買収される。
– 10年以上の静的解析分野への技術革新への取り組み、 SD Times(米国のソフト
ウェア業界紙) Top 100 award を8年連続受賞
– 北米、ヨーロッパ、アジア各国(日本も含む)において、直接販売、および、
パートナー様と連携しビジネス展開
27.
272002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 272002-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ライブラリ
ソフトウェア開発ツールおよび組み込みコンポーネント(ライ
ブラリ)の開発および販売
28.
282002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 282002-2014 Rogue Wave Software, Inc. All Rights Reserved.
Financial Services Telecom Gov’t / Defense Technology Other Verticals
お客様
Rogue Wave のソリューションは世界57カ国
3,000社以上のお客様に利用されています
29.
292002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 292002-2014 Rogue Wave Software, Inc. All Rights Reserved.
顧客事例
30.
302002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 302002-2014 Rogue Wave Software, Inc. All Rights Reserved.
ジョンズ・ホプキンス大学
• 革新的な義肢装置のための組込みコンポーネントの開発
– 手足の動き及び感触を伝播するための複雑な組込みシステム
– タイトな開発スケジュール
– 品質向上が求められていた環境
900人時間
の削減
• Klocwork導入5ヶ月後の成果:
• 225件の不具合の発見 (83 件がクリティカルな不具合
)
• 配列オーバーラン、未初期化変数、NULLポインタ
の間接参照
• 誤検知率 < 1%
• 4人の開発者のチームで900人時間の削減
• 潜在的なセキュリティ脆弱性の発見にも寄与
31.
312002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 312002-2014 Rogue Wave Software, Inc. All Rights Reserved.
Laboratory for Atmospheric
and Space Physics (LASP)
• LASP (at the University of Colorado) :大気科学、宇宙物理学、太陽による
影響および惑星科学に関する研究機関
– 従来の取り組み
• 伝統的な“成功・失敗”型のテストのみに注力
• 動的テストでのみソフトウェア不具合を発見
• Klocworkの導入成果:
– (副次的な成果として)より良いテストケース作成とテストカバレッ
ジが実現されるようになった
– 配列オーバーラン(ABRs)とメモリーリークの発見
– テスト・デバッグ・再テストの繰り返しにかかる時間を削減
– 開発者の生産性の向上
32.
322002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 322002-2014 Rogue Wave Software, Inc. All Rights Reserved.
ローレンス・リバモア
国立研究所
• ミッション:世界最先端の科学技術開発により米国の安全保
障の強化に貢献する
• 適用プロジェクト
• C++による物理シミュレーションソフトウェア開発
• Klocworkの導入成果:
• 82件のバッファオーバーフローを含む約1,000件の不具合の指摘
• 顧客からのクレーム数の減少
• 不具合修正のためのリリースの減少
• 200,000USDのコスト削減
365000行のプロジェク
トに対して
$200,000
ドルのコスト削減:
33.
332002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 332002-2014 Rogue Wave Software, Inc. All Rights Reserved.
モトローラ社
• Integrated Digital Enhanced Network (iDenTM) プロジェクトにおいて製品の
強化と出荷後不具合数を削減する必要性があった
– プラットフォーム、行数、複雑度の増加
– 様々なプラットフォーム、言語の第3者コードの統合
– タイトな製品開発スケジュールによるプレッシャー
• Klocworkの導入成果:
• アルファ版・ベータ版における不具合数を
50%削減
• 出荷後の顧客からの不具合数を33%削減
• 新規コード不具合を17%削減
システムテストにおけ
る不具合数を50% 削減
34.
342002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 342002-2014 Rogue Wave Software, Inc. All Rights Reserved.
シラー社
• スイスの医療機器メーカー:心電計、血圧計、患者監視
装置、除細動器
– C言語による組込み機器、およびWindowsでC++,
Javaによるアプリケーション開発を実施
• Klocworkの導入成果:
– MISRAコンプライアンスの実現
– ソフトウェア品質の向上およびテストフェーズの
機関短縮
– メモリーリークその他の不具合の発見
35.
352002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 352002-2014 Rogue Wave Software, Inc. All Rights Reserved.
Spirent Communications社
• Spirent社のソフトウェアは世界最大のネットワーク・コミュニ
ケーションサービス・プロバイダーや装置メーカでパフォーマ
ンスの評価に使用されています
• 6拠点の開発チームで350万行以上の規模のソースコードを開発
• SDLCの早期段階でテスト前にバグを発見することを課題としていた
• Klocworkの導入成果:
• 市場出荷後に発見される不具合一件あたりの修正コストが最大962
ドルから96ドルに削減
• これまで見逃されていた不具合の発見が開発段階で可能に
の不具合一件あた
りの修正コスト削減
36.
362002-2014 Rogue WaveSoftware, Inc. All Rights Reserved. 362002-2014 Rogue Wave Software, Inc. All Rights Reserved.
OVERTURE社
• キャリア向けイーサネット機器の会社
– ゼロ・トレランスポリシーを実装
– CPP Checkを利用していたが発見されない不具合のパターンがあっ
た
– Klocworkの導入成果:
– POCプロジェクト
• 1000行あたり5件の不具合を指摘
• そのうち半数を数ヶ月以内に修正
– 市場で発生していた重大不具合の発見・修正に寄与
– 別のプロジェクト
• 3名の開発者
• 1000行あたり指摘数の推移 2.3件から0.14件まで削減
Editor's Notes
#8 Source code analysis reduces costs, saves time, improves quality and helps detect security flaws.
Klocwork has enabled numerous customers in this regard.
#9 Source code analysis reduces costs, saves time, improves quality and helps detect security flaws.
Klocwork has enabled numerous customers in this regard.
#29 Used by 3,000 customers in over 57 countries across diverse industries to develop mission-critical applications and software
At Rogue Wave, code matters.