度量尺度
理解度量尺度
Section titled “理解度量尺度”在度量理论中,尺度(Scale)是用来为我们正在度量的实体属性赋值数字或符号的体系。尺度的类型决定了对数据有意义的数学运算,并影响可以应用的统计分析。理解尺度对于正确解释软件指标至关重要。
度量尺度主要有五种类型:
- 定类尺度(Nominal Scale)
- 定序尺度(Ordinal Scale)
- 定距尺度(Interval Scale)
- 定比尺度(Ratio Scale)
- 绝对尺度(Absolute Scale)
这是最简单的尺度。它将项目分类,没有顺序或排名。数字或符号仅用作标签或标识符。
- 特点:将数据分类到不同的、无序的类别中。
- 经验关系:等同性(项目要么在同一类别,要么在不同类别)。
- 有意义的运算:计数频率(例如,‘UI’、‘Logic’、‘Performance’ 类型缺陷的数量)、求众数(Mode)。
- 无意义的运算:算术运算(加法、平均数 Average),以及诸如“大于”之类的比较。
- 软件示例:对项目中使用的编程语言进行分类(例如,1=Java,2==Python,3=C#)、缺陷类型(例如,‘Security’ 安全、‘Functional’ 功能、‘Performance’ 性能)、模块名称。
该尺度按特定顺序对项目进行排名,但排名之间的差异(间隔)不一定相等或有意义。
- 特点:将数据分类到有序类别中。
- 经验关系:等同性和顺序(“大于”或“小于”)。
- 有意义的运算:计数频率、众数(Mode)、中位数(Median)、基于排名的非参数统计检验。
- 无意义的运算:算术运算(平均数 Average、标准差 Standard Deviation),因为间隔未定义。
- 软件示例:对缺陷严重程度进行排名(例如,1=关键 Critical、2=高 High、3=中 Medium、4=低 Low)、用户满意度评分(例如,‘非常满意’ Very Satisfied、‘满意’ Satisfied、‘中立’ Neutral、‘不满意’ Dissatisfied)、开发者分配的复杂度评级(例如,‘简单’ Simple、‘中等’ Moderate、‘复杂’ Complex)。请注意,虽然我们知道“关键”比“高”更严重,但我们不知道严重 多少。
该尺度对项目进行排序,并且连续值之间的间隔相等且有意义。但是,它缺乏一个真正的零点(表示属性完全不存在的点)。
- 特点:有序数据,具有相等且有意义的间隔。
- 经验关系:等同性、顺序和已知的数值差异。
- 有意义的运算:计数、众数(Mode)、中位数(Median)、平均数(Mean)、标准差(Standard Deviation)、加法、减法。
- 无意义的运算:乘法、除法、比率(因为没有真正的零点)。示例:20°C 不比 10°C “热两倍”。
- 软件示例:日历日期(例如,项目开始日期、完成日期——1月1日到1月10日的间隔与2月1日到2月10日的间隔相同)。摄氏度(Celsius)或华氏度(Fahrenheit)温度。有时,标准化考试分数也被视为定距尺度。
- 注意:很少有常见的软件指标自然地纯粹属于定距尺度。
这是信息量最大的尺度。它具有定距尺度的所有特性,再加上一个真正的零点,表示被度量的属性完全不存在。度量值之间的比率是有意义的。
- 特点:有序数据、相等间隔和真正的零点。
- 经验关系:等同性、顺序、已知差异和已知比率。
- 有意义的运算:所有算术运算(加法、减法、乘法、除法)、比率计算、平均数(Mean)、中位数(Median)、众数(Mode)、标准差(Standard Deviation)、几何平均数(Geometric Mean)。
- 软件示例:代码行数(LOC)(0 LOC 表示没有代码)、执行时间(0秒表示没有时间流逝)、内存使用量(0字节表示没有使用内存)、缺陷数量(0缺陷表示没有发现缺陷)、人时(Person-Hours)工作量(0小时表示没有工作量)、货币成本(0表示没有成本)。
该尺度用于简单计数集合中元素数量的度量。度量值是唯一的,直接对应于计数结果。
- 特点:度量是元素的计数。
- 经验关系:基于被计数元素的结构。
- 有意义的运算:适用于计数的全部算术运算。
- 软件示例:系统中的模块数量、团队中的开发者数量、执行的测试用例数量。它本质上是一种定比尺度,其度量单位是固有固定的(即计数本身)。
选择正确的尺度至关重要。将适用于定比尺度(如计算平均数 Average)的统计方法应用于定序数据(如严重程度排名 Severity Rankings),可能导致无意义的结果(例如,“平均严重程度”为 2.5 无法清晰地映射回类别)。在分析和报告指标时,始终考虑尺度类型。