第1章 软件生命周期 1
1.1 概述 1
1.1.1 软件生命周期活动的类型 1
1.1.2 典型文档 2
1.2 软件生命周期模型 2
1.2.1 线性模型 2
1.2.2 原型实现模型 3
1.2.3 增量模型 3
1.2.4 Boehm的螺旋模型 3
习题 3
习题答案 4
2.1 软件过程模型 7
第2章 软件过程模型和其他模型 7
2.2 数据流程图 8
2.3 petri网模型 9
2.4 对象模型 10
2.4.1 存在依赖 11
2.4.2 实例图 13
2.5 用例图 13
2.6 场景 14
2.7 时序图 14
2.8 层次结构图 15
2.9 控制流程图 15
2.10 状态图 16
习题 18
2.11 网络模型 18
补充问题 19
习题答案 21
补充问题答案 23
第3章 软件项目管理 29
3.1 概述 29
3.2 管理方法 29
3.3 小组方法 29
3.4 重要准则 30
3.5 能力成熟度模型 32
3.7 实现值分析 33
3.7.1 基本的量 33
3.6 个人的软件过程 33
3.7.2 进度指示器 34
3.8 错误跟踪 35
3.9 事后回顾 36
习题 37
补充问题 37
习题答案 39
补充问题答案 40
第4章 软件项目计划 45
4.1 项目计划 45
4.2 WBS:工作分解结构 45
4.3 PERT:程序评估和评审技术 48
4.3.1 完成时间的算法 49
4.3.3 构造关键路径的算法 50
4.3.2 关键路径 50
4.3.4 宽松时间 51
4.3.5 宽松时间的算法 51
4.4 软件成本估算 52
4.4.1 代码行估算 52
4.4.2 基于LOC的成本估算 53
4.4.3 成本构成模型 54
4.4.4 功能点分析 55
4.4.5 生产率 57
4.4.6 判定估算 57
4.4.7 自动估算工具 58
习题 58
补充问题 59
习题答案 61
补充问题答案 63
第5章 软件度量 69
5.1 概述 69
5.2 软件度量理论 70
5.2.1 单调性 71
5.2.2 度量尺度 71
5.2.3 统计 72
5.3 产品度量 72
5.3.1 McCabe的环数 73
5.3.2 Halstead的软件科学 75
5.3.3 Henry-Kafura信息流 79
习题 80
5.5 GQM方法 80
5.4 过程度量 80
补充问题 81
习题答案 82
补充问题答案 83
第6章 风险分析和管理 89
6.1 概述 89
6.2 风险确定 89
6.3 风险估算 89
6.4 风险揭露 90
6.5 风险缓解 90
6.6 风险管理计划 91
补充问题 92
习题 92
习题答案 93
补充问题答案 93
第7章 软件质量保证 95
7.1 概述 95
7.2 形式化检查和技术评审 95
7.2.1 检查的角色 96
7.2.2 检查的步骤 96
7.2.3 检查表 96
7.3 软件的可靠性 97
7.3.1 错误率 97
7.3.2 概率论 98
7.4 统计质量保证 98
7.5 SQA计划的IEEE标准 98
补充问题 101
习题 101
习题答案 102
补充问题答案 103
第8章 需求 111
8.1 概述 111
8.2 对象模型 111
8.3 数据流程建模 112
8.4 行为建模 112
8.4.1 用例 113
8.4.2 场景 114
8.4.3 状态图 114
8.5 数据字典 115
8.6 系统图 116
8.7 软件需求规格说明的IEEE标准 117
习题 118
补充问题 119
习题答案 119
补充问题答案 120
第9章 软件设计 127
9.1 概述 127
9.2 设计过程的各个阶段 128
9.3 设计概念 130
9.4 度量内聚性 132
9.4.1 程序片 132
9.4.2 粘合权标 133
9.5 度量耦合性 135
9.6 需求的可溯性 136
习题 139
补充问题 140
习题答案 140
补充问题答案 142
第10章 软件测试 145
10.1 概述 145
10.2 软件测试基础知识 145
10.3 测试覆盖准则 146
10.3.1 包含 146
10.3.2 功能测试 146
10.3.3 测试度量 147
10.3.4 结构测试 148
10.4 数据流测试 152
10.5 随机测试 154
10.5.1 操作预置文件 154
10.5.2 测试的统计推断 155
10.6 边界测试 155
习题 156
补充问题 157
习题答案 159
补充问题答案 160
第11章 面向对象的软件开发 167
11.1 概述 167
11.1.1 继承 167
11.1.2 多态性 168
11.2.1 noun-in-text方法 169
11.2 确定对象 169
11.2.2 确定继承 171
11.2.3 确定重用 172
11.2.4 用例方法 173
11.3 确定关联 173
11.4 确定多重性 175
习题 177
补充问题 177
习题答案 178
补充问题答案 178
12.1.1 传统的度量 181
12.1.2 面向对象的抽象 181
12.1 概述 181
第12章 面向对象的度量 181
12.2 面向对象设计的度量套件 182
12.2.1 度量1:每个类的加权方法 182
12.2.2 度量2:继承树的深度 182
12.2.3 度量3:孩子的数目 182
12.2.4 度量4:对象类之间的耦合 182
12.2.5 度量5:类的响应 183
12.2.6 度量6:方法缺乏内聚力 183
12.3 MOOD度量 187
12.3.1 封装 187
12.3.2 继承因子 188
12.3.3 耦合因子 189
12.3.4 多态性因子 190
补充问题 191
习题 191
习题答案 192
补充问题答案 193
第13章 面向对象的测试 197
13.1 概述 197
13.2 MM测试 197
13.3 函数对的覆盖 199
习题 203
补充问题 203
习题答案 204
补充问题答案 204
14.1 概述 207
14.2 形式化的规格说明 207
第14章 形式化表示方法 207
14.2.1 前提条件 208
14.2.2 后置条件 208
14.2.3 不变式 208
14.3 对象约束语言 208
14.3.1 导航 209
14.3.2 不变式 210
14.3.3 属性 210
14.3.4 预定义操作 210
14.3.5 前提条件和后置条件 211
习题 211
补充问题 211
习题答案 213
补充问题答案 214