« 第20回CGアニメコンテスト入選作品上映会 | トップページ | 難読汁物: KIRIN NUDA »

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で画面遷移図(っぽいもの)を描く

  1. すべてのフォームに対するノードを記述し、
  2. プロジェクト全体からフォームのShowメソッドをコールしている部分を全部検索して、
  3. Showメソッドをコールしているプロシージャが属するフォームから、コールされたShowメソッドが属するフォームへエッジを繋いでいくと、

画面遷移図っぽいものができあがります。

次の図は実際に作ってみたものです。

Screen_transition 四角いノードはフォームで、楕円のノードはフォームのShowをコールしている標準モジュール内のプロシージャです。

こうやって図にしてみれば、他人の作ったプログラムも構造が分かりやすくなります。

|
|

« 第20回CGアニメコンテスト入選作品上映会 | トップページ | 難読汁物: KIRIN NUDA »

Doxygen」カテゴリの記事

Graphviz」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/46131/40908915

この記事へのトラックバック一覧です: DoxygenとGraphvizでVBをごりごりする。:

« 第20回CGアニメコンテスト入選作品上映会 | トップページ | 難読汁物: KIRIN NUDA »