普段やってるのは、クラス毎にメンバーをリストアップすることです。
要はどんなキャラがあって、どんな状態で、どう振舞うか把握することです。
コードを利用するのであれば、パブリックしか見ません。
コードを改造するのであれば、プライベートまで見ます。
依存関係が酷い場合にだけ依存グラフを作ります。
オブジェクト指向の効果の一つは、全体を把握しなくても済むことである思います。
以上の解析で分からないコードはオブジェクト指向になってないと思います。
実際、JavaもC++もオブジェクト指向でないコードを書けるし、結構多いです。
個人としては、何指向でも構いません。色々混ざってる無指向が一番避けたいです。
コードさえ短ければ、指向に関係なくデバッガで追いかけたりします。
最終手段でもありますが、一部の機能しか使わなければ、この方もなかなか効率的です。
UMLの類も手詰まったら使いますが、コードの設計が汚ければ、図も汚いのがオチです。
オブジェクト指向に関しては、『作る人の見方』を見て初めて理解しました。
http://www.curiocube.com/mikata/oop/
「要するに、オブジェクトとは何か」でまとめてる特徴を満たすコードであれば、
全体を見通すような大掛かりな解析はいりません。
http://www.curiocube.com/mikata/oop/p2_ch16_whatsobject.php
ソースコードのみで、部分部分の理解さえできれば足りると思います。