大規模なソースや、複雑なソースを解析するときのこつを記述

  • 秀丸やjvimなどのアウトライン機能、折りたたみ機能を使う
    • viにはアウトライン機能はないらしい。
  • findコマンドを使う

画面のキーワードや、任意のファイルをincludeしているファイルなどを検索するにはfindが有効
$ find . -type f -exec grep -l 'hoge' {} \;
漢字を検索するなら
$ vi hoge.dat
ほげ
$ find . -type f -exec grep -l `cat hoge.dat` {} \;
正規表現でfindすると便利

  • grepコマンドのnオプション
~$ cat hoge.dat
aaa
bbb
ccc
ddd
eee
fff
ggg
hhh
iii

~$ grep -n ccc hoge.dat
3:ccc

※ マッチした行の行番号がわかる

プログラム解析を効率よく行うには、全体を把握することが重要。
そのためにUMLを利用することは有効。
シーケンス図、クラス図、コラボレーション図などが有効
UMLを勉強するなら以下のページがわかりやすい
- UML超入門
注意しないといけないのが、小規模なプログラムでUMLを利用しても逆に効率が悪いので、
ある程度の規模や複雑なプログラムを解析する場合のみUMLを利用したほうがよい。

  • 画面遷移図
  • まとめ資料を作成

キーポイントとなるような変数、関数、ロジックについての解説資料を作成。
又、疑問点や思いついたことをかきとめておくと、効率的にプログラム解析できる。

  • ジグゾーパズルのような感覚で、わかるところから解析

前述したように、プログラムを解析する上で重要なのが全体を把握すること。
わからないところはほっといて、わかるところをどんどん解析していったほうが効率がよい。

ちんぷんかんぷんな場合は、デバッグ文を入れてみて、通り道の把握や
実行SQL文の把握などを行う。

  • テーマを決めて読む
    • いろんな人がいっていますが、プログラムを読むときに、ここの動きはどうやってるんだろうみたいな、テーマを決めてからよむといいらしいです。