《团队软件过程》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)汉弗莱著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2011
  • ISBN:9787115251893
  • 页数:382 页
图书介绍:本书是为计算机科学系研究生和高年级本科生开设的一门软件工程课的教科书。这本书系统地论述了如何以开发小组的形式来进行软件的开发,并对开发过程作出了具体而详尽的指导,包括小组成员之间的协调、进度的管理、质量的控制等。

第一部分 绪论 2

第1章 TSPi简介 2

1.1 TSPi是什么 2

工程小组为何需要过程 3

1.2 TSPi原则 3

1.3 TSPi的设计 3

1.3.1 在个体软件过程(PSP)的基础上提供一个简单的框架 4

1.3.2 在几个周期内开发产品 4

1.3.3 建立标准的质量和绩效度量 5

1.3.4 为团队和学生提供精确的度量 5

1.3.5 进行角色和团队评阶 5

1.3.6 需要过程规范 5

1.3.7 提供团队问题的指导 6

1.4 TSPi的结构和流程 6

周期性开发策略 6

1.5 TSPi过程 7

1.6 本书结构和流程 10

1.7 小结 10

第2章 团队软件过程的基本原理 11

2.1 项目为何失败 11

处理压力 12

2.2 常见的团队问题 12

2.2.1 无效的领导力 12

2.2.2 不能做出妥协安排或不善于合作 13

2.2.3 缺少参与 13

2.2.4 拖拉与缺乏信心 13

2.2.5 质量低劣 13

2.2.6 功能多余 13

2.2.7 无效的组员互评 14

2.3 团队是什么 14

2.3.1 团队规模 14

2.3.2 具有凝聚力的团队(jelled team) 14

2.3.3 团队协作的基本条件 15

2.4 建设高效团队 15

2.4.1 团队凝聚力 15

2.4.2 挑战性的目标 15

2.4.3 反馈 16

2.4.4 共同的工作框架 16

2.5 团队如何发展 16

团队如何成为具有凝聚力的团队 17

2.6 TSPi如何建设团队 17

2.6.1 目标 17

2.6.2 角色 18

2.6.3 计划 18

2.6.4 沟通 18

2.6.5 外部沟通 19

2.7 小结 19

2.8 参考文献 19

第二部分 TSPi过程 22

第3章 启动一个团队项目 22

3.1 为什么需要团队启动过程 22

3.2 团队目标 23

3.2.1 设定目标需要考虑的因素 23

3.2.2 设定团队目标 24

3.2.3 TSPi的目标设定 24

3.3 团队成员目标 25

设定团队成员目标 25

3.4 角色目标 26

3.4.1 团队领导目标 26

3.4.2 开发经理目标 26

3.4.3 计划经理目标 27

3.4.4 质量和过程经理目标 27

3.4.5 支持经理目标 27

3.5 TSPi启动脚本 27

3.5.1 学生信息 31

3.5.2 产品目标 33

3.5.3 团队分工 33

3.5.4 团队目标 33

3.5.5 团队会议与第一次团队会议 33

3.5.6 数据需求 37

3.5.7 项目开始 38

3.5.8 项目资料库 38

3.5.9 TSPi支持工具 38

3.6 小结 38

第4章 开发策略 39

4.1 计划先行 39

4.1.1 承诺之前先计划 39

4.1.2 为本课程制定计划 40

4.2 策略是什么 40

4.3 概念设计 41

4.4 风险管理 41

管理风险 42

4.5 复用策略 42

4.6 策略脚本 43

4.6.1 入口准则 45

4.6.2 建立策略评判准则 45

4.6.3 完成概念设计 46

4.6.4 选择开发策略 46

4.6.5 完成初步规模估算 48

4.6.6 完成初步时间估算 48

4.6.7 评估风险 49

4.6.8 建立策略文档 49

4.6.9 更新开发策略 49

4.6.10 制定配置管理计划 49

4.6.11 出口准则 50

4.7 小结 50

第5章 开发计划 51

5.1 计划的必要性 51

5.1.1 为什么制定计划 51

5.1.2 平衡的计划 52

5.1.3 对照计划跟踪进展 52

5.1.4 详细计划 53

5.1.5 处理未计划任务 54

5.1.6 估算级别 54

5.1.7 实现计划 55

5.2 TSPi计划过程 56

5.3 TSPi支持工具 57

5.4 开发计划脚本 57

5.4.1 入口准则 60

5.4.2 项目计划步骤2.1 60

5.4.3 项目计划步骤2.2 60

5.4.4 项目计划步骤3.1 63

5.4.5 项目计划步骤3.2 63

5.4.6 项目计划步骤4.1 66

5.4.7 项目计划步骤4.2 66

5.4.8 项目计划步骤5 67

5.4.9 项目计划步骤6 72

5.4.10 项目计划步骤7 72

5.4.11 最后的计划步骤 73

5.4.12 出口准则 77

5.5 跟踪工作情况 77

5.5.1 项目跟踪步骤1 78

5.5.2 项目跟踪步骤2 78

5.5.3 项目跟踪步骤3 78

5.5.4 项目跟踪步骤4 79

5.5.5 项目跟踪步骤5 79

5.5.6 项目跟踪步骤6 79

5.5.7 项目跟踪步骤7 79

5.5.8 项目跟踪步骤8 79

5.6 质量计划 80

5.6.1 概要比率 80

5.6.2 零缺陷率(PDF) 81

5.6.3 每页缺陷数 81

5.6.4 缺陷数/KLOC 82

5.6.5 缺陷比率 83

5.6.6 开发时间比率 83

5.6.7 A/FR 83

5.6.8 评审速率和审查速率 84

5.6.9 缺陷注入率 84

5.6.10 缺陷排除率 85

5.6.11 阶段收益 86

5.6.12 过程收益 86

5.6.13 处理低质量部件 86

5.6.14 出口准则 87

5.7 小结 87

5.8 参考文献 87

第6章 定义需求 88

6.1 需求是什么 88

6.2 为什么需要需求 89

6.3 需求变更 89

需求提取 90

6.4 软件需求规格说明书 90

6.4.1 需求可追溯性 91

6.4.2 平衡工作量 92

6.5 TSPi需求脚本 92

6.5.1 入口准则 95

6.5.2 要求陈述评审 95

6.5.3 要求陈述澄清 96

6.5.4 需求任务分配 96

6.5.5 需求文档 96

6.5.6 系统测试计划 96

6.5.7 需求和系统测试计划审查 97

6.5.8 需求更新 97

6.5.9 用户SRS评审 97

6.5.10 需求基线 97

6.5.11 出口准则 98

6.6 小结 98

6.7 参考文献 98

第7章 与团队一起设计 99

7.1 设计原则 100

7.2 在团队中设计 100

7.2.1 利用整个团队 100

7.2.2 设计研究 101

7.2.3 利用所有团队成员的才智 101

7.3 设计标准 102

7.3.1 设计表达标准 102

7.3.2 用例或PSP操作场景 103

7.3.3 状态机分析 103

7.3.4 产生精确的设计 103

7.4 复用性设计 104

7.4.1 可复用接口标准 104

7.4.2 可复用文档标准 104

7.4.3 可复用部件质量 105

7.4.4 应用支持 105

7.5 可用性设计 105

7.6 可测试性设计 106

黑盒测试与白盒测试 106

7.7 设计评审和审查 106

审查的其他好处 107

7.8 TSPi设计脚本 107

7.8.1 入口准则 110

7.8.2 高层设计 110

7.8.3 设计标准 110

7.8.4 产品总体结构 110

7.8.5 设计任务分配 112

7.8.6 设计规格说明书 113

7.8.7 集成测试计划 113

7.8.8 设计审查 113

7.8.9 设计更新 113

7.8.10 设计基线 114

7.8.11 出口准则 114

7.9 小结 114

7.10 参考文献 115

第8章 产品实现 116

8.1 设计完成准则 116

8.1.1 设计级别 116

8.1.2 平行实现 117

8.2 实现标准 117

8.2.1 标准评审 117

8.2.2 编码标准 118

8.2.3 规模标准 118

8.2.4 度量其他类型产品的规模 119

8.2.5 缺陷标准 119

8.2.6 缺陷预防 120

8.3 实现策略 121

8.3.1 实现策略:评审 121

8.3.2 实现策略:复用 122

8.3.3 实现策略:测试 122

8.4 评审和审查 122

8.4.1 随机缺陷 122

8.4.2 对测试的影响 123

8.4.3 完全测试的困难 123

8.4.4 源程序的设计审查 123

8.5 IMP脚本 124

8.5.1 入口准则 127

8.5.2 实现计划 127

8.5.3 详细设计与设计评审 127

8.5.4 测试开发 128

8.5.5 详细设计审查 128

8.5.6 编码及代码评审 128

8.5.7 代码审查 129

8.5.8 单元测试 129

8.5.9 组件质量评审 129

8.5.10 组件发布 133

8.5.11 出口准则 133

8.6 小结 133

8.7 参考文献 134

第9章 集成与系统测试 135

9.1 测试原则 135

9.2 TSPi测试策略 136

9.3 构建和集成策略 137

9.3.1 大爆炸策略 137

9.3.2 一次一个策略 137

9.3.3 测试群策略 137

9.3.4 扁平系统策略 138

9.4 系统测试策略 138

可选系统测试策略 138

9.5 测试计划 139

9.6 跟踪与度量测试 140

9.6.1 测试日志 140

9.6.2 缺陷易发模块 141

9.6.3 模块缺陷数据 142

9.6.4 跟踪缺陷数据 142

9.7 文档 143

9.7.1 文档的重要性 143

9.7.2 文档设计 143

9.7.3 文档提纲 144

9.7.4 书写风格 144

9.7.5 文档评审 145

9.8 TSPi测试脚本 145

9.8.1 入口准则 149

9.8.2 测试开发 149

9.8.3 构建 149

9.8.4 集成 150

9.8.5 系统测试 150

9.8.6 回归测试 151

9.8.7 文档 151

9.8.8 出口准则 151

9.9 小结 151

9.10 参考文献 152

第10章 结项总结 153

10.1 为什么要进行结项总结 153

10.2 结项总结能为你做什么 153

10.3 过程改进建议 154

10.4 TSPi结项总结脚本 154

10.4.1 入口准则 157

10.4.2 评审过程数据 157

10.4.3 质量评审 158

10.4.4 角色评估 158

10.4.5 准备周期报告 159

10.4.6 周期报告 159

10.4.7 角色报告 159

10.4.8 工程师个人报告 160

10.4.9 撰写报告 160

10.4.10 角色评估 160

10.4.11 角色评估建议 162

10.4.12 出口准则 162

10.5 小结 163

10.6 参考文献 163

第三部分 团队角色 167

第11章 团队领导角色 167

11.1 团队领导的目标 167

11.1.1 团队成员的共同目标 167

11.1.2 团队领导的目标1 168

11.1.3 团队领导的目标2 168

11.1.4 团队领导的目标3 168

11.1.5 团队领导的目标4 169

11.1.6 团队领导的目标5 169

11.2 有用的团队领导的技能和能力 169

11.2.1 有拥护者的领导 170

11.2.2 领导需要表现 170

11.2.3 领导需要面对困境 172

11.2.4 领导处理人际关系 172

11.3 团队领导的主要活动 172

11.3.1 团队领导的主要活动1 173

11.3.2 团队领导的主要活动2 176

11.3.3 团队领导的主要活动3 176

11.3.4 团队领导的主要活动4 176

11.3.5 团队领导的主要活动5 177

11.3.6 团队领导的主要活动6 178

11.3.7 团队领导的主要活动7 181

11.3.8 团队领导的主要活动8 181

11.4 团队领导的项目工作 181

11.5 小结 181

第12章 开发经理角色 183

12.1 开发经理的目标 183

12.1.1 团队成员的共同目标 184

12.1.2 开发经理的目标1 184

12.1.3 开发经理的目标2 184

12.2 对开发经理有益的技能和能力 185

12.3 开发经理的主要活动 187

12.3.1 开发经理的主要活动1 187

12.3.2 开发经理的主要活动2 188

12.3.3 开发经理的主要活动3 188

12.3.4 开发经理的主要活动4 189

12.3.5 开发经理的主要活动5 189

12.3.6 开发经理的主要活动6 190

12.3.7 开发经理的主要活动7 191

12.3.8 开发经理的主要活动8 191

12.3.9 开发经理的主要活动9 193

12.3.10 开发经理的主要活动10 194

12.3.11 开发经理的主要活动11 194

12.4 开发经理的项目活动 194

12.5 小结 194

第13章 计划经理角色 196

13.1 计划经理的目标 196

13.1.1 团队成员的共同目标 196

13.1.2 计划经理的目标1 197

13.1.3 计划经理的目标2 197

13.2 对计划经理有益的技能和能力 198

13.3 计划经理的主要活动 198

13.3.1 计划经理的主要活动1 199

13.3.2 计划经理的主要活动2 201

13.3.3 计划经理的主要活动3 201

13.3.4 计划经理的主要活动4 204

13.3.5 计划经理的主要活动5 207

13.3.6 计划经理的主要活动6 208

13.4 计划经理的项目活动 208

13.5 小结 208

第14章 质量和过程经理角色 209

14.1 质量和过程经理的目标 209

14.1.1 团队成员的共同目标 209

14.1.2 质量和过程经理的目标1 210

14.1.3 质量和过程经理的目标2 210

14.1.4 质量和过程经理的目标3 211

14.1.5 质量和过程经理的目标4 212

14.2 对质量和过程经理有益的技能和能力 212

14.3 质量和过程经理的主要活动 213

14.3.1 质量和过程经理的主要活动1 214

14.3.2 质量和过程经理的主要活动2 214

14.3.3 质量和过程经理的主要活动3 214

14.3.4 质量和过程经理的主要活动4 215

14.3.5 质量和过程经理主要活动5 215

14.3.6 质量和过程经理的主要活动6 216

14.3.7 质量和过程经理的主要活动7 218

14.3.8 质量和过程经理的主要活动8 218

14.3.9 质量和过程经理的主要活动9 218

14.4 质量和过程经理的项目活动 219

14.5 小结 220

第15章 支持经理角色 221

15.1 支持经理的目标 221

15.1.1 团队成员的共同目标 221

15.1.2 支持经理的目标1 222

15.1.3 支持经理的目标2 222

15.1.4 支持经理的目标3 222

15.1.5 支持经理的目标4 223

15.2 对支持经理有益的技能和能力 223

15.3 支持经理的主要活动 223

15.3.1 支持经理的主要活动1 223

15.3.2 支持经理的主要活动2 224

15.3.3 支持经理的主要活动3 224

15.3.4 支持经理的主要活动4 225

15.3.5 支持经理的主要活动5 225

15.3.6 支持经理的主要活动6 226

15.3.7 支持经理的主要活动7 227

15.3.8 支持经理的主要活动8 227

15.4 支持经理的项目活动 227

15.5 小结 229

第四部分 使用TSPi 232

第16章 管理自我 232

16.1 责任心 232

16.1.1 一个失败的项目 232

16.1.2 履行责任 233

16.1.3 决不放弃 233

16.1.4 面对现实 234

16.1.5 负责任所带来的风险 234

16.1.6 陈述事实 234

16.1.7 事实往往是可以争议的 235

16.2 目标导向性 235

16.2.1 着眼于日程表 235

16.2.2 目标提供了工作重点和优先级 236

16.2.3 你想让我做什么? 236

16.3 原则性 237

16.3.1 不与团队中其他人合作 237

16.3.2 如何遵循处事的几个原则 237

16.4 小结 240

16.5 参考文献 240

第17章 在团队中工作 241

17.1 具有凝聚力的团队 241

17.2 团队工作的责任 242

17.3 团队成员间的沟通 242

17.3.1 可见性 242

17.3.2 聆听 242

17.3.3 协商 243

17.3.4 为什么有原则的协商是有效的 244

17.3.5 花费足够的时间 245

17.4 作出和履行承诺 245

17.4.1 负责的承诺 245

17.4.2 做出承诺 246

17.5 参与团队活动 246

17.5.1 勇于发表自己的看法 246

17.5.2 支持坚持己见的人 247

17.5.3 唤起别人的注意 247

17.5.4 对他人的意见要给予关注 247

17.6 团队建设的责任 248

17.7 接受并承担团队所分配的角色 248

17.8 建立并努力完成团队目标 249

17.9 建立和维护团队 249

17.9.1 难以相处的团队成员 250

17.9.2 院校团队的问题 250

17.9.3 寻求帮助 251

17.9.4 支持 251

17.10 小结 251

17.11 参考文献 252

第18章 团队工作 253

附录A TSPi采样练习的要求说明 256

A.1 目的 256

A.2 “变化计数器”功能要求说明 256

A.3 “程序分析器”功能要求说明 259

A.4 参考文献 260

附录B 软件配置管理 261

B.1 软件配置管理问题 261

B.2 软件配置管理概要 262

不需要的项 262

B.3 SCM计划 262

B.3.1 配置标识计划 262

B.3.2 配置控制规程 263

B.3.3 配置控制委员会 263

B.3.4 变更申请表 263

B.4 系统基线 265

B.4.1 基线提交 265

B.4.2 备份规程 266

B.4.3 配置状态报告 266

B.5 SCM过程自动化 267

B.6 软件配置管理过程 267

B.6.1 第一步:制定SCM计划 269

B.6.2 第二步:管理系统基线 269

B.6.3 第三步:管理变更 270

B.6.4 第四步:报告SCM状态 271

附录C 软件审查 272

C.1 什么是审查 272

C.1.1 审查是如何进行的 272

C.1.2 评审的时机 272

C.1.3 使用规定的审查程序 273

C.2 什么使审查有效 273

C.2.1 审查整个程序 273

C.2.2 集思广益 273

C.2.3 采取不同的视角 273

C.2.4 提供发现错误的机会 274

C.2.5 全面测试的重要性 274

C.2.6 只审查经个人评审过的产品 274

C.3 审查方法 274

C.3.1 检查单 275

C.3.2 视角 275

C.3.3 产品侧重点 275

C.3.4 审查实践 276

C.4 审查数据 276

C.4.1 审查速率 276

C.4.2 评审占开发比率 276

C.4.3 审查收益 277

C.5 审查报告:INS表 277

C.6 估算遗留的缺陷数 280

C.6.1 估算总数 280

C.6.2 估算程序中的缺陷数 280

C.6.3 软件审查中的捕获-重捕获方法 280

C.6.4 2个工程师的估算范例 281

C.6.5 3个工程师的估算范例 282

C.6.6 注意 284

C.6.7 一些改进 284

C.7 具有高个人审查收益的重要性 285

C.8 安排审查时间 285

C.9 TSPi审查脚本 286

C.9.1 入口准则 287

C.9.2 计划审查工作 287

C.9.3 召开审查介绍会 288

C.9.4 评审产品 288

C.9.5 召开审查会议 288

C.9.6 遍历产品 288

C.9.7 估算遗留缺陷数 289

C.9.8 总结审查会议 289

C.9.9 修改产品,验证缺陷修复 289

C.9.10 出口准则 289

C.10 参考文献 290

附录D TSPi脚本 291

附录E 角色脚本 319

附录F TSPi表格及其使用说明 333

附录G TSPi标准与规格说明 379