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

MISRA C/C++、CERT C/C++コーディングスタンダードなどの規格対応

静的解析のコーディングルール3,790種類(フロー解析込み)を搭載

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

C++testは、こうした業界の変化に対応する形で、MISRA C/C++、CERT C/C++コーディングスタンダード、AUTOSAR C++14コーディングガイドラインなど、さまざまな規約に対応をしています。静的解析のルール数は、3,790ルール(フロー解析込み)を搭載しています。バグの作り込みを抑制し、ソースコードの可読性と保守性、拡張性に優れた高品質で寿命の長いソースコードの実装を支援します。
※コンプライアンス関連機能の使用には専用のライセンス(有償)が必要です。

MISRA C:2012、CERT C/C++コーディングスタンダードなどの規格対応:C++test


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

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

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

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

多彩な静的解析用テストコンフィグレーションを搭載 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 17-10) を推進するルールによる静的解析)
  • 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 コーディング規約を推進するルールによる静的解析)
  • Recommended Rules for FDA (C)
    (「FDA General Principles for Software Validation」に準拠するために推奨されるルールによる静的解析)
  • Recommended Rules for FDA (C++)
    (「FDA General Principles for Software Validation」に準拠するために推奨されるルールによる静的解析)
  • CWE-SANS Top 25 Most Dangerous Programming Errors
    (CWE SANSのセキュリティ上最も危険なソフトウェアのバグ 25 に基づくルールによる静的解析)
  • 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++testには、ルール生成ツール「RuleWizard」が搭載されています。 「RuleWizard」では、ルールのパターンがフローチャートのように表示され、ルールエレメントを追加/連結したり、パラメータを設定したりするだけで、新しいルールの作成やルールの修正が行えます。 また、ルール違反のサンプルコードを入力すると自動でルールを生成することが可能なので、簡単にルールを作成することができます。

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

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

    システムエンジニアリング事業部
    ソフトウェアエンジニアリング営業部

    03-4405-7853

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

CONTACT

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