目录
第1章 软件成本度量及造价概论 1
1.1 软件的地位和发展 1
1.1.1 软件的定义 1
1.1.2 软件的地位 9
1.1.3 软件的发展 15
1.2 软件成本度量及造价 20
1.2.1 软件度量 20
1.2.2 软件成本 24
1.2.3 软件造价 27
1.2.4 实施意义 33
第2章 规模计数方法 36
2.1 功能点计数模型的发展和现状 36
2.2 商务性软件:IFPUG方法和模型 38
2.2.1 IFPUG功能点估算方法的由来 38
2.2.2 IFPUG方法的基本原理 38
2.2.3 IFPUG的具体计算方法 38
2.2.4 IFPUG方法的工作流程 40
2.3 一般软件:NESMA方法和模型 42
2.3.1 NESMA背景及发展历史 42
2.3.2 NESMA基本方法 43
2.3.3 NESMA主要的特点 44
2.4 嵌入式软件:COSMIC-FFP方法和模型 45
2.4.1 COSMIC-FFP方法的起源与发展 45
2.4.2 COSMIC-FFP方法的基本原理 46
2.4.3 COSMIC-FFP方法的过程概述 47
2.5 非功能需求:SNAP方法和模型 48
2.5.1 SNAP方法的发展历史 48
2.5.2 SNAP方法的目标及优点 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 第二步:确定软件用户 60
3.1.3 第三步:确定估算类型 61
3.1.4 第四步:识别功能部件并确定复杂度 64
3.1.5 第五步:与用户验证 65
3.1.6 第六步:与功能点专家验证 65
3.2 指示功能点计数 65
3.2.1 内部逻辑文件 66
3.2.2 外部接口文件 68
3.2.3 FPA数据表 69
3.2.4 解规范化 71
3.2.5 指示功能点计数方法 75
3.3 估算功能点计数 76
3.3.1 基本过程 76
3.3.2 外部输入 77
3.3.3 外部输出 79
3.3.4 外部查询 82
3.3.5 估算功能点计数方法 83
3.4 详细功能点计数 83
3.4.1 确定相关参数 83
3.4.2 逻辑文件的复杂度 86
3.4.3 外部输入的复杂度 87
3.4.4 外部输出的复杂度 87
3.4.5 外部查询的复杂度 87
3.4.6 功能复杂度对照表 88
3.4.7 详细功能点计数方法 88
3.5 通用计数规则 88
3.6 规模调整 97
3.6.1 通用系统调整因子 97
3.6.2 需求变更的调整因子 98
3.7 NESMA与IFPUG的区别 98
3.8 实践经验 100
3.8.1 需求的完整性补充 100
3.8.2 功能点规模的公平性 101
3.8.3 常见问题 101
3.9 案例分析 102
3.9.1 指示功能点计数 102
3.9.2 估算功能点计数 103
3.9.3 详细功能点计数 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 关联类和子类并计算每个SCU的非功能规模 113
4.3.3 计算非功能规模 132
4.4 SNAP方法的应用 133
4.4.1 内部数据备份和数据发送案例 133
4.4.2 用户界面案例 134
第5章 COSMIC应用 136
5.1 COSMIC基本概念 136
5.2 功能性用户需求的获取 139
5.3 COSMIC的两个基本模型 140
5.3.1 COSMIC 软件环境模型 140
5.3.2 通用软件模型 141
5.4 度量的基本过程 141
5.4.1 度量策略阶段 143
5.4.2 映射阶段 146
5.4.3 度量阶段 148
5.5 COSMIC应用中存在的主要问题及解决方法 150
5.5.1 COSMIC应用中存在的主要问题 150
5.5.2 COSMIC应用中存在问题的解决方法 153
5.6 COSMIC方法的应用 155
5.6.1 COSMIC的应用场景 155
5.6.2 COSMIC应用案例分析 156
第6章 基准数据库的建立及应用 160
6.1 背景及目的 160
6.2 功能点字典 162
6.2.1 功能点字典的概念 163
6.2.2 建立功能点字典的方法 163
6.2.3 功能点字典的应用 164
6.2.4 功能点字典的样例 165
6.2.5 更新功能点字典 165
6.2.6 功能点字典的应用案例 165
6.3 测量元定义 166
6.3.1 定义测量元的基本方法 166
6.3.2 相关国际、国内标准 168
6.3.3 常用的度量元集 168
6.4 基准数据分析的方法 172
6.5 基准数据库的建立 173
6.6 基准数据库的维护更新 175
6.7 基准比对方法 176
6.7.1 基准比对方法发展现状 176
6.7.2 基准比对方法对软件企业的作用和意义 177
6.7.3 基准比对方法实施流程 179
6.8 基准数据库的实例 180
6.8.1 ISBSG的基本情况和提供的服务 181
6.8.2 CSBSG的基本情况和提供的服务 182
6.8.3 SPIBSP的基本情况和提供的服务 183
第7章 工作量和工期估算 188
7.1 工作量估算概述 189
7.2 工作量估算原则 190
7.3 工作量估算准备 194
7.4 工作量估算方法 198
7.4.1 类推法 198
7.4.2 类比法 199
7.4.3 基于专家经验的估算方法 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 工作量评价与改进 235
7.5.4 工作量验证 235
7.5.5 小结 236
7.6 工期估算 236
7.6.1 工期估算的原则与要点 237
7.6.2 工期估算过程 237
7.6.3 工期估算技术 241
7.7 项目进度控制 245
7.7.1 进度跟踪 245
7.7.2 里程碑进度 245
7.7.3 挣值法 246
7.7.4 进度偏差分析 249
7.7.5 分析结果应用 251
第8章 成本估算 252
8.1 软件项目成本管理 252
8.1.1 软件项目成本管理的基本概念 252
8.1.2 软件项目成本管理过程 252
8.1.3 软件项目特点 253
8.1.4 软件项目成本估算特点 254
8.2 软件成本定义及构成 254
8.2.1 直接人力成本 256
8.2.2 直接非人力成本 256
8.2.3 间接人力成本 256
8.2.4 间接非人力成本 257
8.3 软件成本估算的一般过程 257
8.4 软件研发成本常用估算方法 260
8.4.1 专家判断法 260
8.4.2 类比法 260
8.4.3 COCOMO模型 260
8.4.4 功能点分析法 261
8.5 行业软件成本估算模型 261
8.5.1 直接人力成本的估算 261
8.5.2 直接非人力成本的估算 262
8.5.3 间接人力成本的估算 263
8.5.4 间接非人力成本的估算 263
8.5.5 行业软件研发成本估算模型 263
8.5.6 软件成本估算过程 264
8.5.7 案例 266
8.6 成本测量 269
8.7 成本分析 270
8.8 数据应用 270
8.8.1 软件成本估算常用的数据 271
8.8.2 企业自建基准 271
第9章 软件造价分析 273
9.1 软件产品及其价格的特点 274
9.1.1 软件产品的特点 274
9.1.2 软件定价的特点 275
9.2 影响软件产品定价的主要因素 277
9.2.1 影响价格的内部因素 277
9.2.2 影响价格的外部因素 277
9.3 软件产品的定价过程 278
9.4 软件产品的定价方法 279
9.4.1 传统的定价方法 279
9.4.2 SaaS定价方法 283
9.5 软件产品的定价策略 283
9.5.1 撇脂定价策略 284
9.5.2 渗透定价策略 285
9.5.3 捆绑定价策略 285
9.5.4 交叉补贴定价策略 286
9.5.5 免费使用策略 287
9.5.6 “歧视”定价策略 287
9.5.7 尾数定价策略 288
9.5.8 小结 289
第10章 行业实施规则及整体案例分析 290
10.1 预算场景 290
10.1.1 制定预算的依据 291
10.1.2 估算方法 291
10.1.3 上报预算 295
10.1.4 审批预算 295
10.1.5 应用示例 295
10.2 招/投标场景 297
10.2.1 应用范围 297
10.2.2 招标 297
10.2.3 投标 298
10.2.4 案例分享 299
10.3 项目计划场景 308
10.3.1 项目规模估算在制订项目计划中的作用 308
10.3.2 项目计划场景下估算的特点 309
10.3.3 项目计划场景下的估算要点 309
10.3.4 项目计划场景下的估算案例 314
10.3.5 软件计划估算的戒律 315
10.4 项目管理场景下的估算 316
10.4.1 采用功能点方法进一步明确需求 317
10.4.2 在项目各阶段对数据进行采集 317
10.4.3 软件研发成本分析 319
10.5 项目结算场景下的估算 321
10.5.1 结算分类 321
10.5.2 项目结算估算方法 323
10.5.3 结算后数据的应用 327
附录 329
参考文献 336