內容簡介
本書詳細介紹了更節省成本、更快交付、更好用的綜合軟體開發技術——可信軟體設計(DFTS),該技術可在早期解決軟體質量問題,使軟體質量管理目標變成預防在實施階段產生bug,而不是在中後期發現和修復bug。這種技術的可信之處在於在未編寫代碼的情況下就能實施軟體質量管理。
這種面向客戶的綜合技術在成本、質量和交付進度等方面提供突破性成果,可以滿足甚至超越客戶期望。作者不僅描述可信軟體設計所包含的原理,而且闡釋在面對實際軟體設計問題時,如何套用它來解決問題,同時綜合介紹了6個使用軟體質量管理技巧的研究案例,覆蓋DFTS技術的方方面面,包括CoSQ、AHP、TRIZ、FMEA、QFD和田口法。除此之外,還為讀者提供了大量的習題和練習,以幫助讀者真正理解這些知識。
本書可作為企業組織範圍內的學習教材,也可作為DFTS黑帶、大師級黑帶認證課程的培訓教材。它能使你快速掌握DFTS技術,從而快速和成功地實施DFTS。
本書主要內容:
•計畫、構建、維護和改進可信軟體開發系統。
•在獨一無二的軟體開發環境中,運用質量、領導力、學習和管理的最佳實踐。
•傾聽客戶心聲,引導用戶期望,開發出易用和可靠的軟體產品。
•重點關注可靠性、可信任性、可用性和可升級性等以客戶為中心的問題。
•激勵員工擁有強大的設計創意和創新力。
•確認、驗證、評估、集成和維護可信軟體。
•分析軟體質量的經濟成本影響。
•為實施DFTS培養你的領導力和企業內部結構管理能力。
無論你從事的是企業自主軟體開發、外包、諮詢還是提供技術支持的工作,可信軟體設計都會幫助你改進軟體質量。從開發人員到項目領導者,從軟體總架構師到客戶,可信軟體設計都能為整個軟體行業從業人員和質量管理人員提供有突破性進展的軟體解決方案。
作者簡介
Bijay K. Jayaswal
資深軟體開發專家和軟體質量管理專家,Agilenty ConsultingGroup公司CEO,擔任高級管理崗位工作並提供企業質量管理、市場戰略制定方面的諮詢業務超過25年。專注於價值工程、過程改進以及產品研發等領域,他教授過MBA和高級管理課程,以及幫助過很多企業引入企業級的再造工程和6 Sigma計畫。
Peter C. Patton
資深軟體開發專家和軟體質量管理專家,Agilenty ConsultingGroup公司董事長,聖托馬斯大學量化分析和計算機科學系教授,擁有30多年的質量管理經驗和50多年的軟體開發經驗。曾擔任過賓夕法尼亞大學CIO和Lawson軟體公司CTO。
譯者簡介
吳峻申
資深IT技術實踐者和研究者,近十餘年來一直參與IT項目開發,擁有豐富經驗。2001年畢業於上海大學計算機工程系(現計算機科學與技術專業)。業餘時間潛心於技術的鑽研,熱衷於分享IT技術。曾與人合著《Java Web整合開發實例精通》,翻譯出版《解析與實踐》。主要關注Java、PMP、Linux、Ubuntu、精益與敏捷、大數據、雲計算等領域。目前正在翻譯一本有關大數據的書籍。
目錄
譯者序
序
前言
第一部分 當今軟體開發過程與不足之處,以及可信軟體的挑戰
第1章 當今軟體開發方法論 1
1.1 軟體開發:需要一種新模式 2
1.2 軟體開發策略和生命周期模型 5
1.2.1 構建–修復模型 6
1.2.2 瀑布模型 7
1.2.3 快速原型模型7
1.2.4 增量模型 8
1.2.5 極限編程 10
1.2.6 螺旋模型 10
1.2.7 面向對象編程11
1.2.8 疊代開發或漸進模型 13
1.2.9 不同軟體生命周期模型比較 13
1.3 軟體過程改進 13
1.3.1Rational統一過程 14
1.3.2 能力成熟度模型 14
1.3.3ISO 9000-3軟體開發指導準則 15
1.3.4 比較RUP、CMM和ISO 9000 17
1.4ADR法 18
1.5 健壯性軟體開發過程的七要素 18
1.6 健壯性軟體開發模型 19
1.7 關鍵點 20
1.8 補充資料 21
1.9Internet練習 21
1.10 問題回顧21
1.11 問題和項目討論 22
1.12 參考文獻22
第2章 開發可信軟體的挑戰:軟體開發環境下的健壯性設計 23
2.1 軟體可靠性:神話與現實 23
2.1.1 軟體開發和產品製造之間的相似和不同之處 24
2.1.2 軟體和硬體可靠性比較 25
2.1.3 引發軟體不可靠性的原因 26
2.2 傳統質量控制體系的局限性 27
2.3 日本質量管理體系和田口法 28
2.4 健壯性設計中田口法的本質 33
2.4.1 信噪比概念 34
2.4.2 質量損耗函式概念 35
2.4.3 健壯性設計概念 36
2.5 軟體可靠性挑戰:可信軟體設計 37
2.6 健壯性軟體開發模型:實踐中的DFTS過程39
2.7 關鍵點 41
2.8 補充資料 42
2.9Internet練習 42
2.10 問題回顧43
2.11 問題和項目討論 43
2.12 參考文獻44
第3章 軟體質量度量標準 45
3.1 軟體質量度量方式 45
3.2 經典軟體質量度量標準 46
3.3 全面質量管理 47
3.4 通用軟體質量度量 48
3.4.1 度量標準方法48
3.4.2 軟體測試過程中的質量度量標準 49
3.4.3 軟體複雜度度量標準 50
3.4.4 軟體科學 51
3.4.5 圈複雜度 52
3.4.6 功能點度量標準 53
3.4.7 可用性和客戶滿意度度量標準54
3.5 目前的度量標準和技術模型 55
3.6 架構設計和評估中的新度量標準 57
3.7 架構設計中普遍存在的問題 58
3.8OOAD中的度量標準模式 59
3.9 關鍵點 60
3.10 補充資料60
3.11Internet練習 61
3.12 問題回顧61
3.13 問題和項目討論 61
3.14 參考文獻61
第4章 可信軟體經濟觀點 63
4.1 為什麼DFTS需要不同的經濟分析方法 63
4.2 成本和質量:過去和現在 64
4.3 軟體質量成本 66
4.3.1 質量成本分析優點 67
4.3.2 質量任務成本67
4.3.3 軟體質量成本的分類 69
4.3.4 建立CoSQ匯報系統 73
4.3.5 質量投資回報效益 74
4.3.6 貼現現金流法75
4.3.7CoSQ分析價值 75
4.3.8CoSQ計畫中的誤區75
4.4 軟體生命周期中的軟體質量成本 76
4.5CoSQ和作業基準成本法 80
4.5.1 軟體企業組織中的ABC 80
4.5.2 啟動軟體企業組織中的ABC 81
4.5.3ABC優點 81
4.6 軟體質量損耗函式 82
4.7DFTS投資的經濟評估 82
4.7.1DFTS評估度量標準83
4.7.2 為DFTS計畫建立經濟評估框架 83
4.8 關鍵點 85
4.9 補充資料 85
4.10Internet練習 85
4.11 問題回顧86
4.12 問題討論86
4.13 問題 87
4.14 參考文獻88
第5章 DFTS企業組織化結構和領導力管理 89
5.1 部署DFTS的企業組織面臨的挑戰 89
5.2DFTS執行框架 90
5.2.1 第1步:樹立管理意識並引入DFTS92
5.2.2 第2步:與高級管理層溝通達成共識並獲取他們的承諾 94
5.2.3 第3步:識別DFTS計畫的潛在誤區 94
5.2.4 第4步:為建立關注質量的企業奠定哲學基礎101
5.2.5 第5步:構建企業組織化基礎設施 103
5.2.6 第6步:理解關鍵人員角色 103
5.2.7 第7步:設計支持性的企業組織結構 111
5.2.8 第8步:建立有效溝通的機制111
5.2.9 第9步:建立合理的獎勵機制112
5.2.10 第10步:確定軟體質量成本113
5.2.11 第11步:規劃並啟動整個企業組織範圍內的學習過程 114
5.2.12 第12步:執行DFTS模型 114
5.2.13 第13步:監控學習和改進過程並獲取反饋 115
5.2.14 第14步:鞏固改進過程和所積累的經驗 117
5.2.15 第15步:整合併推廣計畫 117
5.3 匯總 118
5.4 關鍵點 118
5.5 補充資料 121
5.6Internet練習 121
5.7 問題回顧 121
5.8 問題和項目討論 122
5.9 參考文獻 123
第二部分 可信軟體設計的工具和技術
第6章 質量管理的七大基本(B7)工具 125
6.1B7工具 126
6.2DFTS背景下的B7 129
6.3 其他DFTS工具、技巧和方法論 130
6.4 流程圖 131
6.4.1 高級流程圖 132
6.4.2 詳細流程圖 132
6.4.3 泳道流程圖 133
6.5 帕累托圖 133
6.6 因果圖 133
6.6.1 繪製確定原因的因果圖 135
6.6.2 過程分類因果圖 136
6.7 散點圖 137
6.8 檢查表 140
6.9 直方圖 140
6.9.1 確定分布規律141
6.9.2 確定是否滿足規約 142
6.9.3 通過分層法來比較數據 142
6.10 圖表 142
6.11 控制圖 143
6.12 關鍵點 144
6.13 補充資料146
6.14 問題回顧146
6.15 問題討論146
6.16 參考文獻146
第7章 七大MP工具:分析和解釋定性及可表達化數據 148
7.1N7和七大MP工具 149
7.2 七大MP工具的典型套用 150
7.3 親和圖 152
7.4 相互關係圖(I.D.) 155
7.5 樹形圖 156
7.6 優先權矩陣 159
7.7 矩陣圖 159
7.8 過程決策程式圖 159
7.9 活動網路圖 161
7.10 七大MP工具行為技巧 161
7.11 關鍵點 162
7.12 補充資料162
7.13 問題回顧162
7.14 問題和項目討論 163
7.15 參考文獻163
第8章 層次分析法165
8.1 優先權、複雜性和層次分析法 165
8.2 多目標決策制定和AHP 166
8.2.1 術語 168
8.2.2 結構化目標層次 168
8.2.3 決策層次 170
8.3 使用專家選擇的解決方案 171
8.3.1 第1步:頭腦風暴和構建問題的層次模型 171
8.3.2 第2步:為目標推導出比例大小的優先次序 172
8.3.3 第3步:推導出與各目標相關的可選方案的優先次序 174
8.3.4 第4步:綜合177
8.4 使用手工粗略計算AHP的解決方案 180
8.4.1 粗略計算解決方法1 180
8.4.2 粗略計算解決方法2:Brassard優先次序全面分析標準法 185
8.5 結論 187
8.6 關鍵點 188
8.7 補充資料 188
8.8Internet練習 188
8.9 問題回顧 189
8.10 問題和項目討論 189
8.11 問題 190
8.11.1 問題1:系統轉化過程中的複雜度管理 190
8.11.2 問題2:在一高科技創業型公司中管理軟體複雜度 191
8.11.3 問題3:病歷系統中的複雜度 192
8.11.4 問題4:石油鑽探決策系統 193
8.11.5 問題5:ROI問題 194
8.11.6 問題6:抽象的複雜度分析 194
8.11.7 問題7:複雜度的影響 195
8.12 參考文獻195
第9章 軟體開發過程中的複雜度、錯誤和Poka Yoke 197
9.1 作為質量控制系統的Poka Yoke 198
9.2Poka Yoke原則 198
9.3 導致缺陷產生的原因:差異、錯誤和複雜度 199
9.4 成功部署Poka Yoke的幾種情況 201
9.5 作為缺陷原因的錯誤 201
9.6 控制軟體開發中的複雜度 203
9.7 錯誤、檢測方法和Poka Yoke 205
9.8 實施Poka Yoke體系 206
9.9 確認Poka Yoke體系 208
9.10 關鍵點 209
9.11 補充資料210
9.12Internet練習 211
9.13 問題回顧211
9.14 問題和項目討論 211
9.15 參考文獻211
第10章 軟體開發智慧型管理的5S法213
10.15S:邁向多產的工作環境的巨大一步 214
10.25S系統各執行階段 215
10.2.1 第1階段:篩選/清理 215
10.2.2 第2階段:整頓/井井有條 215
10.2.3 第3階段:清潔/清掃 215
10.2.4 第4階段:標準化215
10.2.5 第5階段:維持清潔/規範 216
10.35S系統和DFTS過程 216
10.4 克服阻力219
10.5 執行5S 220
10.5.1 第1步:管理層的介入 220
10.5.2 第2步:培訓和執行 220
10.5.3 第3步:與獎勵系統相關聯 220
10.5.4 第4步:進行後續和持續的改進 221
10.6 關鍵點 221
10.7 補充資料222
10.8Internet練習 222
10.9 問題回顧222
10.10 問題和項目討論 222
10.11 參考文獻 223
第11章 理解客戶需求:軟體QFD和客戶心聲224
11.1QFD:起源和介紹 224
11.1.1QFD作為質量體系會有什麼不同 225
11.1.2QFD歷史 227
11.1.3 軟體QFD歷史 227
11.1.4 什麼是QFD,我們為什麼需要它 228
11.1.5 關注優先權次序 230
11.1.6QFD定義 231
11.1.7QFD實施 231
11.1.8QFD四階段模型 231
11.1.9 “質量屋”矩陣 233
11.2 套用於軟體的傳統QFD問題 236
11.2.1 傳統QFD失敗之處 236
11.2.2 “矩陣太大了” 237
11.2.3 “花的時間太長”237
11.2.4 “我們早就知道了” 238
11.3 軟體的現代化QFD 239
11.3.1Blitz QFD 240
11.3.2 七大管理和規劃工具 240
11.3.3 客戶滿意度和價值240
11.4Blitz QFD過程 241
11.4.1 第1步:關鍵的項目目標 243
11.4.2 第2步:關鍵客戶群 243
11.4.3 第3步:關鍵過程步驟 244
11.4.4 第4步:去現場 244
11.4.5 第5步:客戶需求是什麼 245
11.4.6 第6步:對客戶需求進行結構化 248
11.4.7 第7步:客戶需求結構分析 248
11.4.8 第8步:對客戶需求進行優先權排序 249
11.4.9 第9步:實現經過優先次序排序的客戶需求 250
11.4.10 後期部署:(只)對重要關係進行詳細分析 251
11.4.11 “質量屋”及其擴展 252
11.4.126 Sigma項目 253
11.4.13 後續工作:套用、發展和改進過程 253
11.4.14 快速開發 253
11.4.15 關鍵鏈項目管理的進度部署254
11.5 實現軟體QFD 254
11.5.1QFD中的人員因素254
11.5.2QFD所面臨的挑戰與陷阱 255
11.5.3 如何實現軟體QFD257
11.6 結論 257
11.7 關鍵點 259
11.8 補充資料260
11.9Internet練習 260
11.10 問題回顧 261
11.11 問題和項目討論 262
11.12 參考文獻 263
11.13 關於作者 267
第12章 軟體設計過程中的創新:TRIZ和普氏概念選擇法 268
12.1DFTS創新需求268
12.2 創造力和TRIZ 269
12.3 軟體開發中的TRIZ 275
12.4TRIZ、QFD和田口法 277
12.5 頭腦風暴278
12.6 普氏概念選擇法 279
12.7 作為智慧財產權成果的軟體281
12.8 關鍵點 283
12.9 補充資料283
12.10Internet練習 284
12.11 問題回顧 284
12.12 問題和項目討論 284
12.13 參考文獻 284
第13章 軟體中的風險評估以及故障模式和影響分析 286
13.1FMEA:故障模式和影響分析 286
13.2 要在早期套用FMEA289
13.3 軟體故障樹分析 292
13.4 軟體故障模式及其原因 294
13.5DFTS各階段風險識別和評估 295
13.6 關鍵點 296
13.7 補充資料297
13.8Internet練習 297
13.9 問題回顧297
13.10 問題和項目討論 297
13.11 參考文獻 297
第14章 對象、組件技術及其他軟體開發工具 299
14.1 企業級業務套用中所面對的幾種主要挑戰299
14.2 面向對象分析、設計和編程 300
14.3 基於組件的軟體開發技術306
14.4 極限編程的生產率 309
14.5N版本編程的可靠性 309
14.5.1NVP的優勢 310
14.5.2NVP的劣勢 311
14.6 現代化編程環境 311
14.7 計算機自動化編程的趨勢314
14.8 關鍵點 316
14.9 補充資料317
14.10Internet練習 317
14.11 問題回顧 317
14.12 問題和項目討論 317
14.13 參考文獻 317
第三部分 可信軟體設計
第15章 可信軟體質量測量和數據統計方法 319
15.1 可信軟體320
15.2 微軟公司的可信計算計畫321
15.3 軟體開發過程中的統計過程控制 322
15.4 軟體架構的統計方法 327
15.5 關鍵點 330
15.6 補充資料330
15.7Internet練習 330
15.8 問題回顧330
15.9 問題和項目討論 331
15.10 問題 331
15.11 參考文獻 331
第16章 健壯性軟體背景介紹 332
16.1 軟體規約過程 332
16.2 何為健壯性軟體 335
16.3 讓軟體健壯的需求 336
16.4 軟體健壯性指標 337
16.5 關鍵點 338
16.6 補充資料339
16.7Internet練習 339
16.8 問題回顧339
16.9 問題和項目討論 339
16.10 問題 339
16.11 參考文獻 340
第17章 用於健壯性軟體的田口法及其最佳化 341
17.1 用於健壯性軟體設計的田口法 341
17.2 工程設計實例 344
17.3 軟體設計與開發實例 346
17.4 用於田口參數設計實驗中的正交矩陣 350
17.5 可信軟體設計套用 352
17.6 關鍵點 352
17.7 補充資料353
17.8Internet練習 353
17.9 問題回顧353
17.10 問題討論 353
17.11 問題 353
17.12 參考文獻 353
第18章 確認、驗證、測試和評估可信度355
18.1 持續的開發生命周期 355
18.2 驗證 357
18.3 確認 360
18.4 測試和評估 363
18.5 關鍵點 366
18.6 補充資料367
18.7Internet練習 367
18.8 問題回顧367
18.9 問題和項目討論 367
18.10 問題 368
18.11 參考文獻 368
第19章 可信度的集成、擴展和維護 369
19.1 完成開發生命周期 369
19.2 集成 370
19.3 擴展 371
19.4 維護 372
19.5 關鍵點 375
19.6 補充資料375
19.7Internet練習 375
19.8 問題回顧375
19.9 問題和項目討論 375
19.10 問題 376
19.11 參考文獻 376
第四部分 綜合運用:DFTS計畫部署
第20章 為DFTS進行的組織準備 377
20.1 反覆思索378
20.2 轉型計畫中的領導力挑戰385
20.3 評估關鍵組織化元素 386
20.3.1 建立領導承諾 386
20.3.2 了解領導角色 387
20.3.3 評估戰略關係 388
20.3.4 確保整個企業組織參與 388
20.3.5 了解客戶關注的需求 388
20.3.6 評估現有質量管理能力 389
20.4 關鍵點 389
20.5 補充資料391
20.6Internet練習 391
20.7 問題回顧391
20.8 問題和項目討論 391
20.9 參考文獻392
第21章 DFTS計畫啟動 393
21.1DFTS和PICS框架 394
21.2 規劃 395
21.3 執行 396
21.3.1 第11步:啟動整個企業組織範圍內的學習過程 396
21.3.2 第12步:執行DFTS技術:學習和套用過程 398
21.4 控制 401
21.4.1 第13步:反饋控制體系 404
21.4.2 項目管理 409
21.5 安全保證410
21.5.1 第14步:總結改進過程和所積累的經驗 410
21.5.2 第15步:整合併推廣計畫 410
21.6 在小型軟體公司和“電子山寨”中的使用情況 415
21.7 下一個是什麼 416
21.8 關鍵點 417
21.9 補充資料418
21.10Internet練習 418
21.11 問題回顧 419
21.12 問題討論 419
21.13 參考文獻 420
第五部分 6個研究案例
第22章 雷神電子系統公司(RES)的軟體質量成本(CoSQ)套用 424
22.1 簡介 424
22.2RES及其改進計畫 424
22.3 軟體質量成本 425
22.3.1RES的CoSQ模型 425
22.3.2CoSQ數據收集 426
22.4 經驗教訓426
22.4.1CoSQ模型使用教訓 426
22.4.2 使用CoSQ數據來了解改進的影響 426
22.4.3CoSQ成本和收益 429
22.4.4CoSQ追蹤記錄製度化 429
22.5 研究案例啟迪 429
22.6 參考文獻430
第23章 IT項目群整合 431
23.1 第一部分:挑戰 431
23.1.1 疊代過程的五個階段 432
23.1.2 客觀性、主觀性和質量 434
23.2 第二部分:一個新的合理方法 434
23.2.1 第1步:設計 435
23.2.2 第2步:複雜度結構化—關注目標435
23.2.3 第3步:度量方式435
23.2.4 第4步:綜合 439
23.2.5 第5步:最佳化 440
23.3 風險 442
23.4 擴展 443
23.5 小結 444
23.6 參考文獻445
第24章 為全新產品定義客戶需求:用於創新軟體的QFD446
24.1 簡介 446
24.1.1 價值定義 447
24.1.2 為什麼不問 447
24.1.3 創新產品 448
24.2 全新需求定義 448
24.2.1 客戶需求定義方法448
24.3 工具 453
24.3.1QFD的七大管理和規劃工具 453
24.3.2 思考過程 454
24.4 最後幾步455
24.5 阻力層次456
24.6 結論 458
24.7 致謝 458
24.8 參考文獻 458
24.9 關於作者460
第25章 Jurassic QFD:集成服務和產品質量功能部署 461
25.1MD Robotics公司介紹 461
25.2 為什麼要用QFD 462
25.2.1QFD歷史 462
25.2.2Kano需求 463
25.3 佛羅里達冒險島環球工作室在場景製作中的QFD套用 464
25.3.1QFD模板 465
25.3.2 客戶心聲分析 465
25.3.3 情緒信息實施 468
25.3.4 肢體動作實施 470
25.3.5 工程需求實施 471
25.4 小結 472
25.5 關於作者473
25.6 參考文獻473
第26章 QFD項目:使用Blitz QFD更好地管理軟體開發項目 475
26.1 簡介 475
26.1.1 失敗 476
26.1.2 部分成功 476
26.1.3QFD定義 476
26.1.4 正確啟動 477
26.2 新開發過程中的問題 477
26.2.1 沒有條理的開發是低效的 477
26.2.2 有條理的開發是有效的 478
26.3 關注QFD項目的價值 480
26.4 小結 489
26.5 致謝 490
26.6 參考文獻490
26.7 關於作者492
第27章 QFD2000:集成QFD和其他改進新產品開發過程的質量管理方法493
27.1 新產品需求 493
27.2 質量和新產品的開發 494
27.2.1 現代質量工具 495
27.2.2 新產品開發過程 496
27.3QFD資料和其他質量管理方法 499
27.4 關於作者504
27.5 參考文獻504
術語表 506