软件度量(software measurement)是对软件开发项目、过程及其产品进行数据定义、
收集以及分析的持续性定量化过程,目的在于对此加以理解、预测、评估、控制和改善。
没有软件 度量 ,就不能从软件开发的暗箱中跳将出来。通过软件度量可以改进软件开发过
程,促进项目成功,开发高质量的软件产品。度量取向是软件开发诸多事项的横断面,包
括顾客满意度度量、质量度量、项目度量、以及品牌资产度量、知识产权价值度量,等等。
度量取向要依靠事实、数据、原理、法则;其方法是测试、审核、调查;其工具是统计、
图表、数字、模型;其标准是量化的指标。
一、软件度量的发展历程
如 Lemmerich 所言, 测量在科学领域有悠久的历史【116】。相对早在 1889 年
就定义好了度量单位~米的长度测量【116】,温度的度量复杂的多。
Fahrenheit 和 Celsius 分别在 1714 年和 1742 年提出了基于某固定点间隔递增等级的温
度度量方法。Celsius 将 100 度和 0 度之间分为 100 个等份。但问题是一直不能唯一确定
50 摄氏度。而且长度的测量总是一个比例尺度,但是温度可能用间隔( 摄氏/华氏温度表)
或者比例尺度(开氏温度)来衡量。
今天,计算机在我们生活的每个领域几乎都扮演了非常重要的角色。在计算机上运行
的软件也越来越重要。因此,可预测、可重复、准确地控制软件开发过程和软件产品已经
非常重要。软件度量就是衡量软件品质的一种手段。
软件度量或者说软件工程度量领域是一个在过去 30 多年研究非常活跃的软件工程领域。
软件度量(software measurement)和软件量度(software metrics)一样非常有名
(译者注:为了区分,译者将 software measurement 和 software metrics 分别译成
软件度量和软件量度,其实他们都可以表示软件度量)。但目前学界还没有明确这两个术
语的区别。参照测量理论【159】的相关术语,我们采用软件度量(software
measurement)。从文献上看,这两个术语是同义词。量度( metric)在这里不作度
量空间理解,它理解为:度量是客观对象到数字对象的同态映射。同态映射包括所有关系
和结构映射。用另一句话说,软件品质和软件度量成直对关系。这是度量和软件度量的根
本理念。
软件度量研究主要分为两个阵营:一部分认为软件可以度量,一部分认为软件无法通
过度量分析。无论如何,研究主流是关心软件的品质和认为软件需要定量化度量。目前有
超过上千种软件度量方法被软件研究人员及从业人员提出,并且到今天有超过 5000 份论
文出版发表。
二、简单软件度量流程图
三、软件度量三维度
软件度量能够为
项目管理者提供有关
项目的各种重要信息,
其实质是根据一定规
则,将数字或符号赋
予系统、构件、过程
或者质量等实体的特定属性,即对实体属性的量化表示,从而能够清楚地理解该实体。软
件度量贯穿整个软件开发生命周期,是软件开发过程中进行理解、预测、评估、控制和改
善的重要载体。软件质量度量建立在度量数学理论基础之上。软件度量包括 3 个维度,即
评论1