我今天在做一个作业,基本上要求我们写一个Java程序,检查HTML语法在文本文件中是否有效。非常简单的赋值,我做得非常快,但是这么快我把它做得非常复杂(很多循环和if语句)。我知道我可以让它更简单,在提交之前我会的,但是在我的拖延中,我开始下载插件,看看他们能给予我什么信息。
我下载了两个我特别好奇的- CodeMetrics和MetricsReloaded。我想知道它产生的这些数字到底与什么相关。我看到了一个半相似的帖子,我读了它以及链接的文章,但我仍然有一些困难理解一些事情。也就是说,前两列(CogC和ev(G))以及其他两列(iv(G)和v(G))的含义。
度量重新加载的方法度量:
度量重新加载的类度量:
前面的数字来自MetricsReloaded,但另一个应用程序CodeMetrics也计算圈复杂度,它给出的数字略有不同。我想知道这些数字是如何相互关联的,如果有人能给予一个简短的一般性解释。
CodeMetrics分析结果:
最后一个问题是时间复杂度。我对圈复杂度的理解是,它是可能的执行路径的数量,它由条件的数量和它们的嵌套方式决定。看起来不像,但这与时间复杂度有任何关系吗?如果是这样的话,它们之间是否有一种可以轻松实现的转换?如果没有,这些插件(或IntelliJ中的任何其他插件)中是否有一种方法可以自动计算时间复杂度?
1条答案
按热度按时间rsaldnfx1#
这里要回答的第一个问题是这些指标的定义
来源:
https://www.sciencedirect.com/science/article/abs/pii/S0950584918301903http://www.mccabe.com/iq_research_metrics.htm