本書(shū)針對現代軟件工程的特點(diǎn),結合政府、金融、航空航天、制造及互聯(lián)網(wǎng)等行業(yè)特征,基于相關(guān)國際標準、國家標準和行業(yè)標準,建立了適用于軟件成本度量的體系方法和模型。本書(shū)共10章,闡述了軟件成本度量和造價(jià)的一般理論;引入了軟件規模估算技術(shù),包括NESMA、SNAP、COSMIC等方法的應用和實(shí)踐;分析了基準數據庫的建立及應用,包括生產(chǎn)率、費率、工作量、工期、質(zhì)量等數據收集、分析和應用方法;建立了軟件成本估算、造價(jià)分析模型,介紹了行業(yè)實(shí)施規則、整體案例等內容。本書(shū)可作為各行業(yè)從事軟件成本度量和造價(jià)分析工作人員的參考用書(shū),也可作為從事信息技術(shù)及軟件研發(fā)、軟件運維工作人員的學(xué)習用書(shū)。
李華北,賽寶認證中心技術(shù)總監,資深行業(yè)專(zhuān)家。在系統及軟件工程、項目管理、質(zhì)量管理、成本度量等多方面具有豐富的實(shí)踐經(jīng)驗,主持過(guò)多項軟件工程、嵌入式系統、信息管理系統及互聯(lián)網(wǎng)系統課題及標準的研究和開(kāi)發(fā)工作。同時(shí)長(cháng)期從事質(zhì)量管理工作,擅長(cháng)管理與技術(shù)的有機結合,尤其在過(guò)程改進(jìn)、軟件度量、造價(jià)分析等領(lǐng)域具有深厚的研究。
目錄
第1章 軟件成本度量及造價(jià)概論 1
1.1 軟件的地位和發(fā)展 1
1.1.1 軟件的定義 1
1.1.2 軟件的地位 9
1.1.3 軟件的發(fā)展 15
1.2 軟件成本度量及造價(jià) 20
1.2.1 軟件度量 20
1.2.2 軟件成本 24
1.2.3 軟件造價(jià) 27
1.2.4 實(shí)施意義 33
第2章 規模計數方法 36
2.1 功能點(diǎn)計數模型的發(fā)展和現狀 36
2.2 商務(wù)性軟件:IFPUG方法和模型 38
2.2.1 IFPUG功能點(diǎn)估算方法的由來(lái) 38
2.2.2 IFPUG方法的基本原理 38
2.2.3 IFPUG的具體計算方法 38
2.2.4 IFPUG方法的工作流程 40
2.3 一般軟件:NESMA方法和模型 42
2.3.1 NESMA背景及發(fā)展歷史 42
2.3.2 NESMA基本方法 43
2.3.3 NESMA主要的特點(diǎn) 44
2.4 嵌入式軟件:COSMIC-FFP方法和模型 45
2.4.1 COSMIC-FFP方法的起源與發(fā)展 45
2.4.2 COSMIC-FFP方法的基本原理 46
2.4.3 COSMIC-FFP方法的過(guò)程概述 47
2.5 非功能需求:SNAP方法和模型 48
2.5.1 SNAP方法的發(fā)展歷史 48
2.5.2 SNAP方法的目標及優(yōu)點(diǎn) 49
2.5.3 SNAP方法概述 50
2.6 各規模計數方法的比較及應用范圍 51
2.6.1 功能需求規模計數 51
2.6.2 非功能需求規模計數 54
第3章 NESMA應用 57
3.1 FPA分析基本步驟 57
3.1.1 第一步:收集可用的需求文檔 57
3.1.2 第二步:確定軟件用戶(hù) 60
3.1.3 第三步:確定估算類(lèi)型 61
3.1.4 第四步:識別功能部件并確定復雜度 64
3.1.5 第五步:與用戶(hù)驗證 65
3.1.6 第六步:與功能點(diǎn)專(zhuān)家驗證 65
3.2 指示功能點(diǎn)計數 65
3.2.1 內部邏輯文件 66
3.2.2 外部接口文件 68
3.2.3 FPA數據表 69
3.2.4 解規范化 71
3.2.5 指示功能點(diǎn)計數方法 75
3.3 估算功能點(diǎn)計數 76
3.3.1 基本過(guò)程 76
3.3.2 外部輸入 77
3.3.3 外部輸出 79
3.3.4 外部查詢(xún) 82
3.3.5 估算功能點(diǎn)計數方法 83
3.4 詳細功能點(diǎn)計數 83
3.4.1 確定相關(guān)參數 83
3.4.2 邏輯文件的復雜度 86
3.4.3 外部輸入的復雜度 87
3.4.4 外部輸出的復雜度 87
3.4.5 外部查詢(xún)的復雜度 87
3.4.6 功能復雜度對照表 88
3.4.7 詳細功能點(diǎn)計數方法 88
3.5 通用計數規則 88
3.6 規模調整 97
3.6.1 通用系統調整因子 97
3.6.2 需求變更的調整因子 98
3.7 NESMA與IFPUG的區別 98
3.8 實(shí)踐經(jīng)驗 100
3.8.1 需求的完整性補充 100
3.8.2 功能點(diǎn)規模的公平性 101
3.8.3 常見(jiàn)問(wèn)題 101
3.9 案例分析 102
3.9.1 指示功能點(diǎn)計數 102
3.9.2 估算功能點(diǎn)計數 103
3.9.3 詳細功能點(diǎn)計數 105
第4章 SNAP應用 107
4.1 SNAP背景及基本概念 107
4.1.1 SNAP方法的背景 107
4.1.2 SNAP方法的基本概念 108
4.2 基本原理 110
4.3 SNAP方法計數規則 111
4.3.1 確定評估目的、范圍、邊界和分區 112
4.3.2 關(guān)聯(lián)類(lèi)和子類(lèi)并計算每個(gè)SCU的非功能規模 113
4.3.3 計算非功能規模 132
4.4 SNAP方法的應用 133
4.4.1 內部數據備份和數據發(fā)送案例 133
4.4.2 用戶(hù)界面案例 134
第5章 COSMIC應用 136
5.1 COSMIC基本概念 136
5.2 功能性用戶(hù)需求的獲取 139
5.3 COSMIC的兩個(gè)基本模型 140
5.3.1 COSMIC 軟件環(huán)境模型 140
5.3.2 通用軟件模型 141
5.4 度量的基本過(guò)程 141
5.4.1 度量策略階段 143
5.4.2 映射階段 146
5.4.3 度量階段 148
5.5 COSMIC應用中存在的主要問(wèn)題及解決方法 150
5.5.1 COSMIC應用中存在的主要問(wèn)題 150
5.5.2 COSMIC應用中存在問(wèn)題的解決方法 153
5.6 COSMIC方法的應用 155
5.6.1 COSMIC的應用場(chǎng)景 155
5.6.2 COSMIC應用案例分析 156
第6章 基準數據庫的建立及應用 160
6.1 背景及目的 160
6.2 功能點(diǎn)字典 162
6.2.1 功能點(diǎn)字典的概念 163
6.2.2 建立功能點(diǎn)字典的方法 163
6.2.3 功能點(diǎn)字典的應用 164
6.2.4 功能點(diǎn)字典的樣例 165
6.2.5 更新功能點(diǎn)字典 165
6.2.6 功能點(diǎn)字典的應用案例 165
6.3 測量元定義 166
6.3.1 定義測量元的基本方法 166
6.3.2 相關(guān)國際、國內標準 168
6.3.3 常用的度量元集 168
6.4 基準數據分析的方法 172
6.5 基準數據庫的建立 173
6.6 基準數據庫的維護更新 175
6.7 基準比對方法 176
6.7.1 基準比對方法發(fā)展現狀 176
6.7.2 基準比對方法對軟件企業(yè)的作用和意義 177
6.7.3 基準比對方法實(shí)施流程 179
6.8 基準數據庫的實(shí)例 180
6.8.1 ISBSG的基本情況和提供的服務(wù) 181
6.8.2 CSBSG的基本情況和提供的服務(wù) 182
6.8.3 SPIBSP的基本情況和提供的服務(wù) 183
第7章 工作量和工期估算 188
7.1 工作量估算概述 189
7.2 工作量估算原則 190
7.3 工作量估算準備 194
7.4 工作量估算方法 198
7.4.1 類(lèi)推法 198
7.4.2 類(lèi)比法 199
7.4.3 基于專(zhuān)家經(jīng)驗的估算方法 202
7.4.4 WBS法 205
7.4.5 算法型估算方法 206
7.4.6 小結 231
7.5 工作量監控、測量與分析 232
7.5.1 工作量測量 233
7.5.2 工作量監控 234
7.5.3 工作量評價(jià)與改進(jìn) 235
7.5.4 工作量驗證 235
7.5.5 小結 236
7.6 工期估算 236
7.6.1 工期估算的原則與要點(diǎn) 237
7.6.2 工期估算過(guò)程 237
7.6.3 工期估算技術(shù) 241
7.7 項目進(jìn)度控制 245
7.7.1 進(jìn)度跟蹤 245
7.7.2 里程碑進(jìn)度 245
7.7.3 掙值法 246
7.7.4 進(jìn)度偏差分析 249
7.7.5 分析結果應用 251
第8章 成本估算 252
8.1 軟件項目成本管理 252
8.1.1 軟件項目成本管理的基本概念 252
8.1.2 軟件項目成本管理過(guò)程 252
8.1.3 軟件項目特點(diǎn) 253
8.1.4 軟件項目成本估算特點(diǎn) 254
8.2 軟件成本定義及構成 254
8.2.1 直接人力成本 256
8.2.2 直接非人力成本 256
8.2.3 間接人力成本 256
8.2.4 間接非人力成本 257
8.3 軟件成本估算的一般過(guò)程 257
8.4 軟件研發(fā)成本常用估算方法 260
8.4.1 專(zhuān)家判斷法 260
8.4.2 類(lèi)比法 260
8.4.3 COCOMO模型 260
8.4.4 功能點(diǎn)分析法 261
8.5 行業(yè)軟件成本估算模型 261
8.5.1 直接人力成本的估算 261
8.5.2 直接非人力成本的估算 262
8.5.3 間接人力成本的估算 263
8.5.4 間接非人力成本的估算 263
8.5.5 行業(yè)軟件研發(fā)成本估算模型 263
8.5.6 軟件成本估算過(guò)程 264
8.5.7 案例 266
8.6 成本測量 269
8.7 成本分析 270
8.8 數據應用 270
8.8.1 軟件成本估算常用的數據 271
8.8.2 企業(yè)自建基準 271
第9章 軟件造價(jià)分析 273
9.1 軟件產(chǎn)品及其價(jià)格的特點(diǎn) 274
9.1.1 軟件產(chǎn)品的特點(diǎn) 274
9.1.2 軟件定價(jià)的特點(diǎn) 275
9.2 影響軟件產(chǎn)品定價(jià)的主要因素 277
9.2.1 影響價(jià)格的內部因素 277
9.2.2 影響價(jià)格的外部因素 277
9.3 軟件產(chǎn)品的定價(jià)過(guò)程 278
9.4 軟件產(chǎn)品的定價(jià)方法 279
9.4.1 傳統的定價(jià)方法 279
9.4.2 SaaS定價(jià)方法 283
9.5 軟件產(chǎn)品的定價(jià)策略 283
9.5.1 撇脂定價(jià)策略 284
9.5.2 滲透定價(jià)策略 285
9.5.3 捆綁定價(jià)策略 285
9.5.4 交叉補貼定價(jià)策略 286
9.5.5 免費使用策略 287
9.5.6 “歧視”定價(jià)策略 287
9.5.7 尾數定價(jià)策略 288
9.5.8 小結 289
第10章 行業(yè)實(shí)施規則及整體案例分析 290
10.1 預算場(chǎng)景 290
10.1.1 制定預算的依據 291
10.1.2 估算方法 291
10.1.3 上報預算 295
10.1.4 審批預算 295
10.1.5 應用示例 295
10.2 招/投標場(chǎng)景 297
10.2.1 應用范圍 297
10.2.2 招標 297
10.2.3 投標 298
10.2.4 案例分享 299
10.3 項目計劃場(chǎng)景 308
10.3.1 項目規模估算在制訂項目計劃中的作用 308
10.3.2 項目計劃場(chǎng)景下估算的特點(diǎn) 309
10.3.3 項目計劃場(chǎng)景下的估算要點(diǎn) 309
10.3.4 項目計劃場(chǎng)景下的估算案例 314
10.3.5 軟件計劃估算的戒律 315
10.4 項目管理場(chǎng)景下的估算 316
10.4.1 采用功能點(diǎn)方法進(jìn)一步明確需求 317
10.4.2 在項目各階段對數據進(jìn)行采集 317
10.4.3 軟件研發(fā)成本分析 319
10.5 項目結算場(chǎng)景下的估算 321
10.5.1 結算分類(lèi) 321
10.5.2 項目結算估算方法 323
10.5.3 結算后數據的應用 327
附錄 329
參考文獻 336