软件度量

软件度量()是一个对于软件性质及其规格的量测。软件度量的目的是获得客观、可以拷贝及量化的量测结果,依软件度量性质及特性的不同,可以分别应用在软件开发的时程及预算规划、成本估算、品质保证测试、软件调试、软件性能优化或项目人员配置的优化等领域。

举例

源代码行数简称SLOC,是最简单的一种软件度量,以下以包括注释的实体源代码行数(LOC)为准,说明软件度量的特性及一些限制。

以下的C代码只有一行,其LOC为1:

for (i = 0; i < 10; i += 1) printf("hello"); /* How many lines of code is this? */

但代码在重新排版为以下的代码时,其LOC就从1改变为5,但实际的程序机能没有改变:

/* Now how many lines of code is this? */
for (i = 0; i < 10; i += 1)
{
    printf("hello");
}

若不使用循环的架构,直接调用10次printf,一般不建议以这种方式撰写程序,但其LOC为11,比上述二个程序的LOC都大:

/* It is not a good code style */
printf("hello");
printf("hello");
printf("hello");
printf("hello");
printf("hello");
printf("hello");
printf("hello");
printf("hello");
printf("hello");
printf("hello");

不同的软件度量可量测的软件性质也随之不同,像源代码行数适合量测软件的大小,但无法量测软件的模块化程度,而且此度量方式是要量测原代码的长度,不适合作为软件规划阶段进行度量。

常见的软件度量

以下是一些常见的软件度量:

限制

软件的开发过程相当复杂,其方法论及目标都有高度的变异性,因此很难定义软件质或是量的数据,并确定一个有效的和及时的计量方式,尤其要在软件的细部设计前进行相关的预估,更加困难。另一个困难、常产生争议的是度量的定义,以及各度量之间的重要性[2][3]。 实务上的软件度量常常缩减为以下几个因素的组合:

  • 时程
  • 大小或是复杂度
  • 成本
  • 品质

度量的目标可能会针对是上述的一项因素或是多项因素。

评论

软件开发者指出过于简化的软件度量可能弊大于利[4]。有些软件开发者也注意到软件度量已成为软件开发过程中的一部份[2]。有些软件开发者注意到软件度量可能造成编程者的压力及焦虑,或是设法制造不实的度量,不过也有些软件开发者认为软件度量对编程者有正面影响,可以肯定自身工作的价值[5]

有些软件开发者认为许多软件度量的定义不够精确,而在实务上也很难预估当软件完成时,其对应的软件度量的目标值为何[6],不过也有些软件开发者认为不精确的量测至少比没有量测要好「若对一个事物无法测量,也就无法控制这个事物。」[7]

软件度量已广为政府机关、美国军方、美国国家航空航天局(NASA)[8]、信息技术咨询机构、学术机构所使用[9],也有许多商用或学术使用的软件开发预估软件

相关条目

注释

  1. . Land Software Engineering Centre. [19 October 2010]. (原始内容存档于2011-07-06).
  2. Binstock, Andrew. . SD Times. BZ Media. [19 October 2010]. (原始内容存档于2012-09-13).
  3. Kolawa, Adam. . The Code Project. [19 October 2010]. (原始内容存档于2011-11-14).
  4. Kaner, Dr. Cem, , [2012-04-16], (原始内容存档于2020-04-26)
  5. (PDF). [2012-04-16]. (原始内容存档 (PDF)于2017-03-24).
  6. Lincke, Rüdiger; Lundberg, Jonas; Löwe, Welf, (PDF), International Symposium on Software Testing and Analysis 2008, 2008: 131–142 [2012-04-16], (原始内容存档 (PDF)于2018-04-17)
  7. DeMarco, Tom year =. . ISBN 0-13-171711-1.
  8. NASA Metrics Planning and Reporting Working Group (MPARWG) 存盘,存档日期2011-10-22.
  9. . [2012-04-16]. (原始内容存档于2017-12-11).

参考文献

  • DeMarco, Tom. . 1982. ISBN 0-13-171711-1.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.