《软件工程原理与应用 第2版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:曾强聪,赵歆编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:9787302429746
  • 页数:305 页
图书介绍:本书由三个部分共17章内容组成,第一部分工程基础含四章内容,涉及概述、工程过程、工程项目管理及计算机系统工程等内容;第二部分工程任务含5章内容,按照软件生命周期顺序编排,涉及需求分析、概要设计、算法设计、编码测试、软件维护等内容;第三部分工程方法含8章内容,涉及结构化工程方法、面向对象工程方法、数据库工程方法、界面设计方法等内容,并介绍了敏捷工程、净室工程等一些非主流工程方法。

第1部分 工程基础 3

第1章 软件工程概述 3

1.1 软件 3

1.1.1 软件特点 3

1.1.2 软件分类 5

1.2 软件产业化发展 7

1.2.1 软件程序设计时代 7

1.2.2 软件程序系统时代 8

1.2.3 软件工程时代 8

1.3 软件危机 9

1.3.1 软件危机现象 9

1.3.2 软件危机原因分析 10

1.4 软件工程 11

1.4.1 工程技术 12

1.4.2 工程管理 14

1.4.3 工程目标 15

1.5 主流工程方法学 16

1.5.1 结构化方法学 16

1.5.2 面向对象方法学 17

1.6 常用软件工具 19

1.6.1 Visio 19

1.6.2 PowerDesigner 19

1.6.3 Rational Rose 20

小结 21

习题 22

第2章 软件工程过程模式 24

2.1 软件生存周期 24

2.1.1 软件定义期 24

2.1.2 软件开发期 26

2.1.3 软件运行与维护期 27

2.2 瀑布模式 27

2.2.1 瀑布模式的特点 27

2.2.2 瀑布模式中的信息反馈 28

2.2.3 瀑布模式的作用 29

2.3 原型进化模式 29

2.3.1 软件原型 29

2.3.2 原型进化过程 30

2.4 增量模式 31

2.4.1 增量开发过程 31

2.4.2 增量模式的优越性 32

2.5 螺旋模式 32

2.6 迭代模式 33

2.7 组件复用模式 34

小结 35

习题 36

第3章 软件项目管理 37

3.1 软件研发团队 37

3.1.1 软件研发机构 37

3.1.2 软件项目小组 38

3.1.3 项目小组管理机制 39

3.2 软件项目计划 41

3.2.1 任务分配 41

3.2.2 进度计划 42

3.2.3 项目计划书 44

3.3 软件项目成本估算 45

3.3.1 软件成本估算策略 45

3.3.2 代码行成本估算 45

3.3.3 功能点成本估算 47

3.3.4 软件过程成本估算 49

3.4 软件项目风险 51

3.4.1 风险类别 51

3.4.2 风险识别 52

3.4.3 风险评估 53

3.4.4 风险防范 54

3.5 项目文档管理 55

3.5.1 文档概念 55

3.5.2 文档分类 56

3.5.3 软件文档与软件生命周期之间的关系 56

3.5.4 文档的使用者 57

3.5.5 文档编码 58

3.5.6 文档格式 58

3.6 项目配置管理 60

3.6.1 软件配置概念 60

3.6.2 配置规划 61

3.6.3 软件变更控制 62

3.6.4 软件版本控制 63

3.7 项目质量管理 63

3.7.1 质量标准 63

3.7.2 质量计划 64

3.7.3 质量保证 65

3.7.4 质量指标 66

3.8 软件企业能力成熟度模型(CMM) 66

3.8.1 能力成熟度等级 67

3.8.2 软件过程进化 67

3.8.3 个人软件过程(PSP) 68

3.8.4 团队软件过程(TSP) 68

小结 70

习题 71

第4章 基于计算机的系统工程 73

4.1 计算机系统特征 73

4.2 计算机体系结构 74

4.2.1 中央主机结构 74

4.2.2 客户机/服务器结构 74

4.2.3 浏览器/服务器结构 75

4.3 系统前期分析 76

4.3.1 分析过程 76

4.3.2 系统结构建模 78

4.3.3 系统工作流建模 78

4.4 项目可行性分析 80

4.4.1 评估内容 81

4.4.2 评估报告 82

小结 83

习题 84

第2部分 工程任务 87

第5章 软件需求分析 87

5.1 需求分析任务 87

5.1.1 分析内容 87

5.1.2 分析过程 88

5.1.3 任务承担者 88

5.2 获取用户需求 89

5.2.1 识别用户 89

5.2.2 从调查中收集用户需求 91

5.2.3 建立需求规约 93

5.3 建立需求模型 94

5.3.1 业务域模型 95

5.3.2 业务流模型 95

5.4 定义与验证软件规格 96

5.4.1 软件规格定义 96

5.4.2 软件需求验证 97

5.4.3 通过原型验证用户需求 97

5.4.4 通过评审验证产品规格 98

5.5 需求规格说明书 98

小结 99

习题 100

第6章 软件概要设计 101

6.1 概要设计任务 101

6.1.1 基本任务 101

6.1.2 设计过程 102

6.2 系统构架设计 103

6.2.1 软件系统支持环境 103

6.2.2 软件系统体系结构 104

6.3 数据结构设计 108

6.3.1 动态程序数据 108

6.3.2 静态存储数据 108

6.4 程序结构设计 109

6.4.1 程序模块 109

6.4.2 模块独立性 111

6.4.3 结构化程序结构 115

6.4.4 面向对象程序结构 116

6.5 概要设计说明书 117

小结 118

习题 119

第7章 程序算法设计与编码 120

7.1 程序结构化流程控制 120

7.2 程序算法设计工具 121

7.2.1 程序流程图 121

7.2.2 N-S图 122

7.2.3 PAD图 123

7.2.4 PDL语言 123

7.3 程序算法复杂度评估 124

7.3.1 程序算法复杂度 124

7.3.2 McCabe方法 125

7.4 程序编码 126

7.4.1 编程语言 127

7.4.2 编程规范 128

7.4.3 程序运行效率 131

小结 131

习题 132

第8章 软件测试 133

8.1 测试目的、计划与方法 133

8.1.1 测试目的 133

8.1.2 测试计划 133

8.1.3 测试方法 134

8.2 测试任务 135

8.2.1 单元测试 135

8.2.2 集成测试 137

8.2.3 确认测试 139

8.3 测试用例 140

8.3.1 白盒测试用例设计 140

8.3.2 黑盒测试用例设计 143

8.4 面向对象程序测试 144

8.4.1 面向对象单元测试 144

8.4.2 面向对象集成测试 145

8.4.3 面向对象确认测试 145

8.5 程序调试 145

8.5.1 诊断方法 146

8.5.2 调试策略 146

8.6 测试工具 147

8.6.1 测试数据生成程序 147

8.6.2 动态分析程序 148

8.6.3 静态分析程序 148

小结 148

习题 149

第9章 软件维护与再工程 151

9.1 软件维护分类 151

9.2 软件可维护性 152

9.2.1 软件可维护性评估 152

9.2.2 如何提高软件的可维护性 153

9.3 软件维护实施 153

9.3.1 维护机构 153

9.3.2 维护过程 154

9.4 软件再工程 156

9.4.1 逆向工程 156

9.4.2 重构工程 157

9.4.3 正向工程 157

小结 158

习题 158

第3部分 工程方法 161

第10章 结构化分析建模 161

10.1 结构化分析 161

10.2 功能层级图 162

10.3 数据流图与功能建模 162

10.3.1 数据流图(DFD) 163

10.3.2 数据流细化 164

10.3.3 功能建模 165

10.3.4 数据字典 166

10.4 状态转换图与行为建模 169

小结 171

习题 172

第11章 结构化设计建模 174

11.1 结构化建模语言 174

11.1.1 程序结构图 174

11.1.2 HIPO图 175

11.1.3 框架伪码 176

11.2 基于数据流的程序结构映射 177

11.2.1 变换流映射 177

11.2.2 事务流映射 179

11.2.3 混合流映射 180

11.3 程序结构优化 181

11.4 设计举例 184

小结 189

习题 190

第12章 面向对象分析建模 192

12.1 面向对象工程方法 192

12.1.1 面向对象工程建模方法 192

12.1.2 UML建模语言 193

12.2 用例建模 196

12.2.1 图形元素 196

12.2.2 参与者关系 197

12.2.3 用例关系 198

12.2.4 用例建模举例 199

12.3 活动建模 201

12.3.1 图形元素 201

12.3.2 业务级活动建模 202

12.3.3 用例级活动建模 202

12.4 类分析建模 203

12.4.1 实体类 203

12.4.2 实体类关系 205

12.4.3 类分析建模举例 207

小结 208

习题 208

第13章 面向对象设计建模 211

13.1 面向对象设计方法 211

13.1.1 面向对象设计特点 211

13.1.2 基于UML的设计建模 212

13.2 逻辑结构设计 214

13.2.1 确定系统构架 214

13.2.2 设计类体 215

13.2.3 抽象类、接口及其用途 219

13.2.4 程序逻辑结构 221

13.3 动态过程设计 227

13.3.1 协作图 227

13.3.2 时序图 229

13.3.3 状态图 229

13.4 物理装配与部署 232

13.4.1 程序构件图 232

13.4.2 系统部署图 233

小结 235

习题 236

第14章 数据库分析与设计 238

14.1 数据库体系结构 238

14.1.1 基本体系结构 238

14.1.2 基于数据库服务器的数据库系统 240

14.1.3 数据库分布应用 241

14.1.4 SQL语言 241

14.2 数据库分析建模 242

14.2.1 模型元素 242

14.2.2 传统实体关系建模方法 243

14.2.3 基于工具实体关系建模方法 243

14.2.4 实体关系建模举例 245

14.3 数据库存储设计 247

14.3.1 数据存储结构 247

14.3.2 数据表结构映射举例 249

14.3.3 数据完整性 250

14.3.4 数据表结构优化 251

14.3.5 通过触发器创建数据约束规则 252

14.4 数据库访问设计 253

14.4.1 数据视图 253

14.4.2 存储过程 253

14.4.3 数据事务 253

小结 254

习题 255

第15章 用户界面设计 256

15.1 界面设计特点 256

15.1.1 可视化 256

15.1.2 面向用户 257

15.1.3 用例驱动 257

15.1.4 原型进化 257

15.2 界面类型 258

15.2.1 窗体 258

15.2.2 Web页 260

15.3 界面功能 261

15.3.1 信息表示 261

15.3.2 系统交互 262

15.3.3 联机支持 262

15.4 界面设计方法 263

15.4.1 单界面行为建模 263

15.4.2 多界面导航设计 264

15.4.3 界面交互性设计 265

小结 267

习题 268

第16章 非主流工程方法 269

16.1 敏捷工程方法 269

16.1.1 敏捷价值观 269

16.1.2 敏捷工程法则 270

16.1.3 敏捷过程特点 270

16.1.4 敏捷设计原则 271

16.1.5 极限编程(XF) 272

16.1.6 自适应软件开发(ASD) 273

16.1.7 动态系统开发方法(DSDM) 273

16.2 净室工程方法 274

16.2.1 工程策略 274

16.2.2 盒结构建模 275

16.2.3 程序正确性验证 278

16.3 Jackson程序设计方法 278

16.3.1 设计步骤 279

16.3.2 设计举例 280

16.4 Z语言形式化规格说明 283

16.4.1 Z语言特点 283

16.4.2 Z语言应用举例 284

小结 285

习题 287

第17章 面向对象工程案例 288

17.1 系统分析 288

17.1.1 基本需求说明 288

17.1.2 功能用例分析 289

17.1.3 任务活动分析 290

17.2 系统设计 291

17.2.1 系统构架设计 291

17.2.2 类结构设计 291

17.2.3 对象交互设计 293

17.2.4 棋局对垒界面设计 296

17.2.5 系统构件设计 298

17.3 程序框架清单 298

17.3.1 客户端程序 298

17.3.2 服务器程序 303

参考文献 305