怎么分析大型的开源项目

如何分析大型的开源项目
比如现在我拿到了一个颇大的开源项目,想深入地了解,分析各模块功能的作用与用法,那么如何才能高效的阅读这个项目呢,有没有一些成熟的分析方法,或者相关的经验。希望各位大虾帮忙求解

------解决方案--------------------
从看头文件开始吧,这些文件名都很规范的,至少能看出来这些文件是干什么用,定义了什么模块,头文件里各个类之间的关系能看出来各个模块之间是如何组合的,有的是继承关系,有的是公共接口,最后针对某个模块看cpp文件,就是具体实现。
------解决方案--------------------
你需要一些源码分析工具,帮你搞明白各函数调用、类的继承关系。
比如:Source Insight / Eclipse CDT /Scope等

如果有文档,会更好些。
不过,开源的东西,往往没有好的文档。
------解决方案--------------------
要想源码看得更清晰,关键还是编译成功,然后能跑起来。
通过修改里面的代码,通过运行时单步跟踪去看思路。

这个真的很重要。
好几个开源的源码,我都是这样干的。
效果比直接看源码要好的多。