
正如本书其他部分指出的那样,软件工程文献过于依赖含糊不清、不可预测的质量定义,比如“软件产品符合用户需求”或者满足一系列“特性”。这些不科学的质量定义使软件质最经济价位的研究进展缓慢。其他两个无效经济度里指标的使用也影响了软件质量经济价值的研究,即:平均缺陷成本和代码行。平均缺陷成本对质量不利,达到最低缺陷成本的软件却常常是千疮百孔。代码行对高级编程语言不利,它掩盖了高级编程语言在软件质量和生产力研究方面的应有价值。
这一部分,笔者将尝试用8个研究案例来展示软件质量的经济研究。由于软件质量的经济价值与应用规模紧密相关,所以使用4个离散的规模数量级来举例说明:100个功能点、1000个功能点、10000个功能点和100000个功能点。100个功能点量级的应用软件通常是大型系统的一个小功能模块而不是一个独立的应用软件。但是,这个量级也是较大型应用软件原型最常见的规模范围。可能有些小型独立应用软件的规模也在这个规模最级,比如货币转换器或者手持设备(如iPhone)上的小程序等之类的小型应用软件。
1000个功能点量级的应用软件通常是独立应用软件,比如燃油喷射控制系统、原子表控制软件、诸如Java等编程语言的编译器以及COCOMO之类的软件估算工具等。10000个功能点盆级的应用软件通常是业务控制各个方面的重要系统,比如保险理赔处理、机动车登记、儿童支持应用软件等软件系统。100000个功能点量级的应用软件通常是大型国际电话交换系统之类的重大系统、Vista或者IBMMVS之类的操作系统、微软Office之类相互关联协作的应用套件。一些ERP应用软件也属此类规模的软件。甚至有可能达到300000个功能点。同样,诸如全球军事指挥与控制系统(WWMCCS )等大41国防应用软件也可能高达100000个功能点。
为减少可变因素数量。所有8个示例均假定以C语言编写代码,且每个功能点包含大约125个代码语句。由于所有8个应用示例均假定使用相同编程语言编写,故生产力和质量可以用无失真的代码行指标来表示。注意,将代码行指标用于不同编程语言之间的比较是无效的。