67

基本的に、次のようなソース コードの視覚化を生成するツールが必要です。

  • 関数呼び出しグラフ
  • 依存関係グラフ
  • ...
4

7 に答える 7

57

グラフを描画するにはGraphVizをインストールする必要がありますが、Doxygenはこれに非常に優れています。

すべてをインストールしたら、グラフを描くのは本当に簡単です。EXTRACT_ALLCALL_GRAPHをtrueに設定していることを確認してください。これで、準備が整います。

doxygenのこの関数に関する完全なドキュメントはここにあります。

于 2008-08-27T12:40:43.777 に答える
13

BOUMLを強くお勧めします。これは無料の UML モデリング アプリケーションで、次の機能を備えています。

  • 非常に高速です (これまでに作成された最速の UML ツール、ベンチマークをチェックしてください)、
  • 堅実な C++ インポートのサポートがあり、
  • は優れた SVG エクスポート サポートを備えています。これは重要です。これは、Firefox などで高速にスケーリングされるベクトル形式で大きなグラフを表示するのが非常に便利であるためです (「鳥瞰図」ビューとクラス詳細ビューをすばやく切り替えることができます)。
  • はフル機能で、驚くほど集中的に開発されています (開発履歴を見てください。これほど急速な進歩が可能であるとは信じがたいことです)。

つまり、コードを BOUML にインポートしてそこで表示するか、SVG にエクスポートして Firefox で表示します。

無料版の場合:

于 2009-05-16T20:23:39.660 に答える
5

ソフトウェアの設計とモデリングのためのさまざまなツール(Rational RoseSparx Enterprise ArchitectUmbrelloなど)を見ることができます。それらの大部分には、ソースコードによるモデリングを逆にし、UMLクラス図、場合によってはシーケンス図を取得する機能がいくつかあります(これはグラフを呼び出す関数に非常に近いものです)。

しかし、非常に大きなプロジェクトコードベースでいくつかの写真を入手した後、そのようなグラフを読んだり理解したりするのはかなり難しいことに気付くでしょう。残念ながら、複雑さの視覚化機能は非常に限られています。

私の場合、「分割統治」イディオムを使用する方が便利なアプローチです。コードベースからさまざまな機能ブロックまたはレイヤーを抽出できます(cppファイルをさまざまなフォルダーで並べ替えるだけで十分な場合もあります)。もう1つの方法は、いくつかのスクリプト(bash、python)を使用して、ファイル、クラス、または「依存関係の数」などの関数の関心のあるパラメーターを含む単純なcsvテーブルを作成することです。

于 2009-05-16T20:14:42.940 に答える
4

Visual Studio を使用している場合、2010 Ultimate リリースでは、シーケンス図と依存関係グラフを生成できます。ただし、このリリースは現在、.NET アプリケーション プロジェクトのみをサポートしています。

チームは、将来のリリースで C++ をサポートすることに多くの関心を寄せているため、引き続きご期待ください。当面は、VS 2010 Architectural Discovery & Modeling Toolsフォーラム ( http://social.msdn.microsoft.com/Forums/en-US/vsarch/threads ) に投稿して更新をリクエストしてください。製品チームは、ツールに関する顧客からのフィードバックを聞くのが大好きです。

それまでの間、次のトピックで、.NET コードからのシーケンス図と依存関係図の作成について詳しく学ぶことができます。

方法: Architecture Explorer を使用してコードを検索する: http://msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx

方法: コードからグラフ ドキュメントを生成する: http://msdn.microsoft.com/en-us/library/dd409453%28VS.100%29.aspx#SeeSpecificSource

方法: シーケンス図を使用してコードを調べる: http://msdn.microsoft.com/en-us/library/ee317485%28VS.100%29.aspx

RC リリースを試してフィードバックを提供するには、http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=457bab91-5eb2-4b36-b0f4-d6f34683c62a からダウンロードしてください。

于 2010-02-19T00:12:51.050 に答える
4

doxygenを試す

Xercesからの出力例

于 2008-08-26T12:23:00.830 に答える
3

上記のツールに加えて、理解を試みることもできます。しかし、それは無料ではありません。

于 2010-04-02T12:03:21.803 に答える
1

重複している可能性がありますが、ollydbg、IDA Pro をチェックしてください。この Web サイトには、非常にセクシーな画像を含むリソースがたくさんあります。

于 2008-08-26T12:24:51.747 に答える