內容簡介
《軟體質量經濟學》是軟體工程領域的泰斗瓊斯多年心血的結晶。書中詳細論述了軟體質量和改進軟體質量的各種經驗方法,提供了有價值的行業數據,並進行了軟體質量的經濟學分析。
書中提供了有關高質量和低質量如何影響軟體項目進度、人員配備、開發成本和維護成本的定量數據,有助於項目設定質量目標並進行跟蹤,有助於項目在儘快交付與商業風險之間做出權衡。
作者簡介
作者:(美國)瓊斯(Capers Jones) (法國)Olivier Bonsignour 譯者:廖彬山 張永明 崔曼
廖彬山,先後就讀於南京大學數學系和北京航空航天大學計算機科學與技術系。現為美國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
2.2使用功能點度量方法來量化潛在缺陷27
2.3軟體潛在缺陷28
2.3.1軟體需求的專門案例32
2.3.2軟體需求的起源35
2.3.3軟體需求的規模、結構和完整性37
2.3.4最小化軟體需求缺陷39
2.3.5軟體需求缺陷結論45
2.3.6編碼缺陷的專門案例46
2.2估計軟體缺陷預防51
2.3估計軟體缺陷檢測和缺陷清除53
2.4度量應用程式結構質量55
2.4.1度量可靠性56
2.4.2度量性能效率57
2.4.3度量安全性57
2.4.4度量可維護性58
2.4.5度量規模59
2.4.6應用程式結構質量度量屬性總結59
2.5結構質量評估案例62
2.5.1繞過架構63
2.5.2無法控制處理的數據量64
2.5.3應用程式資源失衡65
2.5.4安全弱點66
2.5.5缺乏防禦機制67
2.5.6對評估結構質量的系統的要求67
2.6歪曲軟體經濟學分析的三大問題68
2.6.1軟體歷史數據的泄漏69
2.6.2loc度量方法的經濟學問題74
2.6.3單位缺陷成本度量方法的經濟學問題78
2.6.4案例a:質量低劣79
2.6.5案例b:質量良好79
2.6.6案例c:零缺陷80
2.6.7預測軟體潛在缺陷的有用經驗法則81
2.7總結和結論82
第3章軟體缺陷預防84
3.1引言84
3.1.120世紀70年代ibm進行缺陷預防研究的早期歷史84
3.1.2缺陷預防方法的協同組合89
3.1.3潛在缺陷和缺陷起源90
3.1.4缺陷預防、模式、認證的可重用材料94
3.1.5軟體缺陷預防和應用程式規模95
3.2缺陷預防結果的分析96
3.2.1敏捷嵌入式用戶97
3.2.2自動化的質量預測97
3.2.3軟體質量數據的基準98
3.2.4能力成熟度模型集成(cmmi)99
3.2.5認證方案100
3.2.6單位缺陷成本度量101
3.2.7質量成本104
3.2.8圈複雜度度量(及相關的複雜度度量)106
3.2.9缺陷度量和缺陷跟蹤111
3.2.10正式審查113
3.2.11功能點質量度量116
3.2.12iso質量標準、ieee質量標準及其他行業標準121
3.2.13質量功能展開(qfd)124
3.2.14風險分析126
3.2.15六西格瑪132
3.2.16靜態分析133
3.3總結和結論135
第4章測試前缺陷清除136
4.1引言136
4.2小型項目的測試前缺陷清除139
4.3大型系統的測試前缺陷清除143
4.4測試前缺陷清除活動的分析148
4.4.1個人桌面檢查148
4.4.2非正式的同行評審149
4.4.3文檔的自動化文本檢查150
4.4.4正確性證明156
4.4.5scrum會議158
4.4.6pokayoke159
4.4.7kaizen161
4.4.8結對編程164
4.4.9規格說明書的客戶評審166
4.4.10獨立驗證和確認168
4.4.11sqa評審169
4.4.12階段評審174
4.4.13審查(需求、架構、設計、代碼及其他可交付成果)176
4.4.14用戶文檔的編輯和校對187
4.4.15原始碼的自動靜態分析189
4.5總結和結論195
第5章軟體測試196
5.1引言196
5.1.1黑盒與白盒測試205
5.1.2功能和非功能測試206
5.1.3自動化和手動測試206
5.1.4軟體測試通用形式的討論207
5.1.5子例程測試207
5.1.6psp/tsp單元測試208
5.1.7xp單元測試208
5.1.8單元測試209
5.1.9新功能測試210
5.1.10回歸測試210
5.1.11集成測試211
5.1.12系統測試212
5.1.13專門的軟體測試213
5.1.14壓力或容量測試214
5.1.15性能測試214
5.1.16病毒防護測試215
5.1.17滲透測試217
5.1.18安全性測試218
5.1.19平台測試219
5.1.20供應鏈測試219
5.1.21淨室測試220
5.1.22訴訟測試220
5.1.23雲測試221
5.1.24soa測試221
5.1.25獨立測試222
5.1.26本土化測試222
5.1.27案例研究測試223
5.1.28涉及用戶或客戶的測試形式224
5.1.29敏捷測試224
5.1.30可用性測試224
5.1.31現場beta測試225
5.1.32實驗室測試226
5.1.33客戶驗收測試226
5.1.34測試計畫編制227
5.1.35測試用例設計方法227
5.1.36測試用例中的錯誤和bug229
5.1.37軟體項目的測試階段數229
5.1.38按行業和軟體類型分類的不同測試模式230
5.1.39按應用程式規模分類的不同測試模式233
5.1.40在指控質量低劣的訴訟案中記錄的測試階段234
5.1.41使用功能點估算測試用例數235
5.1.42使用功能點估算測試人員的數量238
5.1.43使用功能點估算測試工作量和成本240
5.1.44由開發人員或由專業測試人員執行的測試244
5.2總結和結論245
第6章發布後缺陷清除247
6.1引言247
6.1.1發布後缺陷嚴重程度等級248
6.1.2從結構質量的觀點看嚴重程度等級250
6.1.3軟體的可維護性255
6.1.4按軟體應用程式用戶分類的缺陷發現率257
6.1.5無效缺陷報告258
6.1.6發生在獨特情況下的暫時擱置的缺陷260
6.1.7很多客戶報告的重複缺陷260
6.1.8第一年缺陷發現率261
6.1.9度量dde和dre262
6.1.10發布後缺陷報告的變化263
6.1.11報告軟體缺陷的方法的變化266
6.1.12缺陷在報告後由誰修復269
6.1.13案例1:開發人員負責缺陷修復269
6.1.14案例2:維護專家負責缺陷修復270
6.1.15案例研究對比270
6.1.16由低劣質量引起的訴訟271
6.1.17發布後的缺陷修復成本模式272
6.1.18參與缺陷修復的軟體職業團隊273
6.1.19檢查發布後缺陷修復的自變數277
6.1.20按功能點計算的應用程式規模278
6.1.21軟體應用程式中容易出錯模組284
6.2來自發布後缺陷的用戶和行業的成本286
6.2.1安全漏洞對企業和政府機構的影響289
6.2.2用於缺陷報告和修復安裝的客戶後勤290
6.2.3案例1:一個小公司的小型應用程式292
6.2.4案例2:大公司的大型應用程式293
6.2.5在維護和發布後缺陷修復中的度量問題296
6.3總結和結論300
第7章軟體質量的經濟學分析301
7.1引言301
7.2軟體的經濟價值302
7.2.1度量價值的方法302
7.2.2資金投入批准和應用程式規模308
7.2.3軟體構建難度對軟體質量的影響309
7.2.4來自於軟體的收入產生313
7.2.5軟體行業和其他行業之間的差異315
7.2.6軟體帶來的成本降低316
7.3低質量和高質量軟體的經濟影響320
7.3.1軟體開發和維護321
7.3.2軟體作為市場上銷售的商品321
7.3.3軟體作為減少人力的一種方法322
7.3.4軟體和創新性的新型產品322
7.3.5技術債務:度量軟體質量對軟體成本影響的方法324
7.3.6量化商業價值的框架327
7.3.7超越功能質量330
7.3.8軟體結構對質量的影響330
7.3.9員工培訓對質量的影響331
7.3.10職業資格認證對質量的影響332
7.3.11技術投資對質量的影響332
7.3.12項目管理對質量的影響333
7.3.13質量控制方法論和工具對質量的影響334
7.3.14高質量和低質量對軟體進度的影響336
7.3.15高質量和低質量對軟體人員配置的影響337
7.3.16高質量和低質量對軟體開發工作量的影響338
7.3.17高質量和低質量對開發生產率的影響339
7.3.18高質量和低質量對軟體開發成本的影響339
7.3.19高質量和低質量對每個功能點的開發成本的影響340
7.3.20高質量和低質量對項目取消率的影響341
7.3.21高質量和低質量對取消項目的時間安排的影響341
7.3.22高質量和低質量對取消的項目工作量的影響343
7.3.23高質量和低質量對相對平均項目的工作量的影響343
7.3.24高質量和低質量對軟體測試階段的影響344
7.3.25高質量和低質量對測試占開發百分比的影響346
7.3.26高質量和低質量對每個功能點的測試用例的影響347
7.3.27高質量和低質量對創建的測試用例數的影響347
7.3.28高質量和低質量對測試覆蓋的影響348
7.3.29專業測試人員對高質量和低質量的影響349
7.3.30高質量和低質量對軟體潛在缺陷的影響350
7.3.31高質量和低質量對總體軟體缺陷的影響352
7.3.32高質量和低質量對dde的影響352
7.3.33高質量和低質量對dre的影響353
7.3.34高質量和低質量對總缺陷清除的影響354
7.3.35高質量和低質量對已交付給客戶的缺陷的影響355
7.3.36高質量和低質量對每功能點交付的缺陷的影響355
7.3.37高質量和低質量對交付的缺陷嚴重程度等級的影響355
7.3.38高質量和低質量對每功能點嚴重缺陷數的影響357
7.3.39高質量和低質量對軟體可靠性的影響357
7.3.40高質量和低質量對維護和支持的影響358
7.3.41高質量和低質量對維護和支持成本的影響359
7.3.42高質量和低質量對維護缺陷容量的影響360
7.3.43高質量和低質量對軟體改進的影響361
7.3.44高質量和低質量對改進成本的影響362
7.3.45高質量和低質量對維護和改進人員配置的影響363
7.3.46高質量和低質量對5年的總工作量的影響363
7.3.47高質量和低質量對tco的影響366
7.3.48高質量和低質量對coq的影響369
7.3.49高質量和低質量對每個功能點的tco和coq的影響372
7.3.50高質量和低質量對應用程式使用壽命的影響376
7.3.51高質量和低質量對軟體應用程式有形資產價值的影響377
7.3.52高質量和低質量對roi的影響378
7.3.53高質量和低質量對於被取消項目的影響378
7.3.54高質量和低質量對取消成本差異的影響379
7.3.55高質量、平均質量和低質量的軟體項目的分布380
7.4總結和結論381
7.4.1對於10000個功能點的高質量結果381
7.4.210000個功能點的低質量軟體結果382
參考文獻和延伸閱讀384
名人推薦
“不論是在做諮詢、做項目還是教學,只要我需要可靠的、詳細的、相關的度量方法以及對軟體工程職業當前的能力和表現的洞察力時,我都會首先去讀Capers Jones的著作。在這本重要的新書中,他和Olivier Bonsignour將基於實際經驗的經濟學案例與事實、數據結合起來。說明了為何軟體質量如此重要。我知道我將會一次又一次地向本書尋求幫助。”
——Rex Black.RBCS總裁