《计算机科学丛书 软件工程导论 原书第4版》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:(美)弗兰克·徐(Frank Tsui),(美)奥兰多·卡拉姆(Orlando Karam),(美)芭芭拉·博纳尔(Barbara Bernal)著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2018
  • ISBN:9787111607236
  • 页数:236 页
图书介绍:本书从基础入手,逐步介绍了软件工程的基本概念、软件过程模型、新兴过程方法、需求工程、设计的架构与方法论、设计的特征和度量、实现、测试、配置管理/集成/构建、软件支持和维护以及软件项目管理等内容。本书可作为软件工程相关专业本科生的教材,也可作为软件工程领域专业技术人员的参考书。

第1章 创建一个程序 1

1.1 一个简单的问题 1

1.1.1 决策 1

1.1.2 功能需求 2

1.1.3 非功能需求 3

1.1.4 设计约束 3

1.1.5 设计决策 4

1.2 测试 4

1.3 估算工作量 5

1.4 实现 6

1.4.1 关于实现的几个要点 6

1.4.2 基本设计 7

1.4.3 使用JUnit进行单元测试 8

1.4.4 StringSorter的实现 8

1.4.5 用户界面 12

1.5 总结 14

1.6 复习题 14

1.7 练习题 15

1.8 参考文献和建议阅读 15

第2章 构建一个系统 16

2.1 构建一个系统的特征 16

2.1.1 规模和复杂度 16

2.1.2 开发和支持的技术考虑 17

2.1.3 开发和支持的非技术考虑 19

2.2 系统构建示例 20

2.2.1 薪资管理系统需求 21

2.2.2 设计薪资管理系统 22

2.2.3 薪资管理系统编码和单元测试 23

2.2.4 薪资管理系统的集成和功能测试 24

2.2.5 发布薪资管理系统 24

2.2.6 支持和维护 25

2.3 协调工作 25

2.3.1 过程 25

2.3.2 产品 26

2.3.3 人员 26

2.4 总结 26

2.5 复习题 27

2.6 练习题 27

2.7 参考文献和建议阅读 27

第3章 工程化软件 28

3.1 软件失败的示例和特点 28

3.1.1 项目失败 28

3.1.2 软件产品失效 29

3.1.3 协调和其他关注点 30

3.2 软件工程 30

3.2.1 什么是软件工程 30

3.2.2 软件工程的定义 31

3.2.3 软件工程与软件的相关性 31

3.3 软件工程职业与道德规范 32

3.3.1 软件工程道德准则 32

3.3.2 职业行为 33

3.4 软件工程的原则 34

3.4.1 早期由Davis提出的软件工程原则 34

3.4.2 更现代的Royce原则 35

3.4.3 Wasserman提出的软件工程基础概念 36

3.5 总结 37

3.6 复习题 37

3.7 练习题 37

3.8 参考文献和建议阅读 38

第4章 软件过程模型 39

4.1 软件过程 39

4.1.1 软件过程模型的目标 39

4.1.2 “最简单”的过程模型 40

4.2 传统过程模型 40

4.2.1 瀑布模型 40

4.2.2 主程序员制团队方法 41

4.2.3 增量模型 41

4.2.4 螺旋模型 43

4.3 一个更加现代的过程 44

4.3.1 Rational统一过程框架的一般基础 44

4.3.2 RUP的阶段 44

4.4 进入和退出标准 46

4.4.1 进入标准 47

4.4.2 退出标准 47

4.5 过程评估模型 48

4.5.1 SEI的能力成熟度模型 48

4.5.2 SEI的能力成熟度集成模型 50

4.6 过程定义和通信 55

4.7 总结 55

4.8 复习题 56

4.9 练习题 56

4.10 参考文献和建议阅读 56

第5章 新兴过程方法 58

5.1 什么是敏捷过程 58

5.2 为什么使用敏捷过程 59

5.3 一些过程方法 59

5.3.1 极限编程 60

5.3.2 水晶系列方法 63

5.3.3 敏捷统一过程 65

5.3.4 Scrum 66

5.3.5 看板方法:一个新增的敏捷方法 67

5.3.6 开源软件开发 68

5.3.7 过程总结 69

5.4 过程的选择 70

5.4.1 每一种过程更适用的项目和环境 70

5.4.2 敏捷过程的主要风险和缺点 71

5.4.3 敏捷过程的主要优点 71

5.5 总结 71

5.6 复习题 71

5.7 练习题 72

5.8 参考文献和建议阅读 72

第6章 需求工程 73

6.1 需求处理 73

6.1.1 需求处理的准备 73

6.1.2 需求工程过程 74

6.2 需求获取与收集 75

6.2.1 获取高层次的需求 76

6.2.2 获取详细的需求 77

6.3 需求分析 79

6.3.1 通过业务流进行需求分析和聚类 79

6.3.2 通过面向对象用例进行需求分析和聚类 80

6.3.3 通过面向视点的需求定义进行需求分析和聚类 82

6.3.4 需求分析与排序 82

6.3.5 需求可追踪性 84

6.4 需求定义、原型化和审查 84

6.5 需求规约与需求协商 87

6.6 总结 88

6.7 复习题 88

6.8 练习题 89

6.9 参考文献和建议阅读 89

第7章 设计:架构与方法论 91

7.1 设计简介 91

7.2 架构设计 92

7.2.1 什么是软件架构 92

7.2.2 视图与视角 92

7.2.3 元架构知识:风格、模式、策略和参考架构 93

7.2.4 基于网络的Web参考架构——REST 97

7.3 详细设计 98

7.3.1 功能分解 98

7.3.2 关系型数据库设计 100

7.3.3 大数据设计 103

7.3.4 面向对象设计和UML 104

7.3.5 用户界面设计 108

7.3.6 进一步的设计问题 112

7.4 HTML-Script-SQL设计示例 112

7.5 总结 114

7.6 复习题 115

7.7 练习题 115

7.8 参考文献和建议阅读 115

第8章 设计的特征与度量 117

8.1 设计描述 117

8.2 设计属性的传统特征 117

8.2.1 Halstead复杂度度量 118

8.2.2 McCabe圈复杂度 118

8.2.3 Henry-Kafura信息流 119

8.2.4 高层次复杂度度量 120

8.3 “好”的设计属性 120

8.3.1 内聚 121

8.3.2 耦合 123

8.4 面向对象设计度量 125

8.4.1 面向方面的编程 127

8.4.2 Demeter法则 127

8.5 用户界面设计 127

8.5.1 好的UI的特征 127

8.5.2 易用性的评估与测试 128

8.6 总结 129

8.7 复习题 129

8.8 练习题 130

8.9 参考文献和建议阅读 130

第9章 实现 133

9.1 实现简介 133

9.2 好的实现的特征 133

9.2.1 编程风格和代码规范 134

9.2.2 注释 136

9.3 实现的实践 137

9.3.1 调试 137

9.3.2 断言和防御性编程 138

9.3.3 性能优化 138

9.3.4 重构 139

9.3.5 代码重用 140

9.4 云开发 140

9.4.1 基础设施即服务 141

9.4.2 平台即服务 142

9.4.3 云应用服务 142

9.4.4 面向开发者的云服务 143

9.4.5 云的优缺点 143

9.5 总结 143

9.6 复习题 144

9.7 练习题 144

9.8 参考文献和建议阅读 144

第10章 测试和质量保证 146

10.1 测试和质量保证简介 146

10.2 测试 147

10.3 测试技术 148

10.3.1 等价类划分 151

10.3.2 边界值分析 151

10.3.3 路径分析 152

10.3.4 条件组合 156

10.3.5 自动化单元测试和测试驱动开发 156

10.3.6 测试驱动开发示例 157

10.4 何时停止测试 160

10.5 检查和审查 161

10.6 形式化方法 162

10.7 静态分析 163

10.8 总结 164

10.9 复习题 164

10.10 练习题 165

10.11 参考文献和建议阅读 165

第11章 配置管理、集成和构建 167

11.1 软件配置管理 167

11.2 策略、过程和软件制品 167

11.2.1 业务策略对配置管理的影响 169

11.2.2 过程对配置管理的影响 170

11.3 配置管理框架 171

11.3.1 命名模型 171

11.3.2 存储和访问模型 172

11.4 构建与集成 174

11.5 配置管理工具 175

11.6 管理配置管理框架 177

11.7 总结 177

11.8 复习题 178

11.9 练习题 178

11.10 参考文献和建议阅读 178

第12章 软件支持和维护 180

12.1 客户支持 180

12.1.1 用户问题到达速率 180

12.1.2 客户接口和来电管理 182

12.1.3 技术问题/修复 183

12.1.4 交付及安装补丁 184

12.2 产品维护升级和发布周期 186

12.3 变更控制 187

12.4 总结 188

12.5 复习题 188

12.6 练习题 188

12.7 参考文献和建议阅读 189

第13章 软件项目管理 190

13.1 项目管理 190

13.1.1 项目管理的必要性 190

13.1.2 项目管理过程 190

13.1.3 项目管理的规划阶段 191

13.1.4 项目管理的组织阶段 193

13.1.5 项目管理的监测阶段 194

13.1.6 项目管理的调整阶段 196

13.2 项目管理技术 197

13.2.1 项目工作量估算 197

13.2.2 工作分解结构 203

13.2.3 使用挣值跟踪项目状态 205

13.2.4 测度项目属性和GQM 207

13.3 总结 208

13.4 复习题 209

13.5 练习题 209

13.6 参考文献和建议阅读 210

第14章 结语及当代软件工程的若干问题 212

14.1 安全和软件工程 213

14.2 逆向工程和软件混淆 213

14.3 软件确认和验证的方法及工具 214

14.4 参考文献和建议阅读 215

附录A 软件开发计划概要 217

附录B 软件需求规约概要 218

附录C 软件设计概要 222

附录D 测试计划概要 224

术语 225

索引 227