我正在做一个项目,该项目需要我找到 Apache ant 的圈复杂度(版本 1.1 到 1.6)。我被要求为此目的使用 jar 文件。我使用了几个工具(Xdepend 试用版和 Cyvis)来查看结果。然后我尝试使用 Ant Ver1.6 源代码的结果来验证结果。为了分析源代码,我使用了 Netbeans 插件,并且还手动找到了一些方法的 CC。
我发现在许多情况下,jar 文件中的 CC 几乎相同,但在某些情况下存在很大差异。我检查了一种这样的方法,发现它包含很少的 try 和 catch 块。我的问题是:
- java编译器是否进行了可能主要影响CC值的优化(比如循环展开)?是否建议使用 jar 文件进行此类分析?
- try 和 catch 块是否存在一些特定问题,在这种情况下我可以考虑其他分析方法?
- 有没有更好(更准确)的工具来进行这种分析?
请分享您在此主题上的经验。提前致谢。
干杯