基本的に、次のようなソース コードの視覚化を生成するツールが必要です。
- 関数呼び出しグラフ
- 依存関係グラフ
- ...
グラフを描画するにはGraphVizをインストールする必要がありますが、Doxygenはこれに非常に優れています。
すべてをインストールしたら、グラフを描くのは本当に簡単です。EXTRACT_ALLとCALL_GRAPHをtrueに設定していることを確認してください。これで、準備が整います。
doxygenのこの関数に関する完全なドキュメントはここにあります。
BOUMLを強くお勧めします。これは無料の UML モデリング アプリケーションで、次の機能を備えています。
つまり、コードを BOUML にインポートしてそこで表示するか、SVG にエクスポートして Firefox で表示します。
無料版の場合:
ソフトウェアの設計とモデリングのためのさまざまなツール(Rational Rose、Sparx Enterprise Architect、Umbrelloなど)を見ることができます。それらの大部分には、ソースコードによるモデリングを逆にし、UMLクラス図、場合によってはシーケンス図を取得する機能がいくつかあります(これはグラフを呼び出す関数に非常に近いものです)。
しかし、非常に大きなプロジェクトコードベースでいくつかの写真を入手した後、そのようなグラフを読んだり理解したりするのはかなり難しいことに気付くでしょう。残念ながら、複雑さの視覚化機能は非常に限られています。
私の場合、「分割統治」イディオムを使用する方が便利なアプローチです。コードベースからさまざまな機能ブロックまたはレイヤーを抽出できます(cppファイルをさまざまなフォルダーで並べ替えるだけで十分な場合もあります)。もう1つの方法は、いくつかのスクリプト(bash、python)を使用して、ファイル、クラス、または「依存関係の数」などの関数の関心のあるパラメーターを含む単純なcsvテーブルを作成することです。
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 からダウンロードしてください。
上記のツールに加えて、理解を試みることもできます。しかし、それは無料ではありません。
重複している可能性がありますが、ollydbg、IDA Pro をチェックしてください。この Web サイトには、非常にセクシーな画像を含むリソースがたくさんあります。