《软件工程基础教程》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:方志刚主编
  • 出 版 社:北京:科学出版社
  • 出版年份:2003
  • ISBN:7030120000
  • 页数:202 页
图书介绍:本书是软件工程学的基本教程,内容包括:软件危机、软件生存周期、软件分析、软件设计、软件实现等知识及其应用实例,同时还附有实用软件工程文档。

第1章 绪论 1

1.1 软件发展简史 1

1.1.1 什么是软件 1

1.1.2 软件的分类 2

1.1.3 软件技术的发展 3

1.1.4 软件开发技术的发展 3

1.2 软件危机 4

1.2.1 什么是软件危机 4

1.2.2 软件危机的形成原因 5

1.2.3 软件危机的解决方法 6

1.3 软件工程 6

1.3.1 什么是软件工程 6

1.3.2 软件工程的基本原理 7

1.3.3 软件工程的基本内容 8

1.4 关于本书 9

习题 9

第2章 软件生存周期 10

2.1 软件工程过程 10

2.1.1 什么是软件工程过程 10

2.1.2 软件过程模型 11

2.1.3 过程建造技术 12

2.2 软件生存周期 12

2.2.1 软件定义 12

2.2.2 软件开发 14

2.2.3 软件使用、维护和退役 16

2.3 软件生存周期瀑布模型 17

2.4 软件生存周期原型模型 18

2.5.1 螺旋模型 19

2.5.2 喷泉模型 19

2.5 软件生存周期其他模型 19

2.5.3 智能模型 20

习题 20

第3章 软件分析 21

3.1 系统分析 21

3.1.1 系统分析的目标 21

3.1.2 系统分析的过程 22

3.2 可行性分析 22

3.2.1 可行性研究的任务 22

3.2.2 可行性研究的步骤 23

3.2.3 系统流程图 23

3.2.4 成本/效益分析 24

3.3 软件开发计划 26

3.3.1 软件开发计划的内容 26

3.3.2 进度安排 26

3.4.1 需求分析的任务 27

3.4 需求分析 27

3.4.2 需求分析的过程 28

3.4.3 需求分析的原则 28

3.4.4 需求分析的方法 29

3.4.5 需求分析的工具 29

3.5 结构化分析 30

3.5.1 工作内容和任务 30

3.5.2 数据流图 31

3.5.3 数据字典 35

3.5.4 加工逻辑描述工具 36

3.6 面向对象分析 37

3.6.1 面向对象方法的基本概念和基本特征 37

3.6.2 面向对象分析的基本过程 40

3.6.3 面向对象的模型 41

3.6.4 目前流行的OOA方法概述 43

习题 46

第4章 软件设计 48

4.1 软件设计的任务 48

4.2 总体设计 48

4.2.1 软件总体设计的基本任务 48

4.2.2 总体设计的过程 49

4.2.3 总体设计的图形工具 50

4.3 软件设计的基本原理 52

4.3.1 模块化设计 52

4.3.2 抽象化 52

4.3.3 信息隐蔽 53

4.3.4 模块独立性 53

4.4.1 软件设计方法概述 55

4.4 软件设计方法 55

4.3.6 启发式规则 55

4.3.5 自顶向下逐步细化 55

4.4.2 数据结构设计 56

4.4.3 用户界面设计 56

4.5 详细设计 57

4.5.1 详细设计的任务 57

4.5.2 详细设计的工具 57

4.5.3 面向数据结构的设计方法 61

4.6 结构化设计 63

4.6.1 SD方法概述 63

4.6.2 数据流图的类型 63

4.6.3 SD方法的步骤 64

4.6.4 变换分析 65

4.6.5 事务分析 66

4.6.6 软件模块结构的改进和设计优化 67

4.7.1 面向对象设计的方法 68

4.7 面向对象设计 68

4.7.2 面向对象设计的准则和启发规则 69

4.7.3 Coad-Yourdon的面向对象方法 70

习题 71

第5章 数据分析与设计 72

5.1 数据需求分析 72

5.1.1 什么是数据需求分析 72

5.1.2 数据结构的基本概念 72

5.1.3 数据需求分析的基本任务 74

5.2 数据设计 74

5.2.1 什么是数据设计 74

5.2.2 数据设计的基本原则 75

5.3 抽象数据类型 76

5.3.1 什么是抽象数据类型 76

5.3.2 抽象数据类型的定义与实现 77

5.3.3 抽象数据类型的优点 78

5.4 实体联系方法 79

5.4.1 实体联系模型 79

5.4.2 实体联系图 80

5.5 数据库设计 80

5.5.1 数据库系统的三级模式结构 80

5.5.2 数据库设计的内容 81

5.5.3 E-R模型向关系数据模型的转换 82

5.5.4 标准范式与数据规范化 83

5.5.5 面向对象的数据库技术 83

习题 84

第6章 用户界面设计 85

6.1 人机交互与用户界面 85

6.1.1 什么是人机交互 85

6.1.2 什么是用户界面 85

6.1.3 用户界面管理系统 86

6.1.4 人机交互与人机工程学 87

6.1.5 人机交互的发展历史 90

6.2 用户界面设计原则 95

6.2.1 用户界面设计基本准则 95

6.2.2 屏幕设计与色彩 96

6.2.3 响应时间与显示速度 98

6.2.4 联机帮助与用户手册 100

6.2.5 错误提示与处理 103

6.3 图形用户界面设计 105

6.3.1 图形用户界面的基本构成 105

6.3.2 多窗口界面设计 105

6.3.3 菜单界面设计 107

6.3.4 对话框设计 108

6.3.5 直接操纵界面设计 110

6.4.1 交互设备新进展 111

6.4 人机交互技术新进展 111

6.4.2 多通道用户界面 115

6.4.3 虚拟现实技术 118

6.4.4 听觉界面与可听化 119

6.4.5 自适应和智能用户界面 126

6.4.6 理想人机交互模式 127

习题 128

第7章 软件实现 129

7.1 程序设计语言 129

7.1.1 程序设计语言的特性 129

7.1.2 程序设计语言的分类 129

7.1.3 程序设计语言的特点 131

7.1.4 程序设计语言的选择 131

7.3 程序设计风格 132

7.2.2 程序设计和程序编码 132

7.2.3 编码工具 132

7.2 程序设计方法 132

7.2.1 程序设计方法简介 132

7.3.1 代码文档化 133

7.3.2 数据说明 133

7.3.3 语句构造 134

7.3.4 输入/输出 134

7.3.5 效率 134

7.4 结构化程序设计 135

7.4.1 结构化程序设计的原则 135

7.4.2 结构化程序设计的方法 136

7.5 面向对象程序设计 137

7.5.1 面向对象编程概念 137

7.5.2 面向对象语言的技术特点 138

7.5.3 面向对象编程语言 138

习题 139

8.1.1 什么是软件测试 140

第8章 软件测试 140

8.1 软件测试过程 140

8.1.2 软件测试的目标 141

8.1.3 软件测试的基本原则 141

8.1.4 软件测试的过程 142

8.2 软件测试的分类 143

8.2.1 单元测试 143

8.2.2 组装测试 145

8.2.3 确认测试 148

8.2.4 系统测试 150

8.2.5 软件测试技术 150

8.3 白盒测试 152

8.3.1 逻辑覆盖 152

8.3.2 测试设计实例 155

8.4.1 等价类划分 158

8.4 黑盒测试 158

8.4.2 边界值分析 160

8.4.3 错误推测 161

8.4.4 综合策略 162

8.5 软件调试 163

8.5.1 调试方法 163

8.5.2 调试策略 164

习题 165

第9章 软件维护 167

9.1 可维护性 167

9.1.1 什么是可维护性 167

9.1.2 影响可维护性的因素 167

9.1.4 保证可维护性的复审 168

9.2 软件维护分类 168

9.1.3 若干量化的测度 168

9.2.1 改正性维护 169

9.2.2 适应性维护 169

9.2.3 完善性维护 169

9.2.4 预防性维护 169

9.3 软件维护实施 170

9.3.1 软件维护的步骤 170

9.3.2 软件维护的组织 173

9.3.3 维护文档与编写 174

9.4 逆向工程与再工程 175

9.4.1 恢复信息的级别 175

9.4.2 恢复信息的方法 176

习题 177

10.1.3 制定项目计划 178

10.1.1 什么是软件项目管理 178

10.1.2 启动一个项目 178

10.1 软件项目管理过程 178

第10章 软件管理 178

10.1.4 计划的追踪和控制 179

10.1.5 评审和评价计划的完成程度 179

10.1.6 编写管理文档 179

10.2 成本估算 179

10.2.1 软件开发成本估算方法 179

10.2.2 专家判定技术 180

10.3 风险分析 181

10.3.1 风险识别 181

10.3.2 风险估计 183

10.3.3 风险评价 184

10.3.4 风险驾驭和监控 185

10.4 进度安排 186

10.4.2 任务的确定与并行性 187

10.4.1 软件开发小组人数与软件生产率 187

10.4.3 制定开发进度计划 188

10.4.4 进度安排的方法 188

10.4.5 项目的追踪和控制 190

10.5 软件项目的组织 191

10.5.1 项目任务的划分 191

10.5.2 软件项目组织的建立 191

10.5.3 人员配备 194

10.5.4 指导与检验 195

10.6 软件质量保证 197

10.6.1 什么是软件质量保证 197

10.6.2 软件质量保证(SQA)活动 197

10.6.3 质量保证与检验 198

10.6.4 软件质量认证 199

习题 201

主要参考文献 202