【问题标题】:Does McCabe formula consider data flow?McCabe 公式是否考虑数据流?
【发布时间】:2014-07-05 04:50:41
【问题描述】:

使用 McCabe 公式时

M = E-N + 2C

是否考虑到数据是否仅限于一个方向流动?图表似乎显示了数据在多个方向上的流动,不管这是否真的发生了。

具有一个数据流方向的代码库与另一个(非常相似的)数据可以来回传输的代码库将不那么复杂。

这篇关于 Facebook、MVC 和 Flux 的文章是我所问问题的一个很好的例子:http://www.infoq.com/news/2014/05/facebook-mvc-flux。他们最初使用 MVC 来回传数据(从视图到模型,反之亦然)。一旦将 MVC 切换为 Flux,数据就会向一个方向流动。

【问题讨论】:

  • 您能否提供一些简单的代码示例,其中包含和不包含“数据流向多个方向”。 - 同一种短方法的变体?
  • 我已将更多信息附加到 OP 以解决您的问题。

标签: code-metrics cyclomatic-complexity


【解决方案1】:

您链接到的文章是关于用另一种(误用)架构模式替换的。
“数据流”的概念没有很好的定义,但与问题无关。

McCabe 公式检查程序流程 - 非常非正式地,您可以将其视为对所做出决策数量的衡量。但这是通过查看每个控制语句来衡量的,因此它衡量的规模比您提议的架构更改的规模要细得多。

让我们来看看“McCabe 公式不衡量数据流”。

如果您进行重新设计架构所需的广泛更改,那么公式当然会产生不同的结果。基于程序的分支因子,一如既往。

假设您重新设计了一个程序,以减少重复代码(尤其是决策)的频率。那么复杂性很可能会下降。你也可以判断这是一个更好的架构。

但是圈复杂度并不能真正描述像建筑这样大的东西。这是一种查看小块代码的方法;方法、类。用它来评估架构毫无意义,因为任何架构都可能实现得好或坏。

【讨论】:

    猜你喜欢
    • 2021-05-06
    • 2012-07-10
    • 1970-01-01
    • 2018-05-19
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 2012-07-03
    相关资源
    最近更新 更多