基本信息
- 原书名:The Economics of Software Quality
- 原出版社: Addison-Wesley Professional
编辑推荐
首部系统研究软件质量经济学的权威著作,软件工程领域最重要的图书之一,由软件工程领域的泰斗撰写
全面给出了度量软件质量的各种指标,并基于大量行业数据和真实案例,从经济学角度讲解了有效管理软件质量和项目进度的方法,以及软件质量的经济学影响和商业价值
内容简介
经济管理学书籍
《软件质量经济学》是软件质量经济学领域的唯一著作,也被誉为软件工程领域最重要的图书之一,由软件工程领域的泰斗撰写。全书以大量行业数据和真实案例为驱动,从经济学角度讲解了度量软件质量的各项指标和方法,从而为有效管理软件质量和项目进度提供帮助和指导,更重要的是,本书还深入讨论了软件质量的经济学影响和商业价值。
全书共7章:第1章定义了软件质量和经济价值,分析了软件质量对不同企业和用户的经济价值;第2章阐述了软件质量的估算和度量,介绍了功能点度量指标和结构质量度量指标;第3章讨论了软件缺陷预防,介绍了软件缺陷预防的历史及缺陷预防结果的分析方法;第4章研究测试前缺陷清除,主要讨论了同行评审、正式审查及静态分析等25种不同的测试前缺陷清除方法;第5章介绍软件测试,介绍了40余种软件测试方法;第6章讨论发布后缺陷清除,分析了来自发布后缺陷的用户和行业的成本;第7章整合了所有的数据,给出了低质量和高质量软件的经济影响。
作译者
廖彬山,先后就读于南京大学数学系和北京航空航天大学计算机科学与技术系。现为美国CMMI主任评估师(SCAMPI Lead Appraiser)、北京国信普道科技有限公司首席咨询师、北京航空航天大学软件学院客座教授。主要从事CMMI的培训、咨询和评估及软件工程理论与方法的研究工作,擅长的方向有软件项目管理、软件估算、功能点分析方法、软件度量、软件测试、同行评审、风险管理、PSP和 TSP等。
张永明,毕业于北京航空航天大学计算机科学与技术系,多年在国内外大型IT企业从事软件开发、项目管理、质量保证以及运维管理等工作。目前主要从事CMMI和 GJB5000A方面的培训、咨询及相关理论与方法的研究工作,结合丰富的咨询实践经验,已经为几十家不同领域、不同规模企业的实际研发和项目管理提供了高效、有价值的改进。
崔曼,毕业于吉林大学软件学院,曾从事过软件开发、软件测试、质量保证及CMMI咨询等工作。担任CMMI咨询师期间,为多家不同类型、不同规模、不同应用领域的企事业单位提供了基于CMMI的咨询和评估服务,有效解决了企业实际存在的问题,积累了丰富的实践经验。
目录
对本书的赞誉
译者序
序
前言
第1章 定义软件质量和经济价值 1
1.1 引言 1
1.2 定义软件质量 6
1.3 定义经济价值和定义软件质量的价值 13
1.3.1 软件和质量对构建自用内部软件的企业的经济价值 14
1.3.2 软件和质量对内部软件用户的经济价值 16
1.3.3 软件和质量对商业软件厂商的经济价值 17
1.3.4 软件和质量对COTS用户和客户的经济价值 18
1.3.5 软件和质量对嵌入式软件公司的经济价值 20
1.3.6 软件和质量对嵌入式软件设备用户的经济价值 21
1.3.7 软件和软件质量对其他企业部门的经济价值 23
1.3.8 同时担当多种角色 23
1.4 总结和结论 23
第2章 估算和度量软件质量 25
2.1 引言 25
译者序
书中提供了有关高质量和低质量如何影响软件项目进度、人员配备、开发成本和维护成本的定量数据,有助于项目设定质量目标并进行跟踪,有助于项目在尽快交付与商业风险之间做出权衡。
本书编排循序渐进,内容包括定义软件质量和经济价值、估算和度量软件质量、软件缺陷预防、测试前缺陷清除、软件测试、发布后缺陷清除、软件质量的经济学分析。
本书所涉及的内容,对于工作于软件质量管理以及软件项目管理领域的人员而言都会有很大的帮助,是软件工程和软件过程改进人员不可多得的参考书,同时也可作为软件工程相关专业的教材。
本书的翻译工作主要由张永明、崔曼负责完成,廖彬山做了部分翻译并对全书做了审校。由于译者水平有限,书中错漏在所难免,恳请广大读者指正。希望各位读者朋友能够通过阅读本书给自己的工作带来帮助,并不吝提出建议,这也是我们最大的愿望!
最后预祝大家在阅读本书之时,有一个愉快的经历!
北京国信普道科技有限公司 廖彬山
联系邮箱:bsliao@gxpudao.com
前言
本书的目标是量化那些影响软件质量的因素,并给读者提供足够的信息,以便他们预测和度量他们的项目及应用程序的质量水平。
为了服务这个目标,我们加强扩展软件质量数据——这些数据是关于软件结构质量、软件保证过程和技术,以及提高软件质量的边际成本和收益的相关数据。本书提供了有关高质量和低质量如何影响软件项目进度、人员配备、开发成本和维护成本的定量数据。这种信息使软件经理能够对质量目标设定和跟踪过程,并在产品上市速度与商业风险之间做出正确的取舍。
我们使用来自私人和公共部门的大型组织的软件质量数据,来量化软件质量的正面经济价值,同时也量化差的软件质量的高成本。这不是一本关于“如何做”的书,有很多关于如何做的好书,它们描述了关于测试、审查、静态分析以及其他质量主题的过程和技术。我们希望增加大量来自现实世界的应用程序的质量数据,来作为那些介绍如何做的书的补充,从而使IT经理们能够量化这些技术的相对功效和经济价值。
在小型项目中,个人技能和经验在成功的结果中扮演着重要的角色。质量是重要的,但是个人技能往往是高质量的绝对驱动因素。
但是,当项目逐渐变大,开发团队从20人增加到超过1000人的时候,个人技能往往就回归到平均水平了。质量变得越来越重要,因为从历史上看,对于大型软件应用程序,发现和修复bug的成本已经是已知的最大费用。这一点不单对新开发,对改进及维护都是如此。
大部分有关软件质量的讨论几乎无一例外地都聚焦在功能质量上。在本书中,我们超越功能质量来扩展我们的处理范围,以覆盖非功能和结构质量。度量结构质量需要超越单个组件的质量,而将应用程序的质量作为一个整体来看待。我们将展示如何清晰地定义和可重复地度量非功能与结构质量。
全部三种质量——结构质量、非功能质量和功能质量——的可靠度量对于软件质量经济学的一个完整处理而言都是必不可少的。我们使用这些质量度量指标,来比较软件开发生命周期每个阶段中大量的质量改进技术,同时使用来自现实世界应用程序中的数据来量化它们的功效。
大型系统为了达到高质量水平,一个协同的方法集是必要的。这些方法集包括缺陷预防方法,可以降低缺陷等级;审查和静态分析等测试前缺陷清除方法;以及40多种测试方法。
相比传统的“瀑布”开发而言,不少较新种类的开发方法对软件质量也有有益的影响。其中包括敏捷开发、水晶开发、极限编程(XP)、个人软件过程(PSP)、Rational统一过程(RUP)、团队软件过程(TSP)以及其他一些方法。
软件行业普遍较差的度量实践,使得人们模糊了对软件质量经济学的理解。许多高管甚至有些质量人员,往往将软件质量视为一项花费。他们也往往把质量看作这样的一个主题,即认为质量延缓了进度并增加了开发成本。
然而,通过对1973年至今的大约13 000个软件项目的分析,我们很高兴地看到,高质量水平总是与快于平均的开发进度和低于平均的开发成本相联系的。
之所以如此的原因是,大部分上线延迟并超出预算的项目在测试开始之前都没有显示出明显的问题征兆。当测试开始时,高严重程度缺陷的泛滥往往会延长测试时间,并且引发大规模加班。一般而言,低质量大型项目的测试时长是高质量项目的两到三倍,而测试成本要比高质量项目高出一倍多。如果缺陷直到测试开始都还没有被发现和清除,那么就太迟了而不能使软件项目再次可控。如果在测试之前就预防缺陷或者清除缺陷,这样做的成本效益会更好。
另一个隐藏了软件质量经济价值的糟糕度量实践是使用每个缺陷的成本这一度量指标。“在产品交付之后修复一个bug的成本是在开发期间修复它的100倍”,这已经成为一个现代传奇。遗憾的是,每个缺陷的成本这个度量指标实际上对质量是不利的,bug最多的软件反而获得了最低的度量值。随着质量的提高,每个缺陷的成本会上升,直到达到零缺陷的水平,这时,这个度量指标就不能再使用了。
高质量真正的经济价值只是部分地与缺陷修复成本相关。诚然,高质量只带来较少的缺陷并因而降低了缺陷修复成本。但是,其主要的经济效益是由于这样的事实,即高质量能够:
减少大型系统取消的可能性;
减少对于外包项目诉讼的可能性;
缩短开发周期;
降低开发成本;
降低维护成本;
序言
为我们的客户服务的IT系统,已经建立了几十年。在这几十年中经历了不断变化的监管框架、激烈的竞争以及并购活动,这些系统为我们现有的和新兴的产品,提供了关键任务的网络管理、计费和客户服务基础设施。在应对紧迫的业务需求时,我们根本不能奢望精心打造绿地解决方案。
尽管IT有复杂的本性,但我们的利益相关者期望的无外乎是,在降低成本的同时能够持续改进服务质量。这种情况在我们的市场上已经有相当一段时间了,而且这也是我的组织的一个主要行动重点。我们一直致力于应对这一挑战的一个领域是,度量软件开发生产率和质量。作为CIO(首席信息官),我负责公司的内部信息技术组织和基础设施,以及所有软件应用程序的升级。当你开始认真考虑时,其实我们业务的核心专长是对软件编码,而这些软件能够使我们的关键任务过程自动化。是我们的IT架构的软件层次从根本上推动着我们产品的上市时间、我们的风险框架以及我们的成本结构。
我们度量软件生产率来分配资源,并在我们的投资交易中做出明智的权衡。除了通过测试度量功能水平,我们还在结构水平上度量软件质量,使我们在交付速度、商业风险和技术债务(维护和改进交付的解决方案的长期成本)之间做出正确权衡。
数年来,我们已经成功地度量了我们的开发项目的质量,并将这些度量指标包括进我们的一些服务水平协议中。我们现在开始把生产率度量与质量度量放在一起进行组合考虑,以获得我们用当前的交付敏捷性交换未来的商业敏捷性的程度的更真实场景。
之所以说本书是一座里程碑,有三个原因:它是实用的,它是数据驱动的,它超越了演示如何管理结构质量的传统的质量论述方法,而结构质量对于我们的业务是一个重要的软件质量元素。正如我们投资于我们的企业架构来积极地管理核心应用程序软件的演变一样,我们正强烈关注这些应用程序在结构层面上的分析和度量。这些措施使我的组织以积极的姿态来为我们的公司构建一个更好的未来,而对我来说,则是严格管理基本经济要素,以满足并超越利益相关者的期望。
我们期待在固定电话、手机、数据及按需的产品和服务方面有一个激动人心的快速增长期时,我可以向你保证,这是我的管理团队和我会放在手边常常参考的一本书。
——Thaddeus Arroyo,AT&T公司CIO
F. Thaddeus Arroyo?AT&T公司的CIO,负责AT&T的信息技术。他于2007年1月,即在AT&T、南方贝尔和Cingular刚刚完成合并后,被任命担任目前的职位。根据他的角色,他负责指导公司的内部信息技术组织和基础设施,包括互联网和内联网能力,开发覆盖消费者及流动市场、企业的业务分部和AT&T企业系统的应用系统。他还负责监管AT&T的企业数据中心。
媒体评论
——Stephen H. Kan,IBM公司系统与技术组高级技术人员、项目经理、软件质量工程师,Metrics and Models in Software Quality Engineering一书的作者
“终于,一本阐述软件质量成本和软件质量经济学以及它们与商业价值的关系的书出炉了。单独的测试无法产生高质量软件、工程化的质量的价值、正的ROI(投资回报率)等事实都在本书中进行了引人入胜的说明。另外,本书也是理解、管理、清除软件系统中‘技术债务’的必读之物。”
——Dan Galorath,Galorath公司CEO、SEER by Galorath的创始人
“祝贺Capers和Olivier,祝贺他们发表了关于当今软件行业中的缺陷成本的确切、广泛、及时的研究。两位作者没有止步于给出缺陷的起因,而是继续研究了缺陷的引入点、清除和预防方法,这些都可以避免与有缺陷的软件产品相关的‘技术抵押’。在当今‘快速投放市场’的世界中,本书对加强软件工程中的‘工程’的强调令人为之一振。如果你是一名软件开发者、管理者、学生或者用户,这本书将会挑战你对软件质量的看法。非常感谢他们!”
——Joe Schofield,美国桑迪亚国家实验室,IFPUG副总裁,
CQA、CFPS、CSMS、LSS BB及SEI认证讲师
“不论是在做咨询、做项目还是教学,只要我需要可靠的、详细的、确切的度量方法和对软件工程职业当前的能力和表现的洞察力时,我都会首先去读Capers Jones的著作。在这本重要的新书中,他和Olivier Bonsignour将基于实际经验的经济学案例与事实、数据结合起来,说明了为何软件质量如此重要。我知道我将会一次又一次地向本书寻求帮助。”
——Rex Black,Rex Black咨询服务公司(www.rbcs-us.com)总裁,Managing the Testing Process, Third Edition等7本关于软件质量和测试的书的作者
“这部巨著可以让那些投资软件或依赖软件业务和产品的人们进行明智的投资。严格地将金融、经济学、管理、质量和生产力的原理应用到对大量投资于软件的价值命题和神话的全面彻底的检查上,这是一项开创性的工作。如果你要使你的钱在软件投资中物有所值,那么本书不可不读。”
——Leon A. Kappelman,北得克萨斯州大学商学院信息系统学教授
“Capers Jones是当今软件行业中软件度量方面最重要的先驱。本书是一项对跨应用程序领域高质量软件挑战的广泛、具有丰富数据的研究。对于那些希望能更好地了解他们所面对的挑战以及潜在解决方案的成本和有效性的软件质量专业人员来说,这是一本必要的读物。作者在书中倾注了很多的研究与思考。”
——Maysa-Maria Peterson Lach,雷神导弹系统公司资深高级软件工程师
“没有哪个行业像软件行业一样抵制精确严密的度量,软件从业者已经如此强烈地抵制了50多年。Capers Jones在30多年前就接受了将清醒的头脑与可预见性引入软件生产中来的挑战,现在,他与Olivier Bonsignour一起发表了将标准工程和经济学原理应用到软件开发中的‘荒凉西部’的重要观点。”
——Douglas Brindley,软件生产力研究所总裁兼CEO
【插图】
