《软件工程》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:曾强聪,赵歆主编;阳王东,刘震,周新民,刘娜副主编
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2014
  • ISBN:9787517025740
  • 页数:281 页
图书介绍:软件工程是软件研发与维护的工程方法学。本书较好地体现了软件工程的实用性,有较完整的软件工程知识体系,有对工程概念、规则的生动说明,有与工程实践相适应的基于软件生存周期的内容编排,有基于案例的工程方法应用。全书共三个部分16章内容。第一部分工程基础含两章内容,是对软件工程概念方法、软件工程项目管理的常识性介绍;第二部分工程过程含7章内容,涉及软件工程过程模式,并以软件生存周期为线索,对软件研发全过程进行了说明;第三部分工程方法含7 章内容,有基于案例的工程方法说明,涉及主流的结构化工程方法、面向对象工程方法、数据库工程方法,并介绍了敏捷工程等一些非主流方法,第16章则是一个较完整的面向对象工程案例,基于UML建模,并已通过C++、java进行工程创建。本书语言精简、通俗易懂、便于自学,而且教学资源较完备。书中案例都已基于主流软件工具(Rose、Visio、PowerDesigner)建立模型,可作为教学或自学资源供读者参考(可与出版社或作者联系获取)。 本书可作为高校相关专业本科生、研究生教材,也可作为软件开发人员的技术参考书,并可作为广大读者自学用书。

第1章 软件工程综述 1

1.1 什么是软件工程 1

1.2 软件有什么特点 2

1.2.1 软件特点 3

1.2.2 软件分类 4

1.3 为什么会发生软件危机 6

1.4 软件工程技术 8

1.4.1 软件过程 8

1.4.2 工程方法 9

1.4.3 软件工具 9

1.5 软件工程管理 10

1.5.1 项目计划 10

1.5.2 人员组织 10

1.5.3 过程管理 11

1.5.4 产品管理 11

1.5.5 工程目标 11

1.6 主流软件工程方法学 12

1.6.1 结构化方法学 12

1.6.2 面向对象方法学 12

1.7 常用软件工具 15

1.7.1 MicrosoftVisio 15

1.7.2 Sybase PowerDesigner 15

1.7.3 IBM Rational Rose 16

小结 17

习题 18

第2章 软件项目管理 19

2.1 软件研发团队 19

2.1.1 软件研发机构 19

2.1.2 软件项目小组 20

2.1.3 项目小组管理机制 21

2.2 软件项目计划 23

2.2.1 任务分配 23

2.2.2 进度计划 24

2.2.3 项目计划书 26

2.3 软件项目成本估算 26

2.3.1 程序代码行成本估算 27

2.3.2 软件功能点成本估算 28

2.3.3 基于软件过程的成本估算 31

2.4 软件项目风险 32

2.4.1 风险类别 32

2.4.2 风险识别 33

2.4.3 风险评估 34

2.4.4 风险防范 35

2.5 项目文档管理 36

2.5.1 文档概念 36

2.5.2 文档分类 37

2.5.3 软件文档与软件生命周期之间的关系 37

2.5.4 文档的使用者 38

2.5.5 文档编码 39

2.5.6 文档格式 39

2.6 项目配置管理 41

2.6.1 软件配置概念 41

2.6.2 配置规划 41

2.6.3 软件变更控制 43

2.6.4 软件版本控制 43

2.7 项目质量管理 44

2.7.1 质量标准 44

2.7.2 质量计划 45

2.7.3 质量保证 45

2.7.4 质量指标 46

小结 47

习题 48

第3章 软件工程过程模式 50

3.1 软件生存周期 50

3.1.1 软件定义期 50

3.1.2 软件开发期 51

3.1.3 软件运行与维护期 52

3.2 瀑布模式 53

3.2.1 瀑布模式的特点 53

3.2.2 瀑布模式中的信息反馈 54

3.2.3 瀑布模式的作用 55

3.3 原型进化模式 55

3.3.1 软件原型 55

3.3.2 原型进化过程 56

3.4 增量模式 57

3.4.1 增量开发过程 57

3.4.2 增量模式的优越性 57

3.5 螺旋模式 58

3.6 迭代模式 59

3.7 组件复用模式 60

小结 61

习题 62

第4章 计算机系统工程 63

4.1 计算机系统特征 63

4.2 计算机体系结构 64

4.2.1 主机结构 64

4.2.2 客户机/服务器结构 65

4.2.3 浏览器/服务器结构 65

4.3 系统前期分析 66

4.3.1 分析过程 67

4.3.2 系统结构建模 68

4.3.3 系统工作流建模 68

4.4 项目可行性分析 70

4.4.1 评估内容 71

4.4.2 评估报告 72

小结 73

习题 74

第5章 软件需求分析 75

5.1 需求分析任务 75

5.1.1 分析内容 75

5.1.2 分析过程 76

5.1.3 任务承担者 76

5.2 获取用户需求 77

5.2.1 识别用户 77

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

5.2.3 建立需求规约 81

5.3 建立需求模型 82

5.3.1 业务域模型 83

5.3.2 业务流模型 83

5.4 定义与验证软件规格 84

5.4.1 软件规格定义 84

5.4.2 软件需求验证 85

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

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

5.5 需求规格说明书 86

小结 87

习题 88

第6章 软件概要设计 89

6.1 概要设计任务 89

6.1.1 基本任务 89

6.1.2 设计过程 90

6.2 系统构架设计 91

6.2.1 软件系统支持环境 91

6.2.2 软件系统体系结构 92

6.3 数据结构设计 96

6.3.1 动态程序数据 96

6.3.2 静态存储数据 96

6.4 程序结构设计 96

6.4.1 程序模块 97

6.4.2 模块独立性 99

6.4.3 结构化程序结构 103

6.4.4 面向对象程序结构 104

6.5 概要设计说明书 105

小结 107

习题 107

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

7.1 程序结构化流程控制 109

7.2 程序算法设计工具 110

7.2.1 程序流程图 110

7.2.2 NS图 110

7.2.3 PAD图 112

7.2.4 PDL语言 113

7.3 程序算法复杂度评估 114

7.3.1 程序算法复杂度 114

7.3.2 MeCabe方法 114

7.4 程序编码 116

7.4.1 编程语言 116

7.4.2 编程规范 118

7.4.3 程序运行效率 120

小结 121

习题 121

第8章 软件测试 123

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

8.1.1 测试目的 123

8.1.2 测试计划 123

8.1.3 测试方法 124

8.2 测试任务 125

8.2.1 单元测试 125

8.2.2 集成测试 127

8.2.3 确认测试 129

8.3 测试用例 130

8.3.1 白盒测试用例设计 130

8.3.2 黑盒测试用例设计 132

8.4 面向对象程序测试 134

8.4.1 面向对象单元测试 134

8.4.2 面向对象集成测试 134

8.4.3 面向对象确认测试 135

8.5 程序调试 135

8.5.1 诊断方法 135

8.5.2 调试策略 136

8.6 测试工具 137

8.6.1 测试数据生成程序 137

8.6.2 动态分析程序 137

8.6.3 静态分析程序 137

小结 137

习题 138

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

9.1 软件维护分类 140

9.2 软件可维护性 141

9.2.1 软件可维护性评估 141

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

9.3 软件维护实施 142

9.3.1 维护机构 142

9.3.2 维护过程 143

9.4 软件再工程 145

9.4.1 逆向工程 145

9.4.2 重构工程 146

9.4.3 正向工程 146

小结 146

习题 147

第10章 结构化分析建模 148

10.1 结构化分析 148

10.2 功能层级图 149

10.3 数据流图与功能建模 149

10.3.1 数据流图 149

10.3.2 数据流细化 151

10.3.3 功能建模 152

10.3.4 数据字典 154

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

小结 158

习题 159

第11章 结构化设计建模 162

11.1 建模语言 162

11.1.1 程序结构图 162

11.1.2 HIPO图 163

11.1.3 框架伪码 164

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

11.2.1 变换流映射 165

11.2.2 事务流映射 167

11.2.3 混合流映射 168

11.3 程序结构优化 170

11.4 设计举例 173

小结 179

习题 179

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

12.1 面向对象工程方法 181

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

12.1.2 UML建模语言 182

12.2 用例建模 185

12.2.1 图形元素 185

12.2.2 参与者关系 186

12.2.3 用例关系 186

12.2.4 用例建模举例 188

12.3 活动建模 190

12.3.1 图形元素 190

12.3.2 业务级活动建模 191

12.3.3 用例级活动建模 192

12.4 类分析建模 193

12.4.1 实体类 193

12.4.2 实体类关系 194

11.4.3 类分析建模举例 197

小结 198

习题 198

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

13.1 面向对象设计方法 200

13.1.1 面向对象设计特点 200

13.1.2 基于UML的设计建模 202

13.2 逻辑结构设计 203

13.2.1 确定系统构架 203

13.2.2 设计类体 205

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

13.2.4 程序逻辑结构 212

13.3 动态过程设计 217

13.3.1 协作图 217

13.3.2 时序图 219

13.3.3 状态图 221

13.4 物理装配与部署 222

13.4.1 程序构件图 222

13.4.2 系统部署图 224

小结 226

习题 227

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

14.1 数据库体系结构 229

14.1.1 基本体系结构 229

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

14.1.3 数据库分布应用 232

14.1.4 SQL语言 232

14.2 数据库分析建模 233

14.2.1 实体关系图 233

14.2.2 基于工具的ER建模 234

14.2.3 商品订购数据建模举例 236

14.3 数据库结构设计 237

14.3.1 数据表 237

14.3.2 数据表关联 237

14.3.3 数据索引 238

14.3.4 数据完整性 239

14.3.5 数据表结构优化 240

14.4 数据库访问设计 240

14.4.1 数据视图 240

14.4.2 存储过程 241

14.4.3 数据事务 241

小结 242

习题 242

第15章 非主流工程方法 244

15.1 敏捷工程方法 244

15.1.1 敏捷价值观 244

15.1.2 敏捷工程法则 245

15.1.3 敏捷过程特点 245

15.1.4 敏捷设计原则 246

15.1.5 极限编程 246

15.1.6 自适应软件开发 247

15.1.7 动态系统开发方法 248

15.2 净室工程方法 248

15.2.1 工程策略 249

15.2.2 盒结构建模 249

15.2.3 程序正确性验证 251

15.3 Jackson程序设计方法 253

15.3.1 设计步骤 254

15.3.2 设计举例 255

15.4 Z语言形式化规格说明 258

15.4.1 Z语言特点 258

15.4.2 Z语言应用举例 259

小结 261

习题 262

第16章 “象棋对垒程序系统”工程案例 263

16.1 系统分析 263

16.1.1 基本需求说明 263

16.1.2 功能用例分析 263

16.1.3 任务活动分析 265

16.2 系统设计 266

16.2.1 系统构架设计 266

16.2.2 类结构设计 266

16.2.3 对象交互设计 268

16.2.4 棋局对垒界面设计 272

16.2.5 系统构件设计 273

16.3 程序框架清单 274

16.3.1 客户端程序 274

16.3.2 服务器程序 279

参考文献 281