コード構造を視覚化せよ!!
Graphviz & Doxygen
http://skazami.web.infoseek.co.jp/tools/Graphviz_Doxygen.htm
コードの構造を視覚化するためのツールです。コード解析に有効かどうかはともかく、なかなか面白いツールです。
それぞれのツールのサイト(たぶん、公式サイト)はこちら。
Graphviz
Doxygen
どちらもオープンソースですので、開発に参加することもできるようです。Doxygenは寄付も受け付けているようです。
前置きはこのくらいにして、説明いきます。
インストール
自分のプラットフォームにあったパッケージをダウンロードします。Linux用、Windows用、Mac用などあります。
Graphvizは、上記サイト内にあるdownloadをクリックして、パッケージを持ってきます。
Doxygenも、上記サイトの右のほうにあるBinariesをクリックして、パッケージを持ってきます。
インストールは必ずGraphviz→Doxygenの順番で行います。
以下の説明はWindows用についてのものです。
インストールはインストーラ(exeファイル)を起動してウィザードに従うだけなので、悩むこともないと思います。
- ステップバイステップインストール手順(Graphviz、Doxygen)
- インストール慣れしている方はスキップしてください。ほとんどデフォルトでのインストールですので。どちらかと言うと、自分用作業メモです。
使用法
- インストール時に入れておいた「doxygen example Project」を例にコードの構造を視覚化してみます
- 「スタート」→「プログラム」→「doxygen」→「Doxywizard」を起動します。このツールにより、設定ファイルの作成とDoxygenの実行をGUIから行うことができます。
- OUTPUT_LANGUAGEを「Japanese」にします
- Buildタブをクリックし、「EXTRACT_ALL」にチェックを入れます
- LaTeXタブをクリックし、「GENERATE_LATEX」のチェックを外します。もちろん、LaTeXの出力が必要ならチェックを入れておいてください
- Dotタブをクリックし、「HAVE_DOT」にチェックを入れます
- 「CALL_GRAPH」にもチェックを入れときます。関数の呼び出し状況を図にしてくれます。
- 「File」→「Save as...」で設定ファイルを保存しますが、保存先は「C:\Program Files\doxygen\examples」(デフォルト設定でインストールした場合)としてください。ファイル名は何でもいいですが、とりあえず「Doxyfile」とでもしておきましょう
- 「Doxygen」→「Run」で実行します。コンソールが出現し、処理が進みます
- 「C:\Program Files\doxygen\examples」にhtmlというフォルダが作成されます。そのフォルダの中のindex.htmlを開いてみます
どうでしょう、こんな画面になりましたか?
- 「ファイル一覧」→example_test.cppを開いてみてください。関数の呼び出しグラフが表示されましたか?グラフがクリッカブルマップになっていますか?
- 「ファイル一覧」→diagrams_a.hを開いてみてください。ファイルの依存関係のグラフが表示されましたか?グラフがクリッカブルマップになっていますか?
問題がなければ、基本的な使い方は以上です。あとはマニュアルを読みながら高度な使い方を模索してください。私自身、あまり高度な使い方はできていないので、面白い使い方があったら教えていただきたいです。
Doxygenのマニュアルを日本語化している方がいらっしゃるようです。
http://www.fides.dti.ne.jp/~oka-t/doxygen-manual/html/
Doxygenで変換した結果の例
私が変換してみたものを以下に置いておきます。同じような感じになっているかどうかを確認するために使ってみてください。
doxygen付属のexampleプロジェクト
デフォルト設定で作成直後のWin32アプリケーションプロジェクト(作成環境はVisual Studio .net 2003)
[余談]
doxygenのexampleプロジェクトの変換結果で、「関連ページ」→「バグ一覧」→「WindowsNT」は、あからさま過ぎるくらいあからさまで、まぁまぁ面白いです。これ以上のコメントは控えます。
[余談終]