我们将要考虑的另一组指标称为”信息流指标”。信息流度量的基础基于以下概念, 即最简单的系统由组件组成, 而这些组件所做的工作以及如何将它们组合在一起, 可以确定系统的复杂性。以下是信息流中使用的工作定义:
组件:通过将(软件)系统分解为组成部分而标识的任何元素。
内聚性:组件执行单个功能的程度。
耦合:该术语用于描述同一系统中一个组件与另一个组件之间的链接程度。
信息流度量标准通过观察系统组件或模块之间的信息流来处理这种类型的复杂性。该指标由Henry和Kafura给出。因此, 它也被称为亨利和卡夫拉的公制。
该度量基于对系统模块之间信息流的度量。由于系统组件之间的互连, 它对复杂性很敏感。这种措施包括将软件模块的复杂性定义为模块中包含的程序的复杂性之和。由于以下两个因素, 过程会增加复杂性。
- 过程代码本身的复杂性。
- 由于过程与其环境的联系而导致的复杂性。第一个因素的影响已通过LOC(代码行)度量包括在内。为了量化第二个因子, Henry和Kafura定义了两个术语, 即FAN-IN和FAN-OUT。
FAN-IN:过程的FAN-IN是进入该过程的本地流数加上该过程从中检索信息的数据结构数。
扇出:扇出是该过程的本地流数加上该过程更新的数据结构数。
程序复杂度=长度*(扇入*扇出)** 2
评论前必须登录!
注册