第1章 软件工程概述 1
1.1 软件与软件危机 1
1.1.1 软件定义 1
1.1.2 软件分类 1
1.1.3 软件危机 2
1.2 软件工程的概念与目标 4
1.2.1 软件工程概念 4
1.2.2 追求的目标 4
1.3 软件生存周期 6
1.4 软件开发模型 8
1.4.1 瀑布模型 9
1.4.2 演化模型 10
1.4.3 原型模型 11
1.4.4 螺旋模型 12
1.4.5 极限编程模型 14
1.5 软件项目团队管理 16
1.5.1 现代软件企业项目的组织要素 16
1.5.2 唐僧师徒取经故事的启示 17
1.5.3 构建现代软件项目团队成功的要素 17
1.6 本章小结 19
习题1 20
第2章 软件文档 21
2.1 软件文档简介 21
2.1.1 软件文档 21
2.1.2 软件文档分类 22
2.1.3 软件文档的作用 22
2.2 软件文档的编写要点 23
2.3 常用软件工程文档模板 24
2.3.1 软件需求规格说明书 24
2.3.2 软件概要设计说明书 26
2.3.3 软件详细设计说明书 28
2.3.4 软件测试计划模板 30
2.3.5 软件测试分析报告 32
2.4 本章小结 34
习题2 34
第3章 需求分析 35
3.1 软件需求分析概述 35
3.1.1 需求分析的目标 35
3.1.2 需求分析的内容 35
3.1.3 需求分析的过程 37
3.2 结构化分析方法 39
3.2.1 结构化分析方法简介 39
3.2.2 数据流图 39
3.2.3 数据流图分层举例 41
3.2.4 数据字典 43
3.3 小型图书馆管理系统需求分析案例 45
3.3.1 引言 45
3.3.2 任务概述 45
3.3.3 功能需求 46
3.3.4 性能需求 51
3.3.5 运行环境规定 52
3.3.6 其他 52
3.4 本章小结 52
习题3 52
第4章 概要设计 53
4.1 软件概要设计的目标与内容 53
4.1.1 概要设计的目标 53
4.1.2 概要设计的内容 53
4.2 软件概要设计准则 54
4.2.1 模块化 54
4.2.2 抽象 57
4.2.3 信息隐藏 58
4.2.4 软件结构设计的主要优化准则 58
4.3 软件结构图 59
4.3.1 软件结构图的组成元素 59
4.3.2 软件结构图中的模块分类 60
4.3.3 变换型数据流图的转化 60
4.3.4 事务型数据流图的转化 62
4.4 小型图书馆管理系统概要设计案例 63
4.4.1 引言 64
4.4.2 概要设计 64
4.4.3 系统数据结构设计 66
4.4.4 系统出错处理设计 67
4.5 本章小结 67
习题4 67
第5章 详细设计与编码 68
5.1 软件详细设计的任务、原则与工具 68
5.1.1 详细设计的任务 68
5.1.2 详细设计的原则 68
5.1.3 常用的详细设计工具 69
5.2 软件详细设计的内容 71
5.2.1 制订代码设计的方案 71
5.2.2 人机界面设计 71
5.2.3 软件的数据库设计 74
5.2.4 软件的网格结构设计 76
5.3 软件编码 76
5.3.1 高级程序设计语言简介 76
5.3.2 编码规范 77
5.4 小型图书馆管理系统详细设计案例 79
5.4.1 引言 79
5.4.2 模块设计说明 80
5.4.3 数据库设计 82
5.4.4 系统界面设计 83
5.4.5 输入输出设计 83
5.4.6 网络结构设计 84
5.5 本章小结 84
习题5 84
第6章 软件测试与维护基础 85
6.1 软件测试概述 85
6.1.1 软件测试的背景 85
6.1.2 软件测试的基本概念 86
6.1.3 软件测试人员的职业素养 89
6.1.4 我国软件测试行业的现状与发展 90
6.2 软件测试用例 91
6.2.1 黑盒测试及其测试用例设计方法 91
6.2.2 白盒测试及其测试用例设计方法 96
6.3 软件测试流程 98
6.3.1 单元测试 98
6.3.2 集成测试 99
6.3.3 确认测试 101
6.3.4 系统测试 102
6.3.5 验收测试 102
6.4 软件测试工具 102
6.4.1 测试工具的优势 102
6.4.2 测试工具的分类 102
6.4.3 选择测试工具时考虑的问题 103
6.5 软件维护基础 104
6.5.1 软件维护的定义 104
6.5.2 软件维护的分类 104
6.6 软件维护的流程 106
6.6.1 维护申请 106
6.6.2 识别维护的类型 106
6.6.3 维护实施 107
6.6.4 维护记录与评价 107
6.7 软件维护的困难 107
6.8 小型图书馆管理系统测试用例设计与系统维护案例 107
6.8.1 引言 108
6.8.2 测试内容 108
6.8.3 功能测试用例设计 108
6.8.4 性能测试用例设计 110
6.8.5 图形用户界面测试用例 112
6.8.6 小型图书馆管理系统维护 113
6.9 本章小结 113
习题6 114
第7章 面向对象的软件开发方法 115
7.1 面向对象的软件工程 115
7.1.1 传统软件开发方法的问题 115
7.1.2 面向对象的基本概念 116
7.1.3 面向对象的建模 119
7.1.4 面向对象的开发方法简介 119
7.2 统一建模语言UML 120
7.2.1 UML的主要特点 120
7.2.2 UML的应用领域 120
7.2.3 UML的9种模型视图 121
7.2.4 常用UML建模工具简介 131
7.3 面向对象的分析 133
7.3.1 面向对象的分析过程 133
7.3.2 模型的构建 134
7.3.3 4种模型之间的主要关系 135
7.4 面向对象的设计与实现 135
7.4.1 面向对象的设计 135
7.4.2 面向对象的设计准则与启发规则 135
7.4.3 系统分解 137
7.4.4 类中的服务、关联设计 141
7.4.5 设计优化 142
7.4.6 面向对象的实现 143
7.5 面向对象实例——运用UML对企业人力资源管理系统建模 144
7.5.1 系统概述 144
7.5.2 系统中的用例与角色 147
7.5.3 分析与设计 150
7.5.4 实现、测试与系统配置 150
7.6 本章小结 151
习题7 152
第8章 计算机软件知识产权 153
8.1 计算机软件知识产权基础 153
8.1.1 知识产权 153
8.1.2 计算机软件知识产权 154
8.1.3 《保护条例》中明确需要承担法律责任的违法行为 157
8.2 计算机软件知识产权案例分析 157
8.3 本章小结 159
习题8 159
附录A软件工程师职业素养 160
附录B全国计算机技术与软件专业技术资格(水平)考试简介 162
参考文献 164