信息流度量

17 Mar 2025 | 阅读 2 分钟

我们希望考虑的另一组度量标准称为信息流度量。 信息流度量的基础建立在以下概念之上:最简单的系统由组件组成,而这些组件所做的工作以及它们的组装方式决定了系统的复杂性。 以下是在信息流中使用的工作定义

组件: 通过将(软件)系统分解为组成部分而识别的任何元素。

内聚性: 组件执行单个功能的程度。

耦合性: 用于描述同一系统中一个组件与其他组件之间链接程度的术语。

信息流度量通过观察系统组件或模块之间的信息流来处理这种类型的复杂性。 该度量由Henry and Kafura给出。 所以它也被称为Henry and Kafura的度量。

该度量标准基于对系统模块之间信息流的测量。 它对系统组件之间互连引起的复杂性很敏感。 该度量包括软件模块的复杂性,该模块定义为模块中包含的过程的复杂性之和。 一个过程由于以下两个因素而导致复杂性。

  1. 程序代码本身的复杂性。
  2. 由于过程与环境的连接而产生的复杂性。 第一个因素的影响已通过LOC(代码行)度量包括在内。 为了量化第二个因素,Henry和Kafura定义了两个术语,即FAN-IN和FAN-OUT。

FAN-IN: 一个过程的FAN-IN是流入该过程的本地流的数量加上该过程从中检索信息的数据结构的数量。

FAN-OUT: FAN-OUT是从该过程流出的本地流的数量加上该过程更新的数据结构的數量。

过程复杂度 = 长度 * (FAN-IN * FANOUT)**2

Information Flow Metrics
下一个主题圈复杂度