コーディング規約チェック

MISRA、AUTOSAR、CERT、CWEなどのコーディング規格対応

静的解析ツールC/C++testは、コーディングルール4,500種類以上(フロー解析込み)を搭載

車載機器や産業機器、医療機器といったミッションクリティカル分野の組み込みソフトウェア開発では、MISRAなどのコーディング規約の遵守が求められています。また、さまざまな機器がIoT化する流れの中で、サイバーセキュリティを確保するためのコーディング規約として、CERTへの対応なども求められつつあります。

C/C++testは、こうした業界の変化に対応する形で、MISRA C/C++、AUTOSAR C++14コーディングガイドライン、CERT C/C++コーディングスタンダード、CWE Top 25など、さまざまな規約に対応をしています。
※コンプライアンス関連機能の使用には専用のライセンス(有償)が必要です。

静的解析のルール数は、4,000ルール以上(フロー解析込み)を搭載しています。バグの作り込みを抑制し、ソースコードの可読性と保守性、拡張性に優れた高品質で寿命の長いソースコードの実装を支援します。

また、社内やプロジェクトのコーディング規約にあわせて、独自のコーディングルールを修正したり、新規にルールセットを作成したりできます。 ルールの作成/編集には、専用ツールの「RuleWizard」が搭載されており、 グラフィカルにコーディングルールを作成することが可能です。 

MISRA、AUTOSAR、CERT、CWEなどのコーディング規格に対応した静的解析ツール「C/C++test」

C/C++testはさまざまなコーディング規約に対応

コーティングルールの抜粋

  • AUTOSAR C++14に関するルール
  • コーディング規約に関するルール
  • コードの重複に関するルール
  • CERT Cに関するルール
  • CERT C++に関するルール
  • コメントに関するルール
  • CWE(Common Weakness Enumeration)に関するルール
  • 例外に関するルール
  • 書式に関するルール
  • High Integrity C++に関するルール
  • 初期化に関するルール
  • Joint Strike Fighterに関するルール
  • メトリクスに関するルール
  • MISRA C:1998に関するルール
  • MISRA C:2004に関するルール
  • MISRA C++:2008に関するルール
  • MISRA C:2012に関するルール
  • MISRA C++:202x(※プレビュー版)に関するルール
  • メモリおよびリソース管理に関するルール
  • 名前付け規則に関するルール
  • オブジェクト指向に関するルール
  • 最適化に関するルール
  • OWASP Top 10に関するルール
  • バグの可能性に関するルール
  • 物理ファイル編成に関するルール
  • 移植性に関するルール
  • プリプロセッサに関するルール
  • Qt ベスト プラクティスに関するルール
  • セキュリティに関するルール
  • STL ベスト プラクティスに関するルール
  • テンプレートに関するルール
  • IPA/SEC「コーディング作法ガイド」に関するルール

多彩な静的解析用テストコンフィギュレーションを搭載

C/C++testは、業界団体の推奨や機能安全規格などのコーディング標準に適合したルールを集めたテストコンフィギュレーションを多数搭載しています。

  • Recommended Rules
    (重要度1と2のルールの大半をカバーするParasoft推奨ルールのデフォルト コンフィギュレーション)
  • Flow Analysis Aggressive
    (フロー解析による静的解析)
  • Effective C++
    (Scott Meyers氏のEffctive C++に基づいたルールによる静的解析)
  • Effective STL
    (Scott Meyers氏のEffctive STLに基づいたルールによる静的解析)
  • Modern C++ (11, 14 and 17)
    (modern C++ 言語規格 (C++11, C++14, C++17) のベストプラクティスを推進するルールによる静的解析)
  • Find Duplicated Code
    (重複コードを検出するルールによる静的解析)
  • Metrics
    (メトリクスを計測するルールによる静的解析)
  • Global Analysis
    (グローバル静的解析ルールによる静的解析)
  • Sutter-Alexandrescu
    (Herb Sutter氏とAndrei Alexandrescu氏によるC++ Coding Standardsに基づいたルールによる静的解析)
  • The Power of Ten
    (Gerard J. Holzmann の記事「The Power of Ten - Rules for Developing Safety Critical Code」 に基づいたルールによる静的解析)
  • Joint Strike Fighter
    (Joint Strike Fighter (JSF) プログラム コーディング規約を推進するルールによる静的解析)
  • AUTOSAR C++14 Coding Guidelines
    (AUTOSAR C++ Coding Guidelines (Adaptive Platform, version 19.03) を推進するルールによる静的解析)
  • High Integrity C++
    (High Integrity C++ Coding Standard を推進するルールによる静的解析)
  • HIS Source Code Metrics
    (Herstellerinitiative Software (HIS)において定められたメトリクスをチェックするためのルールによる静的解析)
  • MISRA C:1998
    (MISRA C コーディング規約を推進するルールによる静的解析)
  • MISRA C:2004
    (MISRA C:2004 コーディング規約を推進するルールによる静的解析)
  • MISRA C++:2008
    (MISRA C++:2008 コーディング規約を推進するルールによる静的解析)
  • MISRA C:2012
    (MISRA C:2012 コーディング規約を推進するルールによる静的解析)
  • MISRA C++:202x(※プレビュー版)
    (プレビュー版のMISRA C++:202x コーディング規約を推進する一部のルールによる静的解析)
  • Recommended Rules for FDA (C)
    (「FDA General Principles for Software Validation」に準拠するために推奨されるルールによる静的解析)
  • Recommended Rules for FDA (C++)
    (「FDA General Principles for Software Validation」に準拠するために推奨されるルールによる静的解析)
  • CWE Top 25 2019
    (CWE のセキュリティ上最も危険なソフトウェアのバグ 25 に基づくルールによる静的解析)
  • CWE Top 25 2019 + On the Cusp
    (CWE のセキュリティ上最も危険なソフトウェアのバグ 25 およびCWE Weaknesses On the Cuspリストに含まれる問題をチェックするルールによる静的解析)
  • OWASP Top 10 2017
    (OWASP Top 10 Security Vulnerabilitiesにあるセキュリティの問題をチェックするルールによる静的解析)
  • Payment Card Industry Data Security Standard
    (Payment Card Industry Data Security Standard (PCI DSS)のセクション 6 にあるセキュリティの問題をチェックするルールによる静的解析)
  • Security Rules
    (セキュリティの脆弱性を防止または特定するルールによる静的解析)
  • SEI CERT C Coding Guidelines
    (SEI CERT C コーディング スタンダードのルールとリコメンデーションをチェックするルールによる静的解析)
  • SEI CERT C Rules
    (SEI CERT C コーディング スタンダードのルールをチェックするルールによる静的解析)
  • SEI CERT C++ Rules
    (SEI CERT C++ コーディング スタンダードのルールをチェックするルールによる静的解析)
  • UL 2900
    (UL-2900 standardで挙げられている問題を発見するルールによる静的解析)

修正に役立つ情報をレポート

違反したルールやそのファイル名など修正に役立つ情報がレポートされます。また、ルールの詳しい解説やサンプルコード、その修正方法なども参照できます。 [エディター]ビューでは、ルール違反の行に違反マークが表示されるので、ソースコードを見ながらルール違反を確認・修正することが可能です。

適用するルールの設定も自在

ソースコードに適用するルールは、5段階の重要度レベル、ルールカテゴリ、各ルールごとに使用/不使用を設定することができます。 また、ユーザ独自の適用ルールグループを作成したり、ユーザ独自のルールを作成することも可能です。

ユーザ定義ルールの作成やルールの修正が可能

C/C++testには、ルール生成ツール「RuleWizard」が搭載されています。 「RuleWizard」では、ルールのパターンがフローチャートのように表示され、ルールエレメントを追加/連結したり、パラメータを設定したりするだけで、新しいルールの作成やルールの修正が行えます。 また、ルール違反のサンプルコードを入力すると自動でルールを生成することが可能なので、簡単にルールを作成することができます。

静的解析ツール・単体テストツール C/C++testに
関するお問い合わせ

  • テクマトリックス株式会社
    東京本社

    ソフトウェアエンジニアリング事業部

    03-4405-7853

メールでのお問い合わせ
parasoft-info@techmatrix.co.jp

お問い合わせ

製品についてやテクマトリックスについてなど、
こちらよりお気軽にお問い合わせいただけます。