首页>参考读物>计算机科学与技术>综合

软件度量(原书第2版)
作者 : (英)Norman E.Fenton, (美)Shari Lawrence Pfleeger
译者 : 杨海燕 赵 巍 张力 等
出版日期 : 2004-09-28
ISBN : 7-111-14675-1
定价 : 65.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 504
开本 : 16开
原书名 : Software MetricsA Rigorous and Practical Approach(Second Edition)
原出版社: PWS Publishing Company
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

软件度量是良好软件工程技术的一个重要组成部分。本书是介绍软件度量有关知识的一本经典教科书,内容丰富,覆盖面广,既包括重要的基础理论,又包括实用的指导准则,还引入了重要的研究成果。
  本书内容分为三部分。第一部分是对测量和实验基础知识的介绍,包括测量理论、基于目标的软件测量框架、实证研究、软件度量数据的收集和分析。第二部分是对软件工程测量的各项内容的深入分析,包括:产品规模、结构等内部产品属性和可使用性、可维护性等外部产品属性的测量,可靠性的测量和预测,资源的测量和过程预测。第三部分是从管理层面对软件测量中的一些问题的说明,包括测量程序规划、测量实践和软件工程中的实证研究。书中提供大量实例,并附有习题和部分习题的答案;在附录中汇总一些度量工具的信息和缩略词;最后还列出丰富的附有评注的参考文献。
  本书既可作为本科生和研究生学习软件度量的教材,也可作为软件管理人员和开发人员的工作参考手册。

图书特色

图书前言

尽管一些人并不承认软件度量(software metrics)是良好软件工程技术的关键要素,但是它确实发挥着十分重要的作用。测量(measurement)的用途极其广阔,如评估状况、跟踪进展情况、评价有效性等。然而,在如何进行测量和如何才能测量之间存在的差距,仍然不如想像中那样让人乐观。之所以会在潜在可能性和具体实践之间存在这样的差距,主要原因在于:缺乏一个协调的、全面的框架来为理解和使用测量提供指导。通过鼓励对重要问题进行讨论、阐释基本概念和提出新方法来解决长期存在的问题,1991年出版的本书第1版所介绍的严格的测量框架,使测量的重要性得到了进一步的增强。
  本书的第1版作为介绍软件度量的首批教材之一,通过向软件工程师介绍测量的相关理论、图论的相关概念和软件可靠性的新方法,开创了这个领域的新局面。本次出版的这本书对软件度量的最新发展情况进行了全面的阐述。为了能够对软件度量的迅猛发展情况(尤其是软件度量在行业实践中日益受到人们的重视)有所反映,本书在原有基础上进行了全面的重新设计和编写。本书虽然再次介绍了软件度量的原始框架,但是却把侧重点放在了框架的实际应用上。在测量理论的指导下,在原来将实体分成产品、过程和资源的基础上,本书对框架进行了扩展,新增了过程可见性和面向目标(goal-directed)测量的概念。本书还通过补充大量的案例研究和实例,对每一种想法和技术的应用情况进行了展示。
  这个第2版还根据学术界和业界对第1版的反馈,对有关内容进行了增删。因此,呈现在大家面前的这本教材引入了大量的案例研究、精心剪裁的实例和习题。本书不但对原有的各个章节进行了完善和更新,而且还增加了新的章节,介绍了新的内容(如过程成熟度和测量、目标-问题-度量范型(paradigm)、度量的规划、实验、实证研究、面向对象的度量以及度量工具等)。本书在介绍软件度量时,一如既往地保持了易于理解且力求全面的风格。
  本书可供不同层次的读者群阅读。学术界和产业界的读者既可以将其作为软件度量和质量保证课程的初级教材,也可以将其作为其他软件工程课程的有益参考资料。由于本书的覆盖面很广,因此能够作为学者和实践人员的主要参考书。本书还介绍了一些只在研究型出版物中才会出现的有益的重要成果。当然,从事软件度量研究的人士一定会对本书感兴趣,因为它不但富含报告最新研究成果的材料,而且还收录了大量附有评注的、有关测量信息的参考文献。另外,本书还能为软件管理人员和开发人员提供帮助—为他们建立或扩展测量程序提供指导,这类人员可以把学习重点放在选择度量标准和规划度量使用等方面的实用指导上。
  本书分为三个部分。第一部分对为什么要进行测量以及如何进行测量做了基本介绍,其中分析并解释了测量、实验、数据收集和分析等方面的基本原理。第二部分深入探讨软件工程测量的各项内容,全面介绍各种特定度量及其使用方法,并用详实的实例和案例研究对其进行说明。第三部分从管理层面对软件测量进行说明,其中包括:如何进行测量程序的规划?其他组织在哪些方面已经获得了成功?如何将测量用于对技术和工具进行有效性的评价?此外,本书还附有带评注的参考文献、术语表以及从主要章节中选出的部分习题的答案。

致谢
  多年以来,有不少人士为本书的编撰工作做出了贡献。在这里,笔者要特别感谢Barbara Kitchenham、Bev Littlewood和Peter Mellor,他们不但为本书的几个章节贡献了自己的智慧,而且还大力支持我们在新版中对其观点进行修改;感谢Tom DeMarco和Tom Gilb,他们不但对本书的原稿进行了认真的审校,而且还向笔者提出了宝贵的意见。
  另外,笔者还要特别感谢南部银行工艺学校(South Bank Polytechnic)极富创造力的METKIT小组,尤其是Martin Bush、Ros Herman、David Mole、Meg Russell和Robin Whitty,他们为第1版的撰写、编辑和修改做出了很多贡献。下列同事为笔者提出了有益的建议:Nick Ashley、 Richard Bache、Bill Bail、Vic Basili、Sarah Brocklehurst、Grubstake小组(Albert Baker、Antonia Bertolino、Jim Bieman、Dave Gustafson、Austin Melton、Linda Ott和Robin Whitty)、Tracy Hall、Les Hatton、Bill Hetzel、Gillian Hill、Chuck Howell、Darrel Ince、Agnes Kaposi、Chris Kemerer、Taghi Khoshgoftaar、Bob Lockhart、Bob Malcolm、Tom Maibaum、Steve Minnis、Margaret Myers、Martin Neil、Niklas Ohlsson、Ron Prather、James Robertson、Suzanne Robertson、Gerald Robinson、Terry Rout、Roger Shaw、Martin Shepperd、Claude Stricker、Lorenzo Strigini、Dale Tiller、Alan Todd、Klaas van den Berg、Hans van Vliet、Dave Wright、Marv Zelkowitz和 Horst Zuse。Carol Allen和Basi Isaacs 为笔者提供了办公支持,Chuck Pfleeger和Stella Page为笔者提供了宝贵的技术和情感支持。笔者还要感谢Christof Ebert、Bob Grady、Armstrong Takang、Aimo Torn、Faridah Yahya所做的工作,以及指出本书第1版所存在问题(我们已经在本书中对这些问题做了相应的改正)的各方人士。
  笔者还要再次感谢欧洲委员会,由欧洲信息技术研究战略计划(ESPRIT)资助的METKIT和PDCS项目为本书第1版的撰写提供了部分支持,而PDCS 2项目则为本书第2版的撰写提供了部分支持;英国电信研究实验室(British Telecom Research Laboratory)和NATO也为本书的初期工作提供了一些支持。我们还要衷心感谢英国工程与自然科学研究委员会(UK Engineering and Physical Sciences Research Council)和英国工贸部(UK Departement of Trade and Industry),他们的DESMET项目中的工作构成了本书第4章、第5章和第6章的核心内容,本书的大量实例很多都是选自其SMARTIE和DATUM项目。

作者简介

(英)Norman E.Fenton, (美)Shari Lawrence Pfleeger:Norman E.Fenton: 现为英国伦敦大学女王玛丽与威斯特菲尔德学院的计算科学教授。1989年~2000年,他是英国城市大学软件可靠性中心的计算科学教授。
Shari Lawrence Pfleeger: 软件工程和技术转让领域的资深顾问。现为RAND公司的高级研究员,RAND公司是一家非赢利性的专门研究公众兴趣的公司。1982年~2003年,她是美国“系统/软件”咨询公司总裁。

译者简介

杨海燕 赵 巍 张力 等:暂无简介

译者序

测量是工程技术领域中一个不可或缺的要素,随着近年来软件工程领域的长足发展,测量技术也逐渐融入到软件工程领域,并成为良好软件工程的一个重要组成部分,因为“凡是不能测量的,便是不能对其进行控制的”。测量有助于对软件开发中的各项活动进行了解和控制,有助于过程和产品的改进。随着CMM的发展及其在国内日益广泛的应用,对软件开发中的过程、产品和资源进行量化的观点已被越来越多的人认同,由此也推动了对软件度量的研究。
   本书是介绍软件度量有关知识的一本经典教材,内容丰富,覆盖面广,既包括重要的基础理论,又包括实用的指导准则,还引入了重要的研究成果。本书首先介绍测量、实验、数据收集和分析等方面的基本原理;然后具体介绍软件工程测量的各项内容,其中不乏对各种度量及其使用方法的有益考察;最后从管理层面对软件测量中的一些问题进行说明。本书用易于理解的描述方式向读者提供大量的信息,不仅包含精心挑选的实例和习题,还提供丰富的附有评注的参考文献,这些内容不仅有助于读者理解和巩固书本中的知识,还为读者进行深入研究提供了有益的指导。本书是有志于进行软件度量研究的学者的首选读物之一,也是业界实践人员的重要参考资料。
  本书第1章至第8章、第13章及附录由杨海燕翻译,第9、10、14章及参考文献中的评注由赵巍翻译,第11、12、15章由张力翻译;此外,郎小凤、程杜平、尹建松和毛进也承担了本书的部分翻译、校对或文稿整理工作。本书的翻译得到了高仲仪教授的悉心指导,他为本书的翻译提出了很多宝贵的意见和建议,在此表示衷心感谢。
  由于时间仓促,译文中难免有不当之处,敬请读者批评指正。

译  者
2004年5月

图书目录

第一部分  测量的基本原理与实验
第1章  测量:何谓测量?为何测量? 2
1.1  日常生活中的测量 2
1.1.1  测量是什么 3
1.1.2  使事物可测量 4
1.2  软件工程领域的测量 6
1.2.1  软件工程领域中测量的疏漏 7
1.2.2  软件测量的目标 8
1.2.3  测量的作用:了解、控制与改进 10
1.3  软件度量的范围 11
1.3.1  成本和工作量估计 11
1.3.2  生产率模型和度量 12
1.3.3  数据收集 12
1.3.4  质量模型和度量 13
1.3.5  可靠性模型 13
1.3.6  性能评价和模型 13
1.3.7  结构和复杂性度量 14
1.3.8  通过度量实现管理 14
1.3.9  方法和工具的评估 15
1.3.10  能力成熟度评估 15
1.4  小结 15
1.5  习题 16
第2章  测量基础 17
2.1  测量的表示理论 17
2.1.1  经验关系 18
2.1.2  映射规则 22
2.1.3  测量的表示条件 22
2.2  测量和模型 28
2.2.1  定义属性 28
2.2.2  直接和间接测量 30
2.2.3  用于预测的测量 32
2.3  测量标度和标度类型 35
2.3.1  标称标度 37
2.3.2  序数标度 37
2.3.3  间隔标度 39
2.3.4  比率标度 40
2.3.5  绝对标度 41
2.4  测量中的意义 42
2.4.1  度量的统计运算 45
2.4.2  客观度量和主观度量 48
2.4.3  扩展的数字系统中的测量 48
2.4.4  间接测量和意义 52
2.5  小结 54
2.6  习题 54
2.7  补充读物 56
第3章  基于目标的软件测量框架 58
3.1  软件度量的分类 58
3.1.1  过程 59
3.1.2  产品 61
3.1.3  资源 64
3.2  确定对什么进行测量 65
3.2.1  目标-问题-度量范例 65
3.2.2  测量和过程改进 68
3.2.3  GQM与过程成熟度相结合 73
3.3  框架的应用 75
3.3.1  成本和工作量估计 75
3.3.2  生产率度量和模型 76
3.3.3  数据收集 76
3.3.4  质量模型和度量 77
3.3.5  可靠性模型 77
3.3.6  性能评估和模型 78
3.3.7  结构和复杂性度量 78
3.3.8  能力成熟度评估 78
3.3.9  通过度量实现管理 79
3.3.10  方法和工具的评估 79
3.3.11  数学家对度量的看法 80
3.4  软件测量的确认 81
3.4.1  预测系统的确认 81
3.4.2  度量的确认 82
3.5  软件测量确认实践 83
3.5.1  更严格的确认需求 83
3.5.2  确认和不精确定义 85
3.5.3  如何才能不进行确认 85
3.5.4  选择适当的预测系统 86
3.6  小结 86
3.7  习题 87
3.8  补充读物 88
第4章  实证研究 90
4.1  调查研究的四项原则 90
4.1.1  选择研究方法 90
4.1.2  提出假设 92
4.1.3  对变量保持控制 93
4.1.4  使研究工作有意义 94
4.2  正规实验规划 96
4.2.1  实验的规程 96
4.2.2  实验设计的原则 100
4.2.3  实验设计的类型 103
4.2.4  实验设计的选择 106
4.3  案例研究规划 114
4.3.1  姐妹项目 114
4.3.2  基线 114
4.3.3  随机选择 115
4.4  小结 115
4.5  习题 115
4.6  补充读物 116
第5章  软件度量数据收集 118
5.1  良好的数据应具备哪些条件 118
5.2  如何定义数据 119
5.2.1  存在问题的问题 120
5.2.2  失效 123
5.2.3  故障 127
5.2.4  改动 131
5.3  如何收集数据 132
5.4  何时收集数据 137
5.5  如何存储和提取数据 139
5.5.1  原始数据库结构 139
5.5.2  提取数据 140
5.6  小结 141
5.7  习题 142
5.8  补充读物 145
第6章  软件测量数据分析 147
6.1  引言 147
6.2  实验结果分析 147
6.2.1  数据的性质 148
6.2.2  实验的目的 154
6.2.3  设计上的考虑因素 156
6.2.4  决策树 156
6.3  简单分析技术举例 157
6.3.1  盒形图 157
6.3.2  散点图 159
6.3.3  控制图 161
6.3.4  关联的度量 163
6.3.5  稳健相关性 163
6.3.6  线性回归 165
6.3.7  稳健回归 166
6.3.8  多元回归 167
6.4  高级方法 168
6.4.1  分类树分析 168
6.4.2  变换 169
6.4.3  多元数据分析 171
6.4.4  多准则决策支持 173
6.5  统计检验概述 180
6.5.1  单组检验 180
6.5.2  双组检验 181
6.5.3  两个以上分组的比较 182
6.6  小结 183
6.7  习题 183
6.8  补充读物 185
第二部分  软件工程测量
第7章  测量产品内部属性:规模 188
7.1  软件规模的各个方面 188
7.2  长度 190
7.2.1 代码 190
7.2.2 规格说明与设计 198
7.2.3 预测长度 198
7.3  重用 199
7.4  功能性 201
7.4.1  Albrecht方法 202
7.4.2  COCOMO 2.0方法 206
7.4.3  DeMarco方法 207
7.5  复杂性 208
7.5.1  测量算法的效率 208
7.5.2  测量问题的复杂性 213
7.6  小结 214
7.7  习题 215
7.8  补充读物 216
第8章  测量产品内部属性:结构 217
8.1  结构度量的类型 217
8.2  控制流结构 218
8.2.1  结构的流图模型 219
8.2.2  层次化度量 226
8.2.3  测试覆盖度量 231
8.3  模块性和信息流属性 236
8.3.1  模块性和信息流模型 236
8.3.2  全局模块性 237
8.3.3  形态 238
8.3.4  树杂度 239
8.3.5  内部重用度 241
8.3.6  耦合 242
8.3.7  内聚 244
8.3.8  信息流 245
8.3.9  信息流—测试覆盖度量 247
8.4  面向对象度量 248
8.5  数据结构 250
8.6  全面“复杂性”测量的困难 251
8.7  小结 253
8.8  习题 254
8.9  补充读物 256
8.10  本章附录 259
第9章  测量产品外部属性 263
9.1  软件质量建模 263
9.1.1  早期模型 264
9.1.2  定义你自己的模型 267
9.1.3  ISO 9126标准质量模型 267
9.2  测量质量的几个方面 268
9.2.1  基于缺陷的质量度量 269
9.2.2  可使用性度量 274
9.2.3  可维护性度量 276
9.3  小结 280
9.4  习题 280
9.5  补充读物 281
第10章  软件可靠性:测量和预测 282
10.1  可靠性理论基础 282
10.2  软件可靠性问题 287
10.3  参数式可靠性增长模型 290
10.3.1  Jelinski-Moranda模型 291
10.3.2  基于Jelinski-Moranda模型的其他模型 293
10.3.3  Littlewood模型 293
10.3.4  Littlewood-Verrall模型 294
10.3.5  非齐次Poisson过程模型 294
10.3.6  对模型的普遍评论 295
10.4  预测的准确性 295
10.4.1  处理偏倚:u-图 296
10.4.2  处理噪声 299
10.4.3  prequential似然函数 299
10.4.4  选择最佳的模型 302
10.5  软件可靠性增长预测的再校准 303
10.6  运行环境的重要性 307
10.7  软件可靠性的其他方面 308
10.8  小结 310
10.9  习题 311
10.10  补充读物 312
第11章  资源测量:生产率、团队和工具 314
11.1  生产率的含义 314
11.2  要测量哪些生产率 316
11.3  生产率测量 317
11.4  团队、工具和方法 320
11.4.1  团队结构 321
11.4.2  人员经验 322
11.4.3  方法和工具 323
11.5  小结 325
11.6  习题 326
11.7  补充读物 326
第12章  过程预测 328
12.1  优良的估计 328
12.1.1  什么是估计 328
12.1.2  评价估计的准确性 330
12.2  成本估计:问题和方法 332
12.2.1  成本估计问题 332
12.2.2  成本估计的通行方法 333
12.2.3  自底向上或自顶向下的估计 333
12.3  工作量和成本模型 334
12.3.1  基于回归技术的模型 335
12.3.2  COCOMO模型 336
12.3.3  Putnam的SLIM模型 340
12.3.4  多项目模型 341
12.4  现有建模方法存在的问题 342
12.4.1  模型结构 342
12.4.2  极度复杂的模型 343
12.4.3  产品规模估计 344
12.5  解决目前所采用估计方法存在的问题 344
12.5.1  本地数据定义 344
12.5.2  校准 345
12.5.3  独立估计小组 345
12.5.4  减少输入的主观性 345
12.5.5  初步估计和重新估计 345
12.5.6  成本估计的可选择的规模度量 347
12.5.7  本地开发的成本模型 348
12.6  过程预测的含义 349
12.7  小结 351
12.8  习题 351
12.9  补充读物 352
第三部分  测量与管理
第13章  测量程序规划 354
13.1  何谓度量计划 354
13.2  “为什么”与“什么”:开发目标、问题和度量 355
13.2.1 其他测量框架 356
13.3  何时及何处:将度量映射到活动 364
13.4  如何:测量工具 365
13.5  谁:测量者、分析者和受影响者 366
13.5.1 不同视角 367
13.5.2 角色与职责 367
13.6  修订计划 369
13.7  小结 370
13.8  习题 370
13.9  补充读物 371
第14章  测量实践 372
14.1  成功准则 372
14.2  小型测量 375
14.3  大型测量 381
14.3.1  美国国家航空航天局—戈达德航天中心 381
14.3.2  惠普 382
14.3.3  Contel 385
14.3.4  西门子 385
14.3.5  日立 388
14.4  经验教训 389
14.4.1  度量 391
14.4.2  人员 391
14.4.3  程序 391
14.4.4  实现 391
14.5  小结 392
14.6  习题 392
14.7  补充读物 394
第15章  软件工程实证研究 395
15.1  实证研究问题 395
15.1.1  经验主义与倡导者 396
15.1.2  优良的实验设计 396
15.1.3  模拟环境与真实环境 397
15.1.4  差的测量与优良的测量 397
15.1.5  短期审视与长期审视 398
15.2  研究产品 398
15.2.1  软件结构和维护 398
15.2.2  规模、结构和质量 399
15.3  研究资源 402
15.4  研究过程 404
15.4.1  净室研究 404
15.4.2  面向对象 405
15.4.3  审查 405
15.5  测量的现在和未来 406
15.5.1  大量减少度量数量 406
15.5.2  技术引入效果的测量 407
15.5.3  组织实证研究体系 408
15.6  小结 409
15.7  习题 409
15.8  补充读物 409
附录 A  部分习题答案 411
附录 B  度量工具 426
附录 C  缩略词和术语表 428
参考文献(附评注) 430

教学资源推荐
作者: Larry Snyder; Calvin Lin
作者: 王春生 刘艺 等编著
参考读物推荐
作者: [美] 布鲁斯·拉特纳(Bruce Ratner) 著
作者: (美)Peter Zadrozny Raghu Kodali 著
作者: 苏生
作者: 翟翌翚 编著