第1章 软件工程概述 1
1.1 软件 1
1.1.1 软件的概念及特点 1
1.1.2 软件的分类 1
1.1.3 软件危机的原因及解决途径 3
1.2 软件工程概念 4
1.2.1 软件工程的定义和内容 4
1.2.2 软件工程的基本原理 4
1.3 软件生存周期 5
1.4 常用软件开发过程模型 6
1.4.1 瀑布模型 6
1.4.2 快速原型模型 7
1.4.3 螺旋模型 8
1.4.4 喷泉模型 9
1.5 软件开发方法简述 9
1.5.1 面向数据流的结构化方法 9
1.5.2 面向数据结构的Jackson方法 10
1.5.3 面向对象的方法 10
1.6 软件文档 11
1.6.1 软件文档在软件开发中的地位和作用 11
1.6.2 软件文档的种类及写作要求 12
小结 13
习题1 14
第2章 可行性研究 15
2.1 问题定义 15
2.2 可行性研究的任务 15
2.3 可行性研究的过程 16
2.4 可行性研究阶段使用的工具 17
2.4.1 系统流程图 17
2.4.2 数据流图 19
2.4.3 数据字典 24
2.5 成本效益分析 26
2.6 网上招聘系统可行性研究报告 28
小结 31
习题2 31
第3章 需求分析 32
3.1 需求分析的任务 32
3.2 需求分析的过程 33
3.3 需求分析阶段使用的工具 35
3.3.1 实体关系图 35
3.3.2 数据规范化 36
3.3.3 层次框图 36
3.3.4 Warnier图 37
3.3.5 描述算法的IPO图 38
3.4 网上招聘系统需求规格说明书 38
小结 42
习题3 42
第4章 概要设计 44
4.1 软件设计的目标和任务 44
4.1.1 软件设计的目标 44
4.1.2 软件设计的任务 44
4.2 概要设计的过程 45
4.3 软件设计的原理 47
4.3.1 模块化 47
4.3.2 抽象 48
4.3.3 信息隐蔽 49
4.3.4 模块独立 49
4.4 启发规则 52
4.4.1 改进软件结构提高模块独立性 52
4.4.2 模块规模适中 52
4.4.3 适当控制深度、宽度、扇出、扇入 52
4.4.4 模块的作用域应该在控制域之内 53
4.4.5 力争降低模块接口的复杂程度 53
4.4.6 设计单入口单出口的模块 53
4.4.7 模块功能可预测 53
4.5 概要设计阶段使用的工具 53
4.5.1 层次图 53
4.5.2 HIPO图 54
4.5.3 结构图 55
4.5.4 程序系统结构图 56
4.6 结构化设计方法 56
4.6.1 基本概念 56
4.6.2 系统结构图中的模块 57
4.6.3 结构化设计过程 58
4.6.4 变换分析 58
4.6.5 事务分析 61
4.6.6 混合结构分析 62
4.7 网上招聘系统概要设计说明书 62
小结 66
习题4 66
第5章 详细设计 67
5.1 详细设计的过程 67
5.1.1 详细设计的基本任务 67
5.1.2 详细设计方法 68
5.2 详细设计阶段使用的工具 68
5.2.1 程序流程图 68
5.2.2 盒图 69
5.2.3 PAD图 70
5.2.4 判定表与判定树 71
5.2.5 过程设计语言 72
5.3 面向数据结构的设计方法 75
5.3.1 改进的Jackson图 75
5.3.2 Jackson方法 76
5.4 网上招聘系统详细设计说明书 79
小结 83
习题5 84
第6章 编码 85
6.1 选择开发语言 85
6.1.1 程序设计语言分类及特点 85
6.1.2 选择的标准 87
6.2 软件编码的规范 88
6.2.1 程序中的注释 88
6.2.2 数据说明 88
6.2.3 语句结构 88
6.2.4 输入和输出 89
6.3 网上招聘系统编码规范 90
小结 92
习题6 93
第7章 测试 94
7.1 测试的目标和原则 94
7.2 测试用例设计 95
7.2.1 黑盒测试 95
7.2.2 白盒测试 97
7.3 测试的步骤 100
7.3.1 单元测试 100
7.3.2 集成测试 102
7.3.3 确认测试 104
7.3.4 系统测试 105
7.4 常用测试工具及特点 105
7.5 软件测试阶段文档写作规范 107
7.5.1 测试文档的类型 107
7.5.2 软件测试过程文档 108
7.6 网上招聘系统客户端测试文档 110
7.6.1 测试计划文档 110
7.6.2 测试设计文档 112
小结 115
习题7 115
第8章 维护 116
8.1 软件维护的概念及特点 116
8.2 软件的可维护性 118
8.3 软件维护的步骤 119
8.4 软件维护过程文档写作规范 121
8.5 用户手册的主要内容及写作要求 121
8.6 网上招聘系统维护文档 122
小结 122
习题8 123
第9章 面向对象的分析设计与实现 124
9.1 传统方法学存在的缺点 124
9.2 面向对象的基本概念 124
9.2.1 基本概念 125
9.2.2 面向对象建模 126
9.3 面向对象分析 128
9.3.1 面向对象分析的特点 128
9.3.2 需求陈述 129
9.3.3 建立对象模型 129
9.3.4 建立动态模型 130
9.3.5 建立功能模型 131
9.3.6 定义服务 132
9.4 面向对象设计 133
9.4.1 面向对象设计准则 133
9.4.2 启发规则 134
9.4.3 系统分解 135
9.4.4 设计问题域子系统 137
9.4.5 设计人—机交互子系统 138
9.4.6 设计任务管理子系统 140
9.4.7 设计数据管理子系统 142
9.4.8 设计类中的服务 144
9.4.9 设计关联 144
9.4.10 设计优化 146
9.5 面向对象实现 148
9.5.1 程序设计语言 148
9.5.2 设计风格 151
小结 153
习题9 153
第10章 UML开发方法 154
10.1 UML概述 154
10.2 UML的主要目标和特点 154
10.2.1 UML的主要目标 154
10.2.2 UML的主要特点 154
10.3 UML的应用领域 155
10.4 UML的建模框架和基本概念 155
10.4.1 UML的建模框架 155
10.4.2 UML的基本概念 156
10.5 UML的基本准则和图形表示 159
10.5.1 UML的基本准则 159
10.5.2 UML的图形表示 160
10.6 运用UML对学籍管理系统建模 164
小结 166
习题10 166
第11章 描绘UML的未来 167
11.1 系统需求 167
11.2 从业务领域的扩展得到的经验 168
11.3 专家系统 168
11.3.1 专家系统的构件 168
11.3.2 知识库建模 170
小结 172
习题11 172
第12章 面向对象实例——银行系统的分析与设计 173
12.1 系统需求 173
12.2 分析问题领域 173
12.2.1 识别参与者 173
12.2.2 识别用例 174
12.2.3 用例的事件流描述 175
12.3 静态结构模型 183
12.3.1 定义系统对象类 183
12.3.2 定义用户界面类 188
12.3.3 建立类图 191
12.3.4 建立数据库模型 192
12.4 动态行为模型 193
12.5 物理模型 200
小结 201
第13章 传统软件工程实例——教学管理系统分析与设计 202
13.1 可行性研究 202
13.2 需求分析 206
13.3 系统设计 211
13.4 系统实现 216
小结 216
参考文献 217