SonarQube統合

CppDepend SonarQube プラグインで C/C++ コード分析を強化

C++ コード分析プロセスを強化するための CppDepend SonarQube プラグインの統合に関する包括的なガイドへようこそ。CppDepend SonarQube プラグインは、コード品質の継続的な検査に広く使用されているプラットフォームである SonarQube とのシームレスな統合を提供します。CppDepend の強力な機能を SonarQube ワークフローに組み込むことで、コードの保守性の向上、技術的負債の削減、コードベースへの貴重な洞察が得られます。CppDepend SonarQube プラグインを使用する利点と、開発プロセスに簡単に統合する方法の詳細については、続きをお読みください。

CppDepend は、PRQL と呼ばれる独自のコードクエリ言語を提供し、開発者、設計者、アーキテクトがコードベースをデータベースのように扱い、カスタムルールを作成できるようにします。

PRQL を使用すると、コードメトリクス、依存関係、API の使用状況、その他のモデル情報からのデータを統合して、高度に洗練されたルールを確立できます。

PRQL を通じて、CppDepend は SonarQube 向けのコード品質ルールを簡単にカスタマイズする機能を導入し、SonarQube との 2 つの連携方法を容易にします。

  • CppDepend と C++ SonarQube コミュニティ プラグイン: この推奨される統合により、CppDepend と SonarQube Community Plugin の両方の機能を活用できます。この統合のガイダンスについては、次を参照してください SonarQubeコミュニティ統合ドキュメント。
  • スタンドアロンモードのCppDependプラグイン: このオプションを使用すると、追加の C++ SonarQube プラグインをインストールする必要はありません。この統合の実装手順については、次を参照してください スタンドアロン SonarQube 統合のドキュメント。

CppDepend と SonarQube のルール セットは相互補完的です

CppDepend と SonarQube はどちらも、C/C++ コードの問題を検出するルールベースのシステムを提供する静的アナライザーです。ただし、CppDepend の既定のルールセットは 重複がほとんどない SonarQubeルールで

基本的に、SonarQube ルールはメソッド内部で何が起こっているか(コードフロー)の分析に優れています。一方、CppDepend ルールの基盤となる CppDepend コードモデルは、OOP、依存関係、メトリクス、破壊的変更、変更可能性、命名など、特定の大規模な領域の 360 度ビューに最適化されています。

具体的には、SonarQube ルールは、現在のスコープでは null になり得ないため null チェックが不要な参照などの問題について警告できます。 null、一方、CppDepend は複雑すぎるクラスやコンポーネントについて警告し、コードをよりクリーンで保守しやすくするためのリファクタリング方法についてアドバイスを提供できます。

CppDepend のルール システムをユニークにするもう 1 つの点は カスタムルールの記述がいかに簡単か。CppDepend では、ルールはコード品質専用のコードモデルをクエリする LINQ クエリであり、Visual Studio でライブ編集され、編集時にライブでコンパイルおよび実行されます。

具体的には、以下のコードは完全に機能するルールです。これ以上シンプルにできますか?

// <Name>Classes must start with an I</Name>
warnif count > 0
  アプリケーション.Types.Where(t => t.IsClass && !t.SimpleName.StartsWith("C"))

CppDepend でカスタムルールを定義する場合、ユーザーは Visual Studio プロジェクトを作成したり、ソースファイルを作成したり、編集/コンパイル/デバッグのサイクルに入ったり、共有、バージョン管理、統合に手間のかかるバイナリ DLL を維持したりする必要がありません。

CppDepend では、カスタムルールは生のテキストであり、XML CDATA として CppDepend プロジェクトファイルまたはルールファイルに埋め込まれます。また、ドキュメントと修正方法のガイドラインは、コメントとしてルールのソースコードに埋め込むことができます。

SonarQubeルールドキュメント

また、各 CppDepend ルールは、問題の理解と修正に役立つ追加データとともに問題を表示できます。

さらに、各ルールには次の両方を推定しようとする 2 つの C# 式を埋め込めます 問題の修正コスト問題を未修正のままにする年間コスト、とも呼ばれる 技術的負債年利 問題の。 これらの式は修正時に本当に重要な要素に基づいているため、負債の見積もりがスマートになります.

SonarQubeの技術的負債見積もり

最後に、CppDepend では、大規模なコードベースでも各ルールが数ミリ秒で実行されます。その結果、すべてのルールを数秒(実際のコードベースでは通常 2 ~ 3 秒)で通過させることができ、Visual Studio と継続的インテグレーションシステムの両方で可能です。

利点として、各コンパイル後およびチェックイン時に、開発者はベースライン以降の新規および修正された問題と、修正または作成された技術的負債の影響を即座に把握できます。

今すぐCppDependを試す

ドキュメントの全機能にアクセスできる14日間無料トライアル。クレジットカード不要。