概要
大規模なプロジェクトになるとソースコードの全貌を視覚的に把握したくなることがあるかと思います。
そこでDoxygenというドキュメント生成ツールと、描画ツールであるGraphvizを用いてクラス図を作成する方法を紹介します。
環境
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.9.5
BuildVersion: 13F34
インストール
Homebrewから簡単にインストールできますが、各OSごとに用意されているインストーラを用いてもインストールできます。
$ brew install doxygen
$ brew install graphviz
インストーラはこちら。
Doxygen: http://www.stack.nl/~dimitri/doxygen/download.html
Graphviz: http://www.graphviz.org/Download.php
使い方
まず目的のソースコードのあるルートディレクトリに設定ファイルを出力します。
$ doxygen -g
Configuration file `Doxyfile' created.
Now edit the configuration file and enter
doxygen Doxyfile
to generate the documentation for your project
$ doxygen -g my_library
のようにして名前をつけることも可。
設定ファイル内には様々なオプションがありますが、変える必要のあるオプションはそれほど多くないと思います。デフォルトでOFFになっているもののONにした方がよいと考えられる主なオプションは以下の通りです。
option | default | description |
---|---|---|
PROJECT_NAME | "My Project" | クラス図を作成したいプロジェクトの名前 |
EXTRACT_PRIVATE | NO | privateなメンバ変数・メンバ関数も出力する |
EXTRACT_STATIC | NO | staticなメンバ変数・メンバ関数も出力する |
EXTRACT_ANON_NSPACES | NO | 匿名の名前空間についても出力する |
RECURSIVE | NO | ソースコードを再帰的に検索する |
HAVE_DOT | NO | YESに設定するとgraphvizなどの描画ツールを使用してクラス図を出力する |
DOT_NUM_THREAD | 0 | スレッド数 |
CALL_GRAPH | NO | 関数やメソッドを呼び出す側の依存関係を描画する |
CALLER_GRAPH | NO | 関数やメソッドを呼び出される側の依存関係を描画する |
オプションの設定後、
$ doxygen
と入力すると、設定ファイルのあるディレクトリにソースの解析結果の入ったhtmlというサブディレクトリが作成されます。html/index.htmlをブラウザにドラッグアンドドロップすると以下のように解析結果が表示されます。