Klocwork 2025.1 の新機能

2025 年 3 月発行

Klocwork 2025.1 の主な特長は、以下のとおりです。Klocwork をアップグレードする場合は、アップグレードと使用方法に影響を与える可能性がある項目を制限事項で参照してください。

Klocwork と Validate の機能強化

このリリースには、次の機能強化が含まれています。

Klocwork と SAML/OIDC 間でグループを自動的に同期する

Validate で SAML 認証および OIDC 認証のグループ同期がサポートされるようになり、ログイン時にユーザーグループメンバーシップをアイデンティティプロバイダー (IdP) から自動的に取得できるようになりました。

グループ同期は、オプトインであり、kw.groupDnAttribute パラメーターを auth.properties で指定して有効にすることができます。この機能がアクティブな場合は Validate 内での手動グループ割り当が無効になることに注意してください。

詳細については、「SAML または OpenID でのグループ同期」を参照してください。

孤立レコードと重複コメントをクリーンアップする

このリリース以降は、以下の機能強化を利用することができます。

  • RemoveSuppressedIssues ユーティリティを使用して、もはや存在しないが依然として操作中に参照される可能性のある指摘を削除します。詳細については、「抑制された指摘記録と孤立した指摘記録のクリーンアップ」を参照してください。
  • dbvalidate を実行して、プロジェクト内の重複コメントを削除する。クリーンアップユーティリティは、引用時刻によって決定される、コメントの最新バージョンのみをそのまま残します。手順については、「重複したコメントのクリーンアップ」を参照してください。

指摘の表示とコンプライアンスレポートに関する機能強化

新しい構成ファイルを使用すると、以下のように、指摘ビューとコンプライアンスレポートをカスタマイズすることでがきます。

  • プロジェクト、ビュー、ビルド、CI ビルドについて、Validate での Open の数を定義するステータスを調整します。
  • 指摘カテゴリを指定して、コンプライアンスレポートを微調整します。
  • ビュー名、検索クエリ、モジュール定義など、レポートの生成時に適用されるビューに関する追加データを表示します。

指摘ステータスとコンプライアンスレポートの構成の詳細については、「ステータス構成ファイルの編集」を参照してください。

ビルドのロード時間を最適化してディスク使用量を削減する

Validate サーバーでビルドのロード時間を最適化して、ディスク使用量を削減しました。中規模から大規模のプロジェクトのロードが最大 40% 高速化され、ディスク使用量が 10 ~ 20% 削減されます。小規模なプロジェクトでも、ロードが 10 ~ 30% 高速化され、ディスク使用量が若干削減されます。

保存メトリックを使用してビルドのロード時間とディスク容量を節約する

ビルドのロード時間とディスク容量を節約するため、SMC  ファイルを調整して、Validate で保存するメトリックを選択することができます。いくつかのデフォルトの SMC ファイルから選択するか、または独自の SMC ファイルを作成することができます。すべてのメトリックは解析中に作成されることに注意してください。詳細については、「Validate での保存メトリックの管理」を参照してください。

クラシックエンジンモードをデフォルトとしてエンコード互換性を維持する

エンコード方式が確実にサポートされるようにするため、kwbuildproject --encoding オプションを指定すると、モダンエンジンモードがデフォルトで無効になり、クラシックエンジンモードが使用されるようになります。

kwbuildproject --encoding オプションを使用した場合にモダンエンジンモードを強制的に実行するには、環境変数 KW_ENABLE_MODERN_ON_DIFFERENT_SOURCE_ENCODING=1 を使用してください。

kwgradle と kwgradlew を使用して Kotlin プロジェクトのキャプチャを簡素化する

kwktspec を使用して Kotlin 用の別のビルド仕様を作成する代わりに、kwgradle または kwgradlew を使用して Kotlin または Kotlin と Java の混合プロジェクトをキャプチャできるようになりました。

C および C++ の機能向上

このリリースでは、

  • kwbazel ユーティリティによって Linux での Bazel ビルドシステムの C および C++ のサポートが改善されました。
  • kwandroid ユーティリティによる Android 15 コードベースのサポートが改善されました。
  • Klocwork がサポートするチェッカーによって MISRA C 2012 (Amendment 2 まで) が完全にサポートされるようになりました。コミュニティチェッカーは必要ありません。

Java の機能強化

このリリースでは、Android 14 の Java 解析サポートが追加されました。

プラグインと拡張機能

このリリースでは、IntelliJ IDEA プラグインと Android Studio IDE プラグインによる Kotlin 解析のサポートが追加されました。

コーディング標準の対象範囲の拡大

このリリースには、次のコーディング規約に関する新しい拡張カバレッジが含まれています。

  • MISRA C 2012 (改訂 2)(100% カバレッジを含む)
  • C/C++、C#、および Java の CWE 2024 上位 25
  • C/C++、C#、ならびに Java バージョン 5 および 6 の DISA STIG

チェッカーの改善

新しいチェッカー

このリリースでは、以下のチェッカーが追加されました:

チェッカー 説明
MISRA.UNUSED.GLOBAL_TYPE この MISRA チェッカーは、MISRA C 2012 規則 2.3「プロジェクトには未使用の型宣言を含めない」および MISRA C 2012 規則 2.4「プロジェクトには未使用のタグ宣言を含めない」のサポートに対応しています
MISRA.OBJ.FUNC.PARAMS.IDENT この MISRA チェッカーは、MISRA 2012 規則 8.3「オブジェクトまたは関数のすべての宣言で同じ名前と型修飾子を使用する」のサポートに対応しています

変更されたチェッカー

チェッカー 説明
AUTOSAR.ADD.LOGIC.NOT_BOOL 誤検知の検出が少なくなる
AUTOSAR.ADD.OVERRIDE.VIRTUAL.SPECIFIER 誤検知の検出が少なくなる
AUTOSAR.ARRAY.CSTYLE 誤検知の検出が少なくなる
CL.FFM.ASSIGN チェッカーのサポートを改善
CL.FFM.COPY チェッカーのサポートを改善
CWARN.CONSTCOND.TERNARY 誤検知の検出が少なくなる
MISRA.FUNC.NOPROT.DEF チェッカーのサポートを改善
MISRA.LOGIC.NOT_BOOL 誤検知の検出が少なくなる
NUM.OVERFLOW.DF 欠陥検出を改善しました
UNINIT.CTOR.MUST 誤検知の検出が少なくなる

有効または無効なチェッカー

このリリースでチェッカー構成ファイルのデフォルトの enabled フィールドに追加されたチェッカーはありません。

分類基準の改善

インストールの一部として、Klocwork チェッカーを MISRA、CWE、OWASP、DISA STIG などのコーディング標準にマップするカスタム分類基準ファイルがいくつか提供されています。

分類基準 改善
cert_c_all.tconf および cert_c_all_ja.tconf

以下の規則でチェッカーマッピングを追加または修正しました。

  • WIN00-C
  • MSC01-C
cert_java.tconf および cert_java_ja.tconf

以下の規則でチェッカーマッピングを追加または修正しました。

  • ENV06-J
  • JNI00-J
  • MET01-J
  • MSC01-J
  • NUM10-J
  • NUM09-J
  • NUM07-J
  • OBJ11-J
  • SER05-J
  • THI03-J
  • THI01-J

cwe_2024_top_25_cxx.tconf および cwe_2024_top_25_cxx_ja.tconf

cwe_2024_top_25_cs.tconf および cwe_2024_top_25_cs_ja.tconf

cwe_2024_top_25_java.tconf および cwe_2024_top_25_java_ja.tconf

Klocwork チェッカーを 2024 年版 CWE 最も危険なソフトウェアの弱点上位 25 にマッピングする新しい分類基準が追加されました。

cwe_all_cs.tconf および cwe_all_cs_ja.tconf

以下の規則でチェッカーマッピングを追加または修正しました。

  • CWE-77
  • CWE-798

disa_stig_v5_cxx.tconf および disa_stig_v5_cxx_ja.tconf

disa_stig_v5_cs.tconf および disa_stig_v5_cs_ja.tconf

disa_stig_v5_java.tconf および disa_stig_v5_java_ja.tconf

DISA  STIG  バージョン 5 の分類基準を大幅に再編。

disa_stig_v6_cxx.tconf および disa_stig_v6_cxx_ja.tconf

disa_stig_v6_cs.tconf および disa_stig_v6_cs_ja.tconf

disa_stig_v6_java.tconf および disa_stig_v6_java_ja.tconf

DISA  STIG 分類基準をバージョン 6 に更新。

Helix QAC 分類基準

Helix QAC 分類基準を Helix QAC バージョン 2025.1 に更新。

misra_c_2023_c99.tconf および misra_c_2023_c99_ja.tconf

misra_c_2023_c90.tconf および misra_c_2023_c90_ja.tconf

misra_c_2023_c11.tconf および misra_c_2023_c11_ja.tconf

misra_c_2012_with_amd2_c99.tconf および misra_c_2012_with_amd2_c99_ja.tconf

misra_c_2012_with_amd2_c90.tconf および misra_c_2012_with_amd2_c90_ja.tconf

misra_c_2012_with_amd2_c11.tconf および misra_c_2012_with_amd2_c11_ja.tconf

以下の規則でチェッカーマッピングを追加または修正しました。

  • 規則 2.3
  • 規則 2.4
  • 規則 8.3

サポートされているコンパイラへの改善

次のコンパイラのサポートを追加または改善しました。

  • Clang

  • Clang-cl

  • Analog Devices SHARC

  • GNU

  • Microsoft Visual C++

サポートされる C/C++ コンパイラの全リストについては、「ビルド統合でサポートされる C/C++ コンパイラ」を参照してください。

ライセンス

2025.1 以降は、ライセンスに関する以下の変更が適用されます。

  • 管理タスクでビルドライセンスが消費されなくなりました。

  • ストリームのための別個のライセンスは必要ありません。

  • Reprise License Manager が 16.1.0BL1 にアップグレードされました。詳細については、『RLM マニュアル』、および『Reprise に関する Klocwork マニュアル』とそのサブセクションを参照してください。さらに、ライセンストークン名に年が含まれなくなりました。

  • ライセンス (ビルドライセンス、ユーザーライセンス、同時使用ライセンスを含む) の説明が更新されました。詳細については、「ライセンスの仕組み」を参照してください。

Klocwork は、Reprise License Manager (RLM) をサポートします。

2024 ライセンスは、Klocwork 2025.1 以降との互換性がありません。製品の最新バージョンを使用するには、Perforce (license@perforce.com) に連絡して新しいライセンスを取得してください。

詳細については、サポートされる RLM のバージョンおよび RLM ドングルをサポートするオペレーティングシステムを参照してください。

システム要件の変更

このリリースでは、次のサポートが追加されました:

  • AlmaLinux 9.5

  • Amazon Linux 2 (2.0.20250201.0 Update)

  • Android Studio Ladybug (2024.2.2 Patch 2 まで)

  • CLion 2024.2 (2024.2.4 まで)、2024.3 (2024.3.4 まで)

  • Debian 12.9

  • Eclipse 4.34 (2024-12)

  • Fedora 41

  • glibc 2.41

  • Google Chrome 123.x ~ 133.x

  • gradle、gradlew 8.13

  • IntelliJ IDEA 2024.2 (2024.2.5 まで)、2024.3 (2024.3.3 まで)

  • Microsoft Edge 123.x ~ 133.x

  • Mozilla Firefox 124.x ~ 136.x

  • Oracle Linux 9.5

  • Red Hat Enterprise Linux 9.5

  • RLM バージョン 15.1.1BL2

  • Rocky Linux 9.5

  • Ubuntu 24.04.2 LTS

  • Visual Studio 2017 (15.9.70 まで)、2019 (16.11.44 まで)、2022 (17.13.2 まで)

  • VS Code (1.97.2 まで)

このリリースでは、次のサポートを終了しました:

  • Fedora 39

  • glibc 2.15 ~ 2.26

  • Google Chrome 119.x ~ 122.x

  • Microsoft Edge 119.x ~ 122.x

  • Mozilla Firefox 120.x ~ 123.x

  • openSUSE Leap 15.5

  • VS Code 1.85.2 ~ 1.87.2

サポート対象のバージョンの完全なリストについては、「システム要件」を参照してください。

2025.4 での Visual Studio 2015 IDE プラグインのサポート終了のお知らせ

Microsoft による Visual Studio 2015 の延長サポート終了に伴い、Klocwork 2025.4 からは、Visual Studio 2015 用の IDE プラグインがサポートされなくなります。

2025.1 での kwmatch ユーティリティの廃止

kwmatch ユーティリティは、Klocwork 2025.1 で非推奨となり、将来のリリースで削除される予定です。以前のバージョンからアップグレードする場合は、プロジェクト分岐の管理にはストリームを使用し、指摘のプロジェクト間同期には kwxsync を使用することをお勧めします。

2025.1 でのストリーム用の別個ライセンスの廃止

Klocwork 2025.1 からは、ストリーム用の別個のライセンスが不要になりました。

Klocwork 2024.3 以降の NIS アクセス制御のサポート終了

Klocwork 2024.3 以降では、NIS アクセス制御のサポートが終了します。Klocwork 2024.2 では、一部の機能が影響を受ける可能性があります。

以前のバージョンから Klocwork 2024.2 に移行する場合は、別の認証方法に切り替える必要があります。アップグレード後も引き続きサインインできるように、移行前に認証方法を切り替えることをお勧めします。移行情報については、NIS アクセス制御のセットアップを参照してください。

Klocwork 2024.3 以降の CentOS Linux 7 のサポート終了のお知らせ

Klocwork 2024.3 以降では、以下のオペレーティングシステムとインストーラーはサポートされなくなります:

  • CentOS Linux 7

2024.2 での Jenkins プラグインの削除

Klocwork 2024.2 以降、Jenkins プラグインは Klocwork から削除され、インストールパッケージの提供は停止しました。

2024.2 での Validate コードレビューの削除

Klocwork 2024.2 以降、コードレビュー機能とそれに関連するコマンドラインツールは Validate から削除されました。