《软件工程 第4版 学习辅导与习题解析》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:张海藩,吕云翔编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2013
  • ISBN:9787115330741
  • 页数:216 页
图书介绍:本书共分为16章。每章由3部分组成:第1部分简明扼要地复习每一章的重点内容;第2部分给出原教材每一章后的习题;第3部分是习题解析,不是简单地给出答案,而是仔细分析题目,讲解解题思路,从而有助于读者举一反三,学会用软件工程方法学分析问题和解决问题。

第1章 软件工程概述 1

1.1 软件危机与软件工程的起源 1

1.1.1 软件危机的出现 1

1.1.2 软件危机介绍 1

1.1.3 产生软件危机的原因 1

1.1.4 消除软件危机的途径 2

1.2 软件工程 2

1.2.1 什么是软件工程 2

1.2.2 软件工程的基本原理 2

1.3 软件工程包含的领域 3

习题 3

习题解析 4

第2章 软件过程 7

2.1 软件生命周期的基本任务 7

2.2 瀑布模型 7

2.3 快速原型模型 8

2.4 增量模型 9

2.5 螺旋模型 9

2.6 喷泉模型 10

2.7 Rational统一过程 11

2.7.1 最佳实践 11

2.7.2 RUP的10个要素 11

2.7.3 RUP生命周期 12

2.8 敏捷过程与极限编程 13

2.8.1 敏捷过程概述 13

2.8.2 极限编程 13

2.9 能力成熟度模型 14

2.9.1 能力成熟度模型的结构 14

2.9.2 能力成熟度等级 14

2.9.3 关键过程域 15

2.9.4 应用CMM 16

习题 16

习题解析 17

第3章 结构化分析 20

3.1 概述 20

3.2 与用户沟通的方法 21

3.2.1 访谈 21

3.2.2 简易的应用规格说明技术 21

3.2.3 软件原型 21

3.3 分析建模与规格说明 21

3.3.1 分析建模 21

3.3.2 软件需求规格说明 22

3.4 “实体—关系”图 22

3.5 数据流图 22

3.6 状态转换图 23

3.6.1 状态 23

3.6.2 事件 23

3.6.3 符号 23

3.7 数据字典 23

3.8 结构化分析的实际应用 24

3.8.1 问题陈述 24

3.8.2 问题定义 24

3.8.3 可行性研究 24

3.8.4 需求分析 24

习题 25

习题解析 28

第4章 结构化设计 33

4.1 结构化设计与结构化分析的关系 33

4.2 软件设计的概念和原理 34

4.2.1 模块化 34

4.2.2 抽象 34

4.2.3 逐步求精 35

4.2.4 信息隐藏 35

4.3 模块独立 35

4.3.1 耦合 35

4.3.2 内聚 36

4.4 启发规则 36

4.5 表示软件结构的图形工具 37

4.5.1 层次图和HIPO图 37

4.5.2 结构图 37

4.6 面向数据流的设计方法 37

4.6.1 概念 37

4.6.2 变换分析 38

4.6.3 事务分析 39

4.6.4 设计优化 39

4.7 人—机界面设计 40

4.7.1 人—机界面设计问题 40

4.7.2 人—机界面设计过程 41

4.7.3 界面设计指南 41

4.8 过程设计 42

4.9 过程设计的工具 42

4.9.1 程序流程图 42

4.9.2 盒图(N-S图) 42

4.9.3 PAD图 43

4.9.4 判定表 43

4.9.5 判定树 43

4.9.6 过程设计语言 43

4.10 面向数据结构的设计方法 43

习题 44

习题解析 45

第5章 结构化实现 49

5.1 编码 49

5.1.1 选择程序设计语言 49

5.1.2 编码风格 50

5.2 软件测试基础 50

5.2.1 测试目标 50

5.2.2 黑盒测试和白盒测试 50

5.2.3 测试准则 50

5.2.4 流图 50

5.3 白盒测试技术 51

5.3.1 逻辑覆盖 51

5.3.2 控制结构测试 51

5.4 黑盒测试技术 52

5.4.1 等价划分 52

5.4.2 边界值分析 53

5.4.3 错误推测 53

5.5 测试策略 53

5.5.1 测试步骤 54

5.5.2 单元测试 54

5.5.3 集成测试 54

5.5.4 确认测试 56

5.6 调试 56

5.6.1 调试过程 57

5.6.2 调试途径 57

5.7 软件可靠性 58

5.7.1 基本概念 58

5.7.2 估算平均无故障时间的方法 58

习题 60

习题解析 62

第6章 面向对象方法学导论 67

6.1 面向过程与面向对象程序设计 67

6.1.1 用对象分解取代功能分解 67

6.1.2 设计类等级 67

6.1.3 定义属性和服务 68

6.2 面向对象方法学概述 68

6.2.1 面向对象方法学的要点 68

6.2.2 面向对象的软件过程 69

6.3 面向对象方法学的主要优点 69

6.4 面向对象的概念 71

6.4.1 对象 71

6.4.2 其他概念 71

6.5 面向对象建模 73

6.6 对象模型 73

6.6.1 表示类的符号 73

6.6.2 表示关系的符号 74

6.7 动态模型 75

6.8 功能模型 76

6.9 3种模型之间的关系 76

习题 76

习题解析 78

第7章 面向对象分析 80

7.1 分析过程 80

7.1.1 概述 80

7.1.2 3个子模型与5个层次 80

7.2 需求陈述 81

7.3 建立对象模型 81

7.3.1 确定类与对象 81

7.3.2 确定关联 82

7.3.3 划分主题 83

7.3.4 确定属性 83

7.3.5 识别继承关系 84

7.3.6 反复修改 84

7.4 建立动态模型 84

7.4.1 编写脚本 85

7.4.2 设想用户界面 85

7.4.3 画事件跟踪图 85

7.4.4 画状态图 86

7.4.5 审查动态模型 86

7.5 建立功能模型 87

7.6 定义服务 87

习题 87

习题解析 89

第8章 面向对象设计 92

8.1 面向对象设计的准则 92

8.2 启发规则 93

8.3 系统分解 94

8.3.1 子系统之间的两种交互方式 94

8.3.2 组织系统的两种方案 95

8.3.3 设计系统的拓扑结构 95

8.4 设计问题域子系统 95

8.5 设计人—机交互子系统 96

8.5.1 设计人—机交互界面的准则 96

8.5.2 设计人—机交互子系统的策略 96

8.6 设计任务管理子系统 97

8.6.1 分析并发性 97

8.6.2 设计任务管理子系统 97

8.7 设计数据管理子系统 98

8.7.1 选择数据存储管理模式 98

8.7.2 设计数据管理子系统 98

8.8 设计类中的服务 99

8.8.1 确定类中应有的服务 99

8.8.2 设计实现服务的方法 99

8.9 设计关联 99

8.10 设计优化 100

8.10.1 确定优先级 100

8.10.2 提高效率的几项技术 100

8.10.3 调整继承关系 101

习题 101

习题解析 103

第9章 面向对象实现 106

9.1 程序设计语言 106

9.1.1 面向对象语言的优点 106

9.1.2 面向对象语言的技术特点 107

9.1.3 选择面向对象语言 107

9.2 程序设计风格 107

9.2.1 提高可重用性 107

9.2.2 提高可扩充性 108

9.2.3 提高健壮性 108

9.3 测试策略 108

9.3.1 面向对象的单元测试 108

9.3.2 面向对象的集成测试 108

9.3.3 面向对象的确认测试 109

9.4 设计测试用例 109

9.4.1 测试类的方法 109

9.4.2 集成测试方法 109

习题 110

习题解析 111

第10章 统一建模语言 113

10.1 概述 113

10.1.1 UML的系统结构 113

10.1.2 UML的图 114

10.1.3 UML的应用领域 115

10.2 静态建模机制 115

10.2.1 用例 115

10.2.2 类图、对象图和包 117

10.3 动态建模机制 118

10.3.1 消息 118

10.3.2 状态图 118

10.3.3 顺序图 118

10.3.4 协作图 119

10.3.5 活动图 119

10.4 描述物理架构的机制 120

10.4.1 逻辑架构和物理架构 120

10.4.2 构件图 120

10.4.3 部署图 120

10.5 使用和扩展UML 121

10.5.1 使用UML的准则 121

10.5.2 扩展UML的机制 121

习题 122

习题解析 123

第11章 计划 127

11.1 度量软件规模 127

11.1.1 代码行技术 127

11.1.2 功能点技术 127

11.2 工作量估算 128

11.2.1 静态单变量模型 128

11.2.2 动态多变量模型 128

11.2.3 COCOMO2模型 129

11.3 进度计划 130

11.3.1 基本原则 130

11.3.2 估算软件开发时间 130

11.3.3 Gantt图 130

11.3.4 工程网络 131

11.3.5 估算进度 131

11.3.6 关键路径 131

11.3.7 机动时间 131

习题 132

习题解析 132

第12章 组织 135

12.1 民主制程序员组 135

12.2 主程序员组 135

12.3 现代程序员组 136

12.4 软件项目组 136

12.4.1 3种组织方式 136

12.4.2 4种组织范型 137

习题 137

习题解析 137

第13章 控制 139

13.1 风险管理 139

13.1.1 软件风险分类 139

13.1.2 风险识别 139

13.1.3 风险预测 140

13.1.4 处理风险的策略 140

13.2 质量保证 140

13.2.1 软件质量 140

13.2.2 软件质量保证措施 141

13.3 配置管理 141

13.3.1 软件配置 141

13.3.2 软件配置管理过程 142

习题 142

习题解析 143

第14章 软件维护及软件文档 145

14.1 软件维护 145

14.1.1 软件维护的过程 145

14.1.2 软件维护的分类 145

14.1.3 软件的可维护性 146

14.1.4 软件维护的副作用 146

14.2 软件文档 146

习题 147

习题解析 148

第15章 形式化方法 151

15.1 应用形式化方法的准则 151

15.2 有穷状态机 151

15.2.1 基本概念 151

15.2.2 评论 152

15.3 Petri网 152

15.4 Z语言 153

15.4.1 简介 153

15.4.2 评论 153

习题 154

习题解析 154

第16章 软件重用 156

16.1 可重用的软件成分 156

16.2 软件重用过程 157

16.2.1 构件组装模型 157

16.2.2 类构件 157

16.2.3 重用过程模型 158

16.3 领域工程 158

16.3.1 分析过程 158

16.3.2 领域特征 159

16.3.3 结构建模和结构点 159

16.4 开发可重用的构件 160

16.4.1 为了重用的分析与设计 160

16.4.2 基于构件的开发 160

16.5 分类和检索构件 161

16.5.1 描述可重用的构件 161

16.5.2 重用环境 162

16.6 软件重用的效益 162

习题 162

习题解析 163

附录A 综合应用题解析 164

附录B 课程设计指导 199

附录C 模拟考试题与参考答案 204

试卷(一) 204

试卷(一)参考答案 206

试卷(二) 208

试卷(二)参考答案 209

试卷(三) 211

试卷(三)参考答案 213

参考文献 216