《软件工程 第4版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:李代平,杨成义编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2017
  • ISBN:9787302473350
  • 页数:332 页
图书介绍:本书是在《软件工程》(第3版)的基础上,根据使用该教材的教师和读者的意见,对原书内容上做了很多调整和修改。增强了方法论。针对软件工程的基本理论、可行性研究、软件需求分析、总体设计、详细设计、面向对象分析与设计、接口设计、软件实现、软件质量、软件测试、软件维护、软件项目管理与计划等知识进行了严格的论述,实例配合解释概念。同时每章都配有习题。

第1章 绪论 1

1.1 软件概述 1

1.1.1 什么是计算机软件 1

1.1.2 软件的特点 2

1.1.3 软件的分类 3

1.1.4 软件的发展 5

1.1.5 软件危机 6

1.2 软件工程概述 8

1.2.1 软件工程与方法学 8

1.2.2 软件工程的基本原理 10

1.2.3 软件工程的目标 11

1.2.4 软件工程的内容 13

1.2.5 软件工程原则 13

1.2.6 软件工程面临的问题 15

小结 15

综合练习1 16

第2章 基本理论 17

2.1 软件工程过程 17

2.2 软件生命周期 18

2.2.1 软件分析时期 19

2.2.2 软件设计时期 20

2.2.3 编码与测试时期 21

2.2.4 运行与维护时期 21

2.3 软件生命周期模型 22

2.3.1 软件生命周期模型的概念 22

2.3.2 瀑布模型 22

2.3.3 原型模型 24

2.3.4 增量模型 25

2.3.5 螺旋模型 27

2.3.6 喷泉模型 28

2.3.7 基于知识的模型 29

2.3.8 变换模型 29

2.4 软件开发方法 30

2.4.1 结构化方法 30

2.4.2 Jackson方法 31

2.4.3 维也纳开发方法 31

2.4.4 面向对象的开发方法 32

2.5 软件工具与开发 32

2.5.1 软件工具箱 32

2.5.2 软件开发环境 33

2.5.3 计算机辅助软件工程 33

小结 33

综合练习2 34

第3章 可行性研究 35

3.1 可行性研究任务与步骤 35

3.1.1 研究任务 36

3.1.2 研究步骤 39

3.2 系统分析 40

3.2.1 系统分析员 40

3.2.2 面临的问题域 41

3.2.3 通信技术 42

3.3 分析原理 43

3.3.1 信息域 44

3.3.2 建立模型 45

3.3.3 分解 45

3.4 系统模型与模拟 46

3.4.1 系统模型 46

3.4.2 系统建模和模拟 47

3.5 成本-效益分析 48

3.6 可行性研究的文档 50

3.7 项目开发计划 52

3.7.1 方案选择 52

3.7.2 制订项目开发计划 52

小结 53

综合练习3 53

第4章 软件需求分析 55

4.1 需求分析 55

4.1.1 需求分析的特点 55

4.1.2 需求分析的原则 56

4.1.3 需求分析的任务 57

4.1.4 需求分析的方法 58

4.2 结构化分析 59

4.2.1 自顶向下逐层分解 60

4.2.2 结构化分析步骤 61

4.3 系统流程图 61

4.4 数据流图 63

4.4.1 基本图形符号 64

4.4.2 画数据流图 65

4.4.3 结构化分析方法的应用 67

4.5 数据字典 73

4.5.1 内容及格式 74

4.5.2 数据字典的实现 76

小结 76

综合练习4 76

第5章 总体设计 79

5.1 软件设计的重要性 79

5.2 设计过程 80

5.3 软件总体设计 81

5.4 设计基本原理 83

5.4.1 抽象 83

5.4.2 细化 83

5.4.3 模块化 84

5.4.4 软件体系结构 85

5.4.5 程序结构 86

5.4.6 数据结构 87

5.4.7 软件过程 88

5.5 体系结构设计 89

5.5.1 软件结构图 90

5.5.2 模块的大小 91

5.5.3 扇出和扇入与深度和宽度 91

5.5.4 模块的耦合 92

5.5.5 模块的内聚 94

5.5.6 结构设计的一般准则 97

5.5.7 模块的作用域与控制域 98

5.6 结构化设计 99

5.6.1 数据流的类型 99

5.6.2 过程步骤 100

5.6.3 变换分析设计 101

5.6.4 事务分析设计 103

5.6.5 混合流设计 104

5.6.6 结构化设计方法应用示例 105

5.6.7 设计的后期处理 107

5.7 软件结构优化 107

5.7.1 软件结构设计优化准则 108

5.7.2 软件结构的HIPO图 109

小结 109

综合练习5 110

第6章 软件详细设计 111

6.1 详细设计的任务与方法 111

6.1.1 详细设计的基本任务 111

6.1.2 详细设计方法 112

6.2 设计表示法 113

6.2.1 结构化语言 113

6.2.2 判定表 114

6.2.3 判定树 115

6.3 结构化程序设计 115

6.3.1 流程图程序 116

6.3.2 三种基本控制结构 116

6.3.3 常用符号 117

6.3.4 正规程序 119

6.3.5 基本程序 120

6.3.6 结构化程序 122

6.4 结构化定理 123

6.4.1 程序函数 123

6.4.2 基本定理 124

6.4.3 非结构化转换为结构化 126

6.4.4 常见错误 127

6.5 过程设计语言 130

小结 133

综合练习6 133

第7章 面向对象分析 135

7.1 面向对象的相关概念 135

7.1.1 对象 135

7.1.2 类 136

7.1.3 属性 136

7.1.4 服务(操作或方法) 136

7.1.5 封装 136

7.1.6 继承 136

7.1.7 消息 139

7.1.8 结构与连接 139

7.2 UML的基本图标 140

7.3 对象分析 143

7.3.1 用户需求与研究问题域 144

7.3.2 发现对象方法 145

7.3.3 定义属性 147

7.3.4 定义服务 148

7.4 一般-特殊结构 149

7.5 整体-部分结构 150

7.6 实例连接 151

7.6.1 简单的实例连接 151

7.6.2 复杂的实例连接及其表示 152

7.7 消息连接 152

小结 154

综合练习7 154

第8章 面向对象设计 157

8.1 系统总体方案 157

8.2 软件体系结构 158

8.3 设计环境 161

8.3.1 为适应编程环境的调整 162

8.3.2 对象设计的步骤 165

8.4 完善对象的细节 166

8.5 设计算法 168

8.5.1 选择算法 168

8.5.2 选择数据结构 169

8.6 关联设计 169

8.6.1 单向关联 170

8.6.2 双向关联 170

8.7 设计优化 170

小结 173

综合练习8 173

第9章 用户界面设计 175

9.1 人的因素 175

9.1.1 分析活动者 176

9.1.2 从Use Case分析人机交互 177

9.1.3 分析处理异常事件的人机交互 179

9.1.4 命令的组织 180

9.1.5 输出信息的组织结构 183

9.2 界面设计风格 184

9.2.1 菜单的选择 184

9.2.2 对话框 185

9.2.3 窗口 186

9.3 人机界面的设计准则 187

9.4 人机界面设计过程 188

9.4.1 用户界面模型 188

9.4.2 界面支持系统 189

9.4.3 界面元素 190

9.4.4 设计的形式 191

9.5 描述方法与技术 193

9.5.1 灵境技术 194

9.5.2 多通道人机交互技术 195

小结 195

综合练习9 196

第10章 数据库及其接口设计 197

10.1 数据管理系统及其选择 197

10.2 技术整合 204

10.3 数据接口 205

10.4 对象存储方案和数据接口的设计策略 206

10.4.1 针对文件系统的设计 207

10.4.2 针对RDBMS的设计 211

10.4.3 使用OODBMS 220

小结 220

综合练习10 220

第11章 软件实现 222

11.1 程序设计语言的特性及选择 222

11.1.1 程序设计语言特性 222

11.1.2 程序设计语言的选择 224

11.2 程序设计风格 226

11.3 程序设计效率 228

11.3.1 代码效率 228

11.3.2 内存效率 229

11.3.3 I/O效率 229

11.4 冗余编程 230

11.5 软件容错技术 230

11.5.1 容错软件 231

11.5.2 容错的一般方法 232

11.5.3 容错软件的设计过程 234

11.5.4 软件的容错系统结构 235

小结 238

综合练习11 238

第12章 软件质量 240

12.1 软件质量概述 240

12.1.1 软件质量的定义 240

12.1.2 软件质量特性 240

12.1.3 软件质量特性之间的竞争 244

12.2 软件质量的度量和评价 246

12.2.1 软件质量的度量 246

12.2.2 软件质量度量的分类 247

12.2.3 软件质量评价 247

12.3 软件质量保证 250

12.3.1 软件质量保证的概述 250

12.3.2 软件质量保证原则 250

12.3.3 软件质量保证计划 251

12.3.4 软件质量保证的措施 251

12.3.5 软件质量管理小组 251

12.4 技术评审与审查 252

12.4.1 评审过程 252

12.4.2 选择参加评审的成员 253

12.4.3 评审的管理和组织 253

12.4.4 评审的方法 253

12.4.5 走查和审查 253

12.4.6 开发过程的评审 254

12.4.7 对评审的综合评价 255

12.5 软件的可靠性 256

小结 257

综合练习12 258

第13章 软件测试 259

13.1 软件测试概述 259

13.1.1 软件测试的目的 259

13.1.2 软件测试的原则 259

13.2 测试方法 260

13.2.1 静态测试 260

13.2.2 动态测试 260

13.3 测试用例的设计 262

13.3.1 白盒技术 262

13.3.2 黑盒技术 266

13.4 测试过程 270

13.4.1 软件测试过程中的信息 270

13.4.2 软件测试的步骤与各开发阶段的关系 271

13.4.3 单元测试 272

13.4.4 集成测试 273

13.4.5 确认测试 275

13.5 调试 276

小结 277

综合练习13 278

第14章 软件维护 280

14.1 软件维护概述 280

14.1.1 软件维护的定义 280

14.1.2 影响维护工作的因素 281

14.1.3 维护成本 281

14.2 软件可维护性 282

14.2.1 软件可维护性的定义 282

14.2.2 可维护性的度量 282

14.3 软件维护的特点 284

14.3.1 非结构化维护和结构化维护 284

14.3.2 维护的困难性 285

14.3.3 软件维护的费用 286

14.4 软件维护的实施 287

14.4.1 维护的组织 287

14.4.2 维护的流程 287

14.4.3 维护技术 289

14.4.4 维护的副作用 289

14.5 维护“老化代码” 290

14.6 逆向工程和再工程 291

14.6.1 预防性维护 291

14.6.2 逆向工程的元素 292

14.6.3 再工程中的重构技术 293

小结 296

综合练习14 297

第15章 软件项目管理与计划 298

15.1 软件项目管理概述 298

15.1.1 软件管理的对象 298

15.1.2 软件开发中的资源 299

15.1.3 分解技术 300

15.2 项目管理过程 301

15.3 软件开发成本估算 302

15.3.1 软件开发成本估算方法 302

15.3.2 软件开发成本估算的经验模型 303

15.4 风险分析 305

15.4.1 风险识别 305

15.4.2 风险估算 306

15.4.3 风险评价 306

15.4.4 风险驾驭和监控 307

15.5 进度安排 309

15.5.1 软件开发小组人数与软件生产率 309

15.5.2 任务的确定与并行性 310

15.5.3 制定开发进度计划 311

15.5.4 进度安排的图形方法 312

15.5.5 项目的追踪和控制 312

15.6 软件项目的组织 313

15.6.1 软件项目管理的特点 313

15.6.2 软件项目组织的建立 314

15.6.3 人员配备 316

小结 318

综合练习15 318

参考答案 320

参考文献 331