これらのいずれかを実行できるコード分析または「リバースエンジニアリング」ツールはありますか?:
- どのクラスがどのクラスのサブクラスであるかを計算する
- どのクラスがどのクラスをインスタンス化するかを計算します - ( VS Class Designerのように)
- どの関数がどの関数を呼び出すかを計算します - ( Call Stackのように)
これらのいずれかを実行できるコード分析または「リバースエンジニアリング」ツールはありますか?:
どの関数がどの関数を呼び出すかを計算する
NDepend は、たとえば以下のスクリーンショットのようないくつかの便利なメソッドまたはクラスコール グラフを生成できます (画像のフル サイズはこちら)免責事項: 私はツールの開発者の 1 人です。
NDepend を使用してコール グラフを生成する方法の詳細については、こちらを参照してください。
どのクラスがどのクラスのサブクラスであるかを計算する
同じように、NDepend はクラス継承グラフを生成できます (クラス継承グラフを生成する説明はこちら)。
どのクラスがどのクラスをインスタンス化するかを計算する
NDependを使用すると、LINQ クエリ( CQLinqと呼ぶもの) を介してコード クエリを記述できます。CQLinq を使用すると、特定のクラスを作成するメソッドまたはクラスを要求できます。次に例を示します。
from m in Methods
where m.CreateA("NUnit.Core.NUnitConfiguration")
select m
このような CQLinq クエリの結果をグラフ ビューにエクスポートして、依存関係を視覚的に表現できます。
補足として、CQLinq を使用すると、コード ルールを記述することもできます。デフォルトで200 を超えるコード ルールが提案されています。これらには、設計、アーキテクチャ、コード品質、コード進化、命名規則、デッド コード、.NET Fx の使用に関するルールが含まれます。
CQLinq ルールは、Visual Studioでライブで検証することも、ビルド プロセス中に検証して HTML/javascript レポートでレポートすることもできます。
Doxygen + GraphViz (写真の場合、doxygen には GraphViz が必要です)
これには最大の言語サポートがあり (言語を指定しなかったため)、ビューアーはブラウザーであるため、生成されると誰でも表示できるはずです。
文書化されていないメンバーでも生成し、ソース コードを含めるように doxygen を構成します。この方法では、ソース コードに関数宣言へのリンクが含まれ、ナビゲーションが簡単になります。
また、 Understand for C++など、言語に特化したツールもあります。