数据结构度量

17 Mar 2025 | 阅读 2 分钟

本质上,软件开发和其他活动的需求是处理数据。一些数据被输入到系统、程序或模块中;一些数据可能被内部使用,还有一些数据是系统、程序或模块的输出。

示例

程序数据输入内部数据数据输出
薪资姓名/社会安全号码/工资率/工作小时数预扣税率 加班费率 保险费率总工资 预扣税 净工资 工资账册
电子表格项目名称/项目金额/项目之间的关系单元格计算 小计项目和总计的电子表格
软件规划师程序大小/团队中的软件开发人员数量模型参数 常数 系数估算的项目工作量 估算的项目持续时间

这就是为什么一组重要的度量标准可以捕获以输出形式存在的软件中输入和处理的数据量。这种数据结构的计数被称为数据结构度量。这些关注点在于每个模块中的变量(和给定的常数),并忽略了输入-输出依赖关系。

有一些数据结构度量可以计算完成项目所需的工作量和时间。这些度量是

  1. 数据量。
  2. 模块内的数据使用情况。
  3. 程序弱点。
  4. 模块之间的数据共享。

1. 数据量:为了衡量数据量,还有许多不同的度量标准,包括

  • 变量数 (VARS):在此度量标准中,计算程序中使用的变量数。
  • 操作数 (η2) 的数量:在此度量标准中,计算程序中使用的操作数数量。
    η2 = VARS + 常数 + 标签
  • 变量总出现次数 (N2):在此度量标准中,计算变量的总出现次数

2. 模块内的数据使用情况:衡量此度量标准,计算平均活动变量数。一个变量从它在过程中的第一次引用到最后一次引用都是活动的。

Data Structure Metrics

例如: 如果我们想描述一个具有模块的程序的平均活动变量数,我们可以使用这个方程。

Data Structure Metrics

其中(LV)是从第 i 个模块计算的平均活动变量度量。该等式可以计算 n 个跨度的程序的平均跨度大小(SP)。

Data Structure Metrics

3. 程序弱点:程序弱点取决于其模块弱点。如果模块较弱(内聚性较低),那么它会增加完成项目所需的工作量和时间度量。

Data Structure Metrics

模块弱点 (WM) = LV* γ

一个程序通常是各种模块的组合;因此,程序弱点可以是一个有用的度量,定义为

Data Structure Metrics

其中

WMi:第 i 个模块的弱点

WP:程序的弱点

m:程序中的模块数

4. 模块之间的数据共享:随着模块之间的数据共享增加(耦合度越高),模块之间传递的参数也增加,因此需要更多的工作量和时间才能完成项目。因此,模块之间的数据共享是计算工作量和时间的重要度量标准。

Data Structure Metrics
Data Structure Metrics
下一主题信息流度量