【发布时间】:2011-09-19 16:48:48
【问题描述】:
我希望展示代码库的可视化,它可以显示过于复杂和相互交织的区域。
我知道 clang 是什么,但我不确定在这种情况下它是否能满足我的需求。
【问题讨论】:
标签: objective-c clang cyclomatic-complexity
我希望展示代码库的可视化,它可以显示过于复杂和相互交织的区域。
我知道 clang 是什么,但我不确定在这种情况下它是否能满足我的需求。
【问题讨论】:
标签: objective-c clang cyclomatic-complexity
AnalysisTool:我知道它是一个 clang 包装器,但它也提供了依赖关系图。
AnalysisTool 最初的创建有两个主要目的:提供易于使用的 Clang 静态分析器可执行二进制文件,以及通过提供一些额外的检查来自定义 Clang。当 Clang 静态分析器处于早期阶段时,开发人员尝试它的唯一选择是检查 LLVM 和 Clang 的最新源代码,编译它,然后从命令行使用分析器。 AnalysisTool 提供了一个易于使用的 GUI 界面,并且无需触摸 Clang 源代码。它还提供自动更新,让AT的用户可以随时使用最新的Clang静态分析器。
此工具将计算 C/C++/Objective C 代码的圈复杂度,而无需关心头文件和预处理器。因此,该工具实际上是计算代码“看起来”的复杂程度,而不是代码的“复杂程度”。
人们会需要这个工具,因为通常很难获得所有 使用类似的工具包含文件夹和文件,但我们没有 在圈复杂度方面确实需要这种准确性。
这是我知道的仅有的两个工具,希望对您有所帮助。
【讨论】:
我们的Source Code Search Engine 提供了搜索多种语言的大量源代码的能力,使用每种语言的代码结构来指导搜索并最大限度地减少误报匹配。
作为其索引过程的副作用,它计算文件的各种复杂性指标(Halstead、McCabe)并将其写入 XML 文件,您可以按照自己喜欢的方式处理/显示。
它有 C 和 C++ 的语言前端;他们中的任何一个都应该能够很好地处理目标 C,以便 SCSE 操作员,并且为了 OP 的目的,计算这样的复杂性指标。 可下载版本包含 C 前端。
2019 年 6 月编辑:它现在有一个 Objective C 前端。
【讨论】: