真っ先に確認したいのが、誰からもCallされなくなった関数のチェックです。こういうのが残っていると、後から維持に携わる人も、うっかり触れなくなってしまい余分な手間が増えるだけです。
まあ、この手の機能は静的解析ツールなら大抵は持っていますが、Doxygenでやってみることにしました。(個人的に使ったことはなかったんですよね)
windowsのバイナリをDLするのが簡単そうなんですが、とりあえず慣れているLinuxでやってみます。(調べたら、macでもbrewコマンドでできそうです)
Ubuntuなら、apt-getで簡単にインストールできます。
$ sudo apt-get install doxygen doxygen-gui graphviz
doxygenが本体のパッケージ、doxygen-guiはGUIのユーザーインターフェース、graphvizはコーリングリストのツリーを図で生成するのに必要なパッケージになります。
インストールが終わったら、以下のコマンドで起動。
$ doxywizard
Step1の動作領域がよくわかりませんが、何らかの作業用ファイルを作るエリアなんでしょう。(注:これは設定ファイル:Doxyfileをここに置きます)Project nameとかは適当に入力して、解析したいプログラムのフォルダと、生成したドキュメントを格納するフォルダだけはきちんと入力します。
ここの設定で、コーリングリストを生成してくれます。(これが今回の目的)デフォルトはオフなので注意。
あとは、その他のオプションを設定して、runするだけです。
大層なGUIがついていますが、やってることはDoxyfileの設定をしているだけなので、必要な設定だけテキストエディタで手動でできるなら、そちらのほうが早いかも。以下に、設定ファイルで設定したほうがいい主な項目を挙げておきます。
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 -g
できたDoxyfileの上記項目を好みで設定して、
$ doxygen
と実行してやれば、解析結果が出力されます。