DoxygenとGraphvizでVBをごりごりする。
VBソースをvbfilterを通してDoxygenに掛けても、プロシージャ内部のコードは全部捨てられるので、自動的に関数呼び出しグラフを作ってくれたりということはできません。が、自力で必要な情報をコメントに書き記していく分にはそれなりに使えるかと思います。
どんな変数やプロシージャがあるかが見通しよくなりますし、関数呼び出しグラフのdotを自分で書くのもそう難しくはありません。自動生成と違って、プログラムを変更したら合わせて自分で書き換える必要はありますが。
呼び出しグラフのdot記述例
例えば、フォームfrmFのプロシージャprocXから標準モジュールmdlMの関数fncYをコールしていることを表すdotは次のように書きます。コメントの書式はpython版vbfilterのものです。
'* 関数の呼び出しグラフ:
'* @dot
'* digraph caller {
'* bgcolor="transparent";
'* graph [rankdir=LR];
'* edge [dir=forward,fontname="FreeSans.ttf",fontsize=10,labelfontname="FreeSans.ttf",labelfontsize=10];
'* node [fontname="FreeSans.ttf",fontsize=10,shape="box",height=0.2,width=0.4,color="black"];
'* procX [label="frmF::procX",fillcolor="grey75",style="filled" fontcolor="black"];
'* fncY [label="mdlM::fncY",URL="\ref mdlM::fncY"];
'* edge [color="midnightblue",style="solid"];
'* procX -> fncY;
'* }
'* @enddot
右へはみ出てますので、メモ帳などへコピー&ペーストしてご覧ください。
エッジやノードの属性はDoxygenのgraph_legend.dotの設定に合わせてます。複数の関数を呼び出している場合は、fncYのノードと同様の書式で書き連ねます。
(2008/7/30追記) フォントの指定を、 "FreeSans.ttf" の代わりに "MS Gothic"、"Arial Unicode MS" などの日本語の使えるフォントにすれば、日本語も使えます。ただし、フォント名にハイフンや全角文字などを含んでいるものは使えないようです。
注意する点は、
- ノード名には":"を含むことが出来ない
- URL属性の引用符の中では、コマンドは"@"ではなく"\"でないと認識されない
dotで画面遷移図(っぽいもの)を描く
- すべてのフォームに対するノードを記述し、
- プロジェクト全体からフォームのShowメソッドをコールしている部分を全部検索して、
- Showメソッドをコールしているプロシージャが属するフォームから、コールされたShowメソッドが属するフォームへエッジを繋いでいくと、
画面遷移図っぽいものができあがります。
次の図は実際に作ってみたものです。
四角いノードはフォームで、楕円のノードはフォームのShowをコールしている標準モジュール内のプロシージャです。
こうやって図にしてみれば、他人の作ったプログラムも構造が分かりやすくなります。
| 固定リンク
|
「Doxygen」カテゴリの記事
- Doxygen 1.6.2 がリリースされました(2010.01.05)
- Doxygen 1.6.1 がリリースされました(2009.08.27)
- Doxygen 1.6.0 がリリースされました(2009.08.21)
- DOXYFILE_ENCODING について実験してみた(2009.06.10)
- Windows のシフトJISは Shift_JIS ではない(2009.06.01)
「Graphviz」カテゴリの記事
- Graphvizのレイアウトについて(2009.04.10)
- DoxygenとGraphvizでの日本語の使用について(2008.03.07)
- DoxygenとGraphvizでVBをごりごりする。(2008.04.17)
- Graphviz覚え書き(2008.06.12)
- Graphvizの形状一覧について(2008.06.20)











コメント