Klocworkバージョン11.2アップデート
Rogue Wave
Klocwork 11.0/11.1/11.2
アップデート
Masaru Horioka
Senior Sales Engineer – APAC
Rogue Wave Software
はじめに
• Klocwork開発チームはアジャイル開発体制をとっており、1年に1回のメ
ジャーバージョンアップ、および3ヶ月ごとのマイナーバージョンアップ
ににより、新機能の追加、機能改善、バグフィクスを行っています。
• 新バージョンを利用するためには有効なサブスクリプション契約または保
守契約が必要です。
– メジャーバージョンアップの際にはライセンスファイルが変更されま
す。
– 永久ライセンスをお持ちのお客様で、有効な保守契約をお持ちで無い
場合、新バージョン用のライセンスは発行されませんのでご注意くだ
さい。
Updates in Klocwork 11.2
Klocwork 2016.2 (11.2) まとめ
CONFIDENTIAL
• 新しい C/C++ エンジン – コードベースにより 10 - 30%の誤検知削減
• セキュリティチェッカーおよび MISRA C 2012 チェッカーの追加、MISRA
チェッカーヘルプの復活
• その他のチェッカーに対する変更
• 新コンパイラのサポート
• 重要な変更および修正
新しい C/C++ 解析エンジン
CONFIDENTIAL
• 64-bit 整数の正確なサポート、より良い数値レンジのトラッキング
による精度改善
– 10-30% の誤検知削減。特に以下のチェッカーの改善に寄与:
• ABV.* (Buffer overrun)
• NPD.* (Null pointer dereference)
• UNREACH.* (Unreachable code)
• INVARIANT_CONDITION.*
新規 CWE チェッカー(CWE-822)
CONFIDENTIAL
• SV.TAINTED.CALL.DEREF
• SV.TAINTED.DEREF
汚染されたポインタに対する
間接参照による脆弱性の検出
新規 MISRA C 2012 チェッカー
CONFIDENTIAL
MISRA.ARRAY.VAR_LENGTH.2012 MISRA C 2012 規則 18.8 の実装:
可変長の配列型は使用しないでくだ
さい。
MISRA.IDENT.DISTINCT.C90.2012
MISRA.IDENT.DISTINCT.C99.2012
MISRA C 2012 規則 5.2 の実装:同
一のスコープと名前空間内で宣言さ
れた識別子は区別する必要がありま
す。
MISRA.LITERAL.NULL.PTR.CONS
T.2012
MISRA C 2012 規則 11.9 の実装:
マクロ NULL は、唯一許可された形
式の整数 Null ポインター定数です。
MISRA.MEMB.FLEX_ARRAY.2012 MISRA C 2012 規則 18.7 の実装:
フレキシブル配列メンバーは宣言し
ないでください。
MISRA.STDLIB.BSEARCH.2012 MISRA C 2012 規則 21.9 の実装:
<stdlib.h> のライブラリ関数
bsearch、qsort は使用しないでくだ
さい。
MISRA チェッカーヘルプ(権利の関係でインター
ネット上および日本語版はありません。)
CONFIDENTIAL
• Klocworkサーバーの以下のURLで参照可能
– MISRA C 2012
http://<your_kw_server>:<port>/documentation/help/concepts/misracc
heckerreference_2012.htm
– MISRA C++ 2008
http://<your_kw_server>:<port>/documentation/help/concepts/misracc
heckerreference.htm
– MISRA C 2004
http://<your_kw_server>:<port>/documentation/help/concepts/misracc
heckerreference1.htm
その他のチェッカーの変更
CONFIDENTIAL
• 以下のURLの[チェッカーの改善]を参照ください
– https://support.roguewave.com/documentation/klocwork/jp/11-
x/whatsnewmain/
• 以下のURLの[チェッカーの問題]を参照ください
– https://support.roguewave.com/documentation/klocwork/jp/11-
x/fixedissues11-2/
新規/改善されたコンパイラ対応
CONFIDENTIAL
• 新しくサポートされるコンパイラ
– Panasonic MN101E/MN101L
– Renesas RH850
• 改善/バグフィクスの対象となるコンパイラ
– ARM
– Green Hills GHS
その他の重要な変更・修正
CONFIDENTIAL
• PATH チェッカーAPI
– 一部のAPIに変更があります。PATHチェッカーAPIを用いてカスタムチェッカーを
作成しているお客様は以下のガイドを参考にカスタムチェッカーを変更する必要が
あります。
– https://support.roguewave.com/documentation/klocwork/en/11-
x/importantchangestothepathapiinversion112/
• C#チェッカーとCWE IDのマッピング表および分類基準が追加されました
– https://goo.gl/YsVp04
• kwmavenにおいて–s および –gs オプション指定が動作しない不具合が修正されました
• その他の新機能およびバグフィクスは以下をご覧ください。
– https://support.roguewave.com/documentation/klocwork/jp/11-x/whatsnewmain/
– https://support.roguewave.com/documentation/klocwork/jp/11-x/fixedissues11-2/
Updates in Klocwork
11.0/11.1
Klocwork 11.0および11.1 アップデート
• 継続的インテグレーションのための新しいKlocworkプラグイン
• ISO 26262/IEC 61508 ツール認証取得
• 新チェッカー、既存チェッカーの機能改善
• ユーザビリティーおよびスケーラビリティの改善
• 対応プラットフォームの拡充
• その他の改善
© 2015 Rogue Wave Software, Inc. All Rights Reserved. 14
継続的インテグレーション
のための
新しいKlocworkプラグイ
ン
静的解析を継続的インテグレーションで実
行する際の課題
• 大規模C/C++プロジェクトにおける解析パフォーマンス
– 対象ソフトウェアの例
• Android/ネットワーク機器等OSを含む組み込みプラットフォーム向
けソフトウェア、プリンタ、カーナビ
• 機能拡張が続くレガシーアプリケーション
• 現状の利用方法:全体フル解析の自動化がほとんど。(コミットのたびに解析
ではない)
• 1000万行以上のコード解析の実行には5−20時間かかる。開発者は解析結果
を得られるまで待つ必要があり、その結果不具合の発見から修正までの時間も
長くなる。
• 全体フル解析を毎回やっていると時間的だけでなく、システムリソース的にも
無駄が多い
© 2015 Rogue Wave Software, Inc. All Rights Reserved. 16
新しい継続的インテグレーション向け
Klocworkプラグイン
• ゴール
• 継続的インテグレーションにパフォーマンス最適化された静的解析の提供
• 提供される機能
– 対象言語:C++
– 高速な差分解析(小さな変更であれば数分から1時間)
– 新規不具合、修正された不具合のみ報告
– Jenkins, Team City向けプラグインの提供
– カスタム統合のためのコマンドラインインターフェースの提供
– 解析結果はJenkinsビルド上または、Klocworkデスクトップ上で表示
© 2015 Rogue Wave Software, Inc. All Rights Reserved. 17
新しいKlocworkプラグインを利用した継続的イ
ンテグレーション
変更のコ
ミット
SCM
コマンドライ
ン
Klocworkデスク
トップ
Jenkinsで結果表
示、選別が可能
独自ツール
差分解析の実行
差分解析結果の表示
Jenkins上での解析結果の表示
Jenkins job上からKlocworkポータルに
ログインすると、トレースバックメッ
セージの表示や指摘の選別が可能
Jenkins上での指摘の選別
JenkinsプラグインとKlocworkデスクトップの統合
指摘情報をJenkinsジョブページから、Klocworkデスクトップ上にダウンロードすることも可能
© 2014 Rogue Wave Software, Inc. All Rights Reserved 21
どのJenkins plug-inを利用したらよいのか?
用途に応じて選択
Pluginのタイプ いつ使用するべきか?
Klocwork Jenkins Plugin • 大規模C/C++ コード
• 継続的インテグレーション(小さな変
更の度にチェックイン+テスト)を1
日1回以上実施
• チェックイン毎に継続的インテグレー
ションを実施
• 差分解析結果が知りたい
Emenda Jenkins Plugin
その他のJenkinsプラグイン
マニュアル統合
• (C/C++に加えて)Java /C#を使用
• 静的解析の頻度は一日一回以下
• 全体的な解析結果、トレンドデータ、
レポートが欲しい
リソース
© 2014 Rogue Wave Software All Rights Reserved
• 継続的インテグレーションへの統合
https://support.roguewave.com/documentation/klocwork/ja/11-
x/continuousintegration/
ISO 26262/IEC 61508
Klocwork 2016でISO 26262/IEC 61508の
ツール認証を取得しました。
チェッカーの改善
新チェッカー
• セキュリティ
– SV.TAINTED.PATH_TRAVERSAL CWE-22:Pathトラバーサル
– RCA CWE-327:危険な暗号化アルゴリズムの使用
– HCC, HCC.PWD, HCC.USER, CWE-798: ハードコードされた認証情報の使用 (New
in 2016.1)
– RCA.HASH.SALT.EMPTY, CWE-759: Saltを指定しない一方向ハッシュの使用 (New
in 2016.1)
• MISRA (All new in 2016.1)
– MISRA.BITS.NOT_UNSIGNED.PREP (MISRA C++ 2008:5-0-21)
– MISRA.FILE_PTR.DEREF.2012, MISRA.FILE_PTR.DEREF.CAST.2012,
MISRA.FILE_PTR.DEREF.INDIRECT.2012,
MISRA.FILE_PTR.DEREF.RETURN.2012, MISRA C 2012:22.5
– MISRA.FUNC.UNUSEDRET.2012, MISRA C 2012:17.7
• 最新MISRA 2012 カバレッジ 80%
MISRA 2012のサポート、CWE Top 25のサポートを拡充
CONFIDENTIAL
新C/C++ チェッカ: SV.TAINTED.PATH_TRAVERSAL(CWE-22)
CONFIDENTIAL
• 問題 : 検証されてない入力データを用いてファイルパスを生成
• リスク: 任意のファイルへのアクセスによる情報漏えいやシステム破壊
• 修正: 入力値に対するチェックを行う
新C/C++ チェッカ: RCA(CWE-327)
CONFIDENTIAL
• 問題 : 強度に問題のある暗号化アルゴリズムの使用
• リスク:強度に問題のある暗号化アルゴリズムの使用がシステムやデータの
脆弱性に繋がる
• 修正: 安全な代替アルゴリズムを使用
新C/C++ チェッカ: RCA.HASH.SALT.EMPTY(CWE-
759)
CONFIDENTIAL
• 問題: ハッシュ関数に対するSaltが指定されていない
• リスク: Saltが指定されていないとハッシュ値の解読が容易になるため、脆
弱性につながる
• 修正: Saltを指定する
新C/C++チェッカ: HCC(CWE-798)
CONFIDENTIAL
ハードコード化され
たユーザID、パス
ワード
削除されたチェッカ
• MISRA.FOR.COUNTER.NO (MISRA-C++ 2008 rule 6-5-1)
• MISRA.FOR.INIT (MISRA-C:2004 rule 13.5)
• MISRA.ONEDEFRULE (MISRA C++ 2008 rule 3-2-2)
既に使用されていないが、使用を推奨しないチェッカを削除
CONFIDENTIAL
その他のチェッカの改善:
• 以下をご参照ください
– https://support.roguewave.com/documentation/klocwork/jp/11-
x/whatsnewmain/#Checkerimprovements
– https://support.roguewave.com/documentation/klocwork/jp/11-
x/fixedissues11-1/ - Checkerissues
– https://support.roguewave.com/documentation/klocwork/jp/11-
x/fixedissues11-0/
• Windows向けナレッジベースを拡充による、メモリーリーク、リソースリー
クのチェッカの未検知削減
• MISRA チェッカの精度改善
• ABV (配列オーバーラン)チェッカの精度改善
• C++クラス配列に対するNPDチェッカの誤検知削減
既存チェッカ
CONFIDENTIAL
その他の改善
CONFIDENTIAL
• McCabe Cyclomatic Complexity Metric がJava解析でも利用可能になりまし
た
• Android M, C++ 11 / C++ 14でパースエラーが発生する問題を修正しました
• 一部のC++ boost ライブラリ、 C#、Javaで発生していたパースエラーの問
題を修正しました。
• バージョン10.x から11.x へのプロジェクトのimport機能の問題を修正しま
した。
リマインダ - MISRA checkerのインストー
ル
CONFIDENTIAL
• kwdeployコマンドでMISRA checker zip パッケージをインストール
• プロジェクトの構成ページで使用する MISRA分類基準 (2004, 2008, 2012)
をインポート
• チェッカの有効・無効化
ユーザビリティおよびス
ケーラビリティの改善
ユーザビリティの改善
CONFIDENTIAL
• “Show inline code(インラインコードを表示)” をクリックすると、マク
ロや関数定義の冒頭部が画面遷移せずに表示されるようになりました。
スケーラビリティの改善
CONFIDENTIAL
• kwxsync
– kwxsync によるプロジェクト間のステータス同期のパ
フォーマンスが向上しました
– 異なるプロジェクト間の指摘の同期の精度が向上しました。
• その他の改善
– 特定の大規模C#コードの解析における問題を修正しました。
対応プラットフォーム
サポート対象プラットフォーム
• 特定のディストリビューションについてはサポート対象バージョ
ンを明記
– CentOS (5.1, 6.1, 7.1), Ubuntu (12.04, 14.04, 15.1)
• 書かれていないものについてはglibc 2.5以降のものをサポート
– Klocwork 2016以前はglibc 2.3以降
サポート対象Linuxについて
追加されたプラットフォーム
• Windows 10
• Mac OS X El Capitan (10.11)
サポート対象プラットフォーム
• Windows XP
• Windows Server 2003
• Red Hat Enterprise Linux 4.X
• SUSE Enterprise 10
• Mac OS X Mountain Lion (10.8)
• Any Linux with glibc 2.4 or lower
サポート対象外となったプラットフォーム
追加されたIDEサポート
• Android Studio 1.0, 1.4, 1.5, and 1.5.1
• 64bit Windows向けに特別なインストーラが追加された
– kw-insight-android-installer.windows.exe
• それ以外はIDEA plugin インストーラを使用
– kw-insight-idea-installer.linux.sh
• プラグインから解析できる言語はJava のみ
Android Studio
その他のIDEの改善
Visual Studio
• Clang サポート(for Android
development)
その他のIDEの改善
• C/C++ and C# 混在
プロジェクトのサ
ポート
Visual Studio
追加プラットフォームサポート
• コンパイラ
– Synopsis ARC MetaWare
– Target Chess 12R1
– Intel C++ 16.0
• IDE
– Eclipse 4.5
– Wind River Workbench 4.0
– IntelliJ IDEA 14.1.5, 15.0.5, and 2016.1
– QNX Momentics 6.3.2
• その他
– Gradle 2.7 - 2.9
– Jenkins 1.596 and 1.659
その他の重要な変更
その他の重要な変更
• オンラインマニュアル
– https://support.roguewave.com/documentation/klocwork/jp/11-x/
• Klocwork 2016.x (Version 11.x) は専用のライセンスが必要です。有効なサポートまたはサ
ブスクリプション契約をお持ちの方は無料でバージョンアップの入手が可能です。まだ入
手されていない場合は、代理店まはた以下のメールアドレスにご連絡ください。
license@roguewave.com
• 新しいKlocworkの継続的インテグレーション機能を使うには別ライセンスが必要です。
価格またはお試しになりたい方は代理店までお問い合わせください。
• マイグレーションについて
– "Import" 機能を用いるとプロジェクト単位での以降が可能です
– プロジェクトルート全体のマイグレーションには複雑なステップが必要な場合があ
りますのでマニュアルをご参照ください。
– https://support.roguewave.com/documentation/klocwork/jp/11-
x/upgradingfromapreviousversion/
Klocworkバージョン11.2アップデート

More Related Content

PPTX
Klocwork 2017.0アップデート
PPTX
Klocwork 2017.1アップデート
PPTX
静的解析Klocwork とJenkins CIの連携
PPTX
静的解析ツールKlocwork によるCERT-C/CWE対応
PPTX
Klocwork カスタムチェッカー紹介
PPTX
静的解析ツール Klocworkによる 機能安全規格への対応
PPTX
Klocwork C/C++解析チューニング 概要
PPTX
Klocworkのご紹介
Klocwork 2017.0アップデート
Klocwork 2017.1アップデート
静的解析Klocwork とJenkins CIの連携
静的解析ツールKlocwork によるCERT-C/CWE対応
Klocwork カスタムチェッカー紹介
静的解析ツール Klocworkによる 機能安全規格への対応
Klocwork C/C++解析チューニング 概要
Klocworkのご紹介

What's hot (20)

PDF
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
PPTX
Klocwork 2018.0 アップデート
PPTX
静的解析のROI
PDF
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
PDF
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
PDF
「DevSecOpsとは?」の一歩先 (CloudNative Days Tokyo 2021)
PDF
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
PDF
Cndt2021 casareal
PDF
VMの歩む道。 Dalvik、ART、そしてJava VM
PPTX
継続的E2Eテスト
PDF
開発とテストが一体となったソフトウェア開発
PPTX
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
PPTX
WebサービスのソフトウェアQAと自動テスト戦略
PPTX
事例からわかる!テスト自動化導入パターン
PDF
Jjug ccc 2016_fall_blue_green_deployment
PPTX
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
PDF
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
PDF
マイクロサービスにおけるテスト自動化 with Karate
PDF
Agile pm10 quality_2a
PPTX
日本で DevOps を ロケットスタートする方法
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
Klocwork 2018.0 アップデート
静的解析のROI
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
「DevSecOpsとは?」の一歩先 (CloudNative Days Tokyo 2021)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
Cndt2021 casareal
VMの歩む道。 Dalvik、ART、そしてJava VM
継続的E2Eテスト
開発とテストが一体となったソフトウェア開発
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
WebサービスのソフトウェアQAと自動テスト戦略
事例からわかる!テスト自動化導入パターン
Jjug ccc 2016_fall_blue_green_deployment
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
マイクロサービスにおけるテスト自動化 with Karate
Agile pm10 quality_2a
日本で DevOps を ロケットスタートする方法
Ad

Similar to Klocworkバージョン11.2アップデート (20)

PDF
Oracle Database: リリースモデルとアップグレード・パッチ計画 (2021年2月版)
PDF
Microsoft MVP から見たクラウド サービスの現状と今後について
 
PDF
Autonomous を支える技術、Oracle Database 18c デモンストレーション
PDF
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
PPTX
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
PDF
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
PDF
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
PDF
NGINX Instance Manager Tames the Sprawl (Japanese version)
PDF
IBM SPSS Modeler V18.1新機能ガイド
PPTX
[db tech showcase Tokyo 2017] B22: DevOpsにおけるDelphix(デルフィックス)by Delphix Softw...
PPTX
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
PDF
Tech Dojo 02/09 IBM Japan CSM
PDF
D1-2-OS2_オンプレミスのVMワークロードをGCPへ移行する
PDF
高速レポート アプリケーション開発
PDF
DevOps with Dynatrace
PDF
HBase Meetup Tokyo Summer 2015 #hbasejp
PDF
【Interop Tokyo 2016】 リコーのサービス基盤を支えるジュニパー
PDF
The road of Apache CloudStack Contributor (Translation and Patch)
PPTX
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
PDF
最新情報でわかる Windows 10 の導入と展開 (2017/9/19 開催分)
Oracle Database: リリースモデルとアップグレード・パッチ計画 (2021年2月版)
Microsoft MVP から見たクラウド サービスの現状と今後について
 
Autonomous を支える技術、Oracle Database 18c デモンストレーション
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
NGINX Instance Manager Tames the Sprawl (Japanese version)
IBM SPSS Modeler V18.1新機能ガイド
[db tech showcase Tokyo 2017] B22: DevOpsにおけるDelphix(デルフィックス)by Delphix Softw...
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
Tech Dojo 02/09 IBM Japan CSM
D1-2-OS2_オンプレミスのVMワークロードをGCPへ移行する
高速レポート アプリケーション開発
DevOps with Dynatrace
HBase Meetup Tokyo Summer 2015 #hbasejp
【Interop Tokyo 2016】 リコーのサービス基盤を支えるジュニパー
The road of Apache CloudStack Contributor (Translation and Patch)
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
最新情報でわかる Windows 10 の導入と展開 (2017/9/19 開催分)
Ad

Klocworkバージョン11.2アップデート

Editor's Notes

  • #2: Rogue Wave boilerplate: Rogue Wave provides software development tools for mission-critical applications. Our trusted solutions address the growing complexity of building great software and accelerates the value gained from code across the enterprise. Rogue Wave’s portfolio of complementary, cross-platform tools helps developers quickly build applications for strategic software initiatives. With Rogue Wave, customers improve software quality and ensure code integrity, while shortening development cycle times. Elevator pitch: Rogue Wave helps organizations simplify complex software development, improve code quality, and shorten cycle times
  • #41: Honeywell
  • #42: Honeywell
  • #43: Honeywell
  • #46: Honeywell
  • #49: Rogue Wave boilerplate: Rogue Wave provides software development tools for mission-critical applications. Our trusted solutions address the growing complexity of building great software and accelerates the value gained from code across the enterprise. Rogue Wave’s portfolio of complementary, cross-platform tools helps developers quickly build applications for strategic software initiatives. With Rogue Wave, customers improve software quality and ensure code integrity, while shortening development cycle times. Elevator pitch: Rogue Wave helps organizations simplify complex software development, improve code quality, and shorten cycle times