图书目录

目  录

第1章  软件工程综述 1

1.1  软件工程的背景 1

1.1.1  软件及其特性 1

1.1.2  软件危机 4

1.2  软件工程概述 5

1.2.1  软件工程的基本概念 5

1.2.2  软件工程的目标 6

1.2.3  软件工程三要素 6

1.2.4  软件工程的多样性 9

1.2.5  软件工程与Web 10

1.2.6  软件工程的通用原则 13

1.2.7  软件工程人员的职业道德 14

本章小结 15

思政园地 15

本章练习题 16

第2章  软件过程 17

2.1  软件过程概述 17

2.1.1  软件描述 17

2.1.2  软件设计与实现 18

2.1.3  软件有效性验证 20

2.1.4  软件进化 21

2.1.5  软件开发团队组成 22

2.2  软件过程模型概述 23

2.2.1  软件过程模型 23

2.2.2  应对变更 26

2.2.3  统一软件开发过程 29

2.3  敏捷软件开发 31

本章小结 34

思政园地 34

本章练习题 35

第3章  可行性研究 37

3.1  可行性研究的任务 37

3.2  可行性研究的重要性 38

3.3  可行性研究过程 39

3.4  系统流程图与工作流程 40

3.4.1  系统流程图规范 41

3.4.2  系统流程图分析案例 42

3.4.3  分层 42

3.5  数据流图与系统功能 42

3.5.1  数据流图规范 43

3.5.2  数据流图分析案例 43

3.5.3  命名 45

3.5.4  用途 45

3.6  成本/效益分析 45

3.6.1  成本估算 46

3.6.2  成本/效益分析的方法 47

本章小结 48

思政园地 49

本章练习题 49

第4章  结构化需求分析 51

4.1  需求 51

4.1.1  需求的定义 51

4.1.2  需求的层次 52

4.1.3  需求的分类 54

4.2  需求工程 55

4.2.1  需求工程的任务 55

4.2.2  需求工程的活动 55

4.3  需求获取 56

4.3.1  需求获取中的常见困难 56

4.3.2  定义项目前景和范围 58

4.3.3  选择信息的来源 60

4.3.4  需求获取的方法 61

4.4  需求分析 62

4.4.1  过程建模 63

4.4.2  数据建模 74

4.4.3  过程模型与数据模型的联系 80

4.4.4  结构化分析的局限性 81

4.5  需求规格说明 81

4.5.1  需求规格说明文档的类型 81

4.5.2  软件需求规格说明文档的读者 82

4.5.3  软件需求规格说明文档模板 83

4.6  需求验证 83

4.6.1  需求验证的概念 83

4.6.2  需求验证的方法 83

4.7  需求管理 85

4.7.1  建立和维护需求基线 85

4.7.2  建立需求跟踪信息 85

4.7.3  进行变更控制 86

4.8  结构化需求分析方法案例 87

本章小结 92

思政园地 92

本章练习题 92

第5章  结构化软件设计 96

5.1  软件设计的相关概念 96

5.1.1  软件设计的任务 96

5.1.2  软件设计的原则 97

5.1.3  结构化设计图形工具 101

5.1.4  软件设计的启发规则 104

5.2  体系结构设计 107

5.2.1  数据流类型 107

5.2.2  变换流的映射方法 107

5.2.3  事务流的映射方法 112

5.3  数据设计 115

5.3.1  文件设计 115

5.3.2  数据库设计 115

5.4  接口设计 118

5.4.1  接口设计概述 118

5.4.2  人机界面的交互设计 119

5.5  过程设计 120

5.5.1  结构化程序设计 120

5.5.2  过程设计工具 120

5.6  软件设计规格说明书文档 122

本章小结 122

思政园地 123

本章练习题 123

第6章  面向对象的需求分析 128

6.1  面向对象的基本概念 128

6.1.1  对象与类 128

6.1.2  封装、继承和多态性 130

6.1.3  面向对象分析概述 134

6.2  案例说明 135

6.3  上下文模型 136

6.4  活动图与业务流程 136

6.4.1  活动图规范 136

6.4.2  活动图建模 138

6.5  用例图与系统需求 139

6.5.1  用例规范 140

6.5.2  从业务流程到用例图建模 142

6.6  静态结构与类图 146

6.6.1  静态结构与类图的分类 146

6.6.2  类图规范 147

6.6.3  类图建模 149

6.7  时序图与交互模型 153

6.7.1  时序图规范 154

6.7.2  时序图验证 155

6.8  状态图与事件驱动模型 157

6.8.1  状态图规范 157

6.8.2  识别状态空间 159

6.8.3  状态图建模 160

本章小结 160

思政园地 161

本章练习题 161

第7章  面向对象的设计 163

7.1  面向对象软件设计概述 163

7.1.1  面向对象设计的过程 163

7.1.2  面向对象设计准则 165

7.2  体系结构设计 166

7.2.1  分层体系结构 166

7.2.2  三层架构 167

7.2.3  采用MVC模式的Web体系结构 168

7.2.4  系统逻辑结构与类包图 171

7.2.5  系统物理体系结构与构件图 173

7.2.6  系统物理体系结构与部署图 175

7.3  构件级设计 177

7.3.1  从分析类到设计类 177

7.3.2  从用例场景到设计类 178

7.3.3  构件详细类图建模 181

7.4  用户界面设计 183

7.4.1  把控制权交给用户 183

7.4.2  减轻用户的记忆负担 184

7.4.3  保持界面一致 184

本章小结 185

思政园地 185

本章练习题 185

第8章  基于构件的开发 187

8.1  实施阶段的准备工作 187

8.2  基于构件的编码 188

8.2.1  开发环境 188

8.2.2  从雇员管理构件设计类图到编码 189

8.2.3  雇员管理构件编码 190

8.3  实现问题 202

8.3.1  复用 203

8.3.2  配置管理 203

8.3.3  宿主机-目标机开发 204

本章小结 205

思政园地 205

本章练习题 205

第9章  软件项目的测试 207

9.1  软件测试概述 207

9.2  软件测试技术 210

9.2.1  黑盒测试 210

9.2.2  白盒测试 214

9.2.3  灰盒测试 218

9.3  软件测试过程 218

9.3.1  单元测试 218

9.3.2  集成测试 219

9.3.3  确认测试 220

9.3.4  系统测试 221

9.3.5  验收测试 222

9.3.6  回归测试 223

本章小结 223

思政园地 224

本章练习题 224

第10章  软件实施、维护与进化 226

10.1  软件实施概述 226

10.2  软件维护概述 228

10.2.1  软件维护的类型 228

10.2.2  软件维护存在的问题 229

10.2.3  软件维护的风险 230

10.2.4  软件维护的过程 231

10.2.5  软件的可维护性 231

10.3  软件进化概述 233

10.3.1  进化过程 233

10.3.2  遗留系统 234

10.3.3  软件再工程 235

本章小结 238

思政园地 238

本章练习题 238

第11章  软件工程标准与文档 240

11.1  软件工程标准 240

11.2  软件工程国家标准 241

11.3  软件工程文档标准(GB/T 8567 —2006) 243

11.3.1  软件生命周期与各种文档的编制 243

11.3.2  文档编制中的考虑因素 245

11.3.3  可行性分析(研究)报告 247

11.3.4  软件开发计划 248

11.3.5  系统/子系统需求规格说明 253

11.3.6  系统/子系统设计(结构设计)说明 260

11.3.7  数据库(顶层)设计说明 266

11.3.8  测试计划 268

11.3.9  测试报告 272

11.3.10  项目开发总结报告 274

11.3.11  用户手册 276

11.3.12  面向对象软件文档的编制 279

本章小结 288

本章练习题 288