HIS-Metric"呼叫"

时间:2017-05-29 14:26:32

标签: code-metrics

我不明白此指标/规则的原因:

  

不应从超过5种不同的函数调用函数。   同一功能中的所有呼叫都计为1.规则是   仅限于翻译单位范围。

在我看来,这完全是直观的,因为这与代码重用和将代码分割成常用函数而不是重复代码的方法相矛盾。

有人可以解释理由吗?

1 个答案:

答案 0 :(得分:3)

首先要说的是,基于度量的质量方法本质上有点主观和近似。遵循度量方法提供高质量的代码并不是绝对的。

软件复杂性需要考虑两个因素。一个是内部复杂性,由每个函数内的决策复杂性表示(最好的例子是Cyclomatic Complexity度量)和容器内函数(Translation Unit或Class)之间的依赖复杂性。另一个是界面复杂性,测量协作级别和分层组件或类之间的依赖级别,包括循环级别。在C / C ++世界中,这是跨多个TU。在Structure101术语中,复杂性的内部形式称为“Fat”,外部形式称为“Tangles”。

回到您的问题, Hersteller Initiative Software 'CALLING'指标针对内部复杂性(Fat)。他们的论点似乎是,如果你对单个函数有超过5个引用点,那么在C ++类或C实现文件中可能会有太多的实现逻辑,因此可能需要时间分成单独的模块或组件。这似乎是对软件设计和结构的特殊观点,并且例外列表可能与可能适用此类判断的区域一样长。