第1章 软件工程概论 1
1.1软件的定义 1
1.1.1软件的概念及特点 1
1.1.2软件的分类 3
1.1.3软件的发展历程 4
1.1.4软件危机 5
1.2软件工程 7
1.2.1软件工程的定义 7
1.2.2软件工程技术介绍 7
1.2.3软件工程的基本原理 9
1.3软件工程在软件行业中的作用 10
1.4软件工程方法论 12
1.5软件工程实践论 14
1.5.1软件项目管理 14
1.5.2软件测试 16
1.6本章小结 16
习题1 17
第2章 软件生命周期与开发模型 18
2.1软件生命周期模型概论 18
2.1.1软件定义期 18
2.1.2软件开发期 19
2.1.3软件运行与维护期 20
2.2瀑布模型 20
2.2.1瀑布模型的特点 21
2.2.2瀑布模型的优缺点 22
2.2.3瀑布模型的适用范围 22
2.3增量模型 23
2.3.1增量模型的特点 23
2.3.2增量模型的优缺点 24
2.4原型模型 24
2.4.1快速原型方法 25
2.4.2原型进化模型 25
2.5迭代模型 26
2.5.1迭代模型的阶段及核心流程 26
2.5.2迭代模型的优缺点 27
2.6螺旋模型 28
2.6.1螺旋模型的特点 29
2.6.2螺旋模型的优缺点 29
2.7喷泉模型 29
2.7.1喷泉模型的特点 30
2.7.2喷泉模型的优缺点 30
2.8 XP模型 30
2.8.1 XP模型的特点 31
2.8.2 XP模型的优缺点 31
2.9各种模型之间的关系 31
2.9.1 瀑布模型与迭代模型 31
2.9.2瀑布模型与增量模型 31
2.9.3瀑布模型与原型模型 32
2.9.4瀑布模型与螺旋模型 32
2.9.5 XP模型与迭代模型 32
2.9.6生命周期模型之间的关系总结 32
2.10本章小结 32
习题2 32
第3章 软件立项与合同 34
3.1软件立项方法与文档 34
3.1.1项目的基本概念 34
3.1.2软件项目的特点 35
3.1.3软件项目的立项 36
3.1.4软件立项文档 39
3.2签订合同的方法与文档 40
3.2.1合同的基本概念 40
3.2.2签订合同 40
3.2.3合同的内容 41
3.3软件招标与投标 44
3.3.1项目招标与投标的基本概念 44
3.3.2软件招标与投标的过程 45
3.3.3软件招标书与投标书的编写 46
3.4下达任务的方法与文档 48
3.5本章小结 51
习题3 52
第4章 软件需求分析 53
4.1需求分析的基本概念 53
4.1.1软件需求 53
4.1.2软件需求分析 55
4.1.3软件需求分析的基本要求 55
4.1.4软件需求分析的重要性 55
4.2软件需求分析的过程和任务 56
4.2.1需求分析的过程 56
4.2.2获取用户需求的主要内容 57
4.2.3需求分析的任务 58
4.3需求分析的方法 59
4.3.1结构化分析方法 59
4.3.2面向对象分析方法 62
4.3.3统一建模语言 63
4.4需求描述工具 67
4.4.1数据流图 68
4.4.2数据字典 69
4.4.3结构化语言 70
4.4.4判定表 71
4.4.5判定树 72
4.5需求过程管理 73
4.5.1需求分析阶段的项目管理 73
4.5.2需求过程管理的内容 75
4.6需求分析文档 76
4.6.1需求文档完成的目标 77
4.6.2需求文档的特点 77
4.6.3需求文档编写的一般原则 78
4.6.4需求文档编写格式 79
4.7需求评审 81
4.7.1需求评审的方法 81
4.7.2需求评审的内容 82
4.7.3需求评审的测试 83
4.8本章小结 83
习题4 85
第5章 软件策划 86
5.1软件策划概论 86
5.2软件策划过程 88
5.3软件估计的方法 90
5.4软件策划管理与软件策划管理文档 92
5.5本章小结 97
习题5 98
第6章 软件管理 99
6.1三个模型的建模思想 99
6.1.1对象模型 100
6.1.2动态模型 100
6.1.3功能模型 100
6.1.4三个模型之间的关系 101
6.2数据模型设计概论 101
6.2.1数据模型 101
6.2.2概念数据模型 103
6.2.3逻辑数据模型 107
6.3数据库设计的理论与方法 111
6.3.1数据库设计概述 111
6.3.2数据库规划阶段 111
6.3.3数据库需求分析 112
6.3.4数据库概念结构设计 112
6.3.5数据库逻辑结构设计 113
6.3.6数据库物理结构设计 113
6.3.7数据库实施、运行和维护 113
6.4数据模型建模实例分析 113
6.4.1设计局部E-R模型 114
6.4.2设计总体E-R模型 116
6.4.3消除冗余、优化总体E-R模型 117
6.5三个模型建模实例分析 118
6.5.1 ATM系统需求 118
6.5.2建立对象模型 119
6.5.3建立动态模型 124
6.5.4建立功能模型 128
6.6三个模型建模思想的总结 129
6.6.1三个模型建模思想的优点 129
6.6.2三个模型建模思想的缺点 130
6.6.3值得思考的问题 130
6.7本章小结 131
习题6 131
第7章 软件设计 132
7.1软件设计概论 132
7.2软件设计原理 133
7.2.1模块化 133
7.2.2抽象化 134
7.2.3逐步求精 135
7.2.4信息隐藏和局部化 136
7.2.5模块独立性 136
7.2.6模块层次化 139
7.2.7启发式规则 139
7.3面向过程设计 140
7.4面向对象设计 144
7.4.1面向对象方法概述 145
7.4.2面向对象的概念 146
7.4.3面向对象的模型 148
7.4.4设计类 151
7.4.5面向对象实现 151
7.5面向元数据设计 152
7.6软件设计方法总结 154
7.7软件设计文档 155
7.8本章小结 156
习题7 156
第8章 软件测试 157
8.1软件测试概论 157
8.1.1测试的目的 157
8.1.2测试的基本原则 158
8.2软件测试模型 158
8.3黑盒测试方法 162
8.3.1等价类划分法 162
8.3.2边界值分析法 163
8.3.3错误推测法 164
8.3.4因果图法 164
8.4白盒测试方法 164
8.4.1逻辑覆盖 165
8.4.2基本路径测试 166
8.4.3条件测试 167
8.4.4循环测试 167
8.5灰盒测试方法 168
8.6测试过程与测试文档 168
8.6.1测试过程 168
8.6.2测试文档 169
8.7本章小结 170
习题8 170
第9章 软件实施与维护 171
9.1软件产品的分类 171
9.2软件产品的发布 172
9.2.1产品发布策略 172
9.2.2产品发布流程规范 172
9.2.3产品发布方式 174
9.3软件产品的实施 174
9.3.1软件产品实施步骤 175
9.3.2实施过程中的整改处理 177
9.4软件维护的传统方法 178
9.4.1软件维护的定义 178
9.4.2软件维护的特点 179
9.4.3软件维护的过程 181
9.4.4软件维护的副作用 185
9.4.5软件可维护性 187
9.4.6可维护性复审 191
9.4.7提高软件的可维护性 192
9.5软件维护的最新方法 195
9.5.1软件的逆向工程和再工程 195
9.5.2逆向工程 195
9.5.3再工程 196
9.5.4软件再工程风险 199
9.6软件维护文档 200
9.6.1软件文档 200
9.6.2维护过程文档 201
9.7本章小结 202
习题9 202
第10章 软件管理 204
10.1软件过程改进模型CMMI 204
10.1.1软件过程能力 204
10.1.2软件能力成熟度模型CMM 205
10.1.3软件能力成熟度模型集成CMMI 214
10.2软件配置管理 223
10.2.1软件配置管理概述 223
10.2.2软件配置管理的基本概念 224
10.2.3软件配置管理的内容 233
10.2.4软件配置管理的功能 233
10.2.5软件配置管理的流程 234
10.2.6版本控制 237
10.2.7变更控制 239
10.3软件质量保证 240
10.3.1软件质量 240
10.3.2软件质量保证概述 242
10.3.3软件质量保证活动 245
10.3.4软件质量保证的措施 248
10.4软件项目管理 251
10.4.1软件项目管理概述 251
10.4.2软件项目成本管理 253
10.4.3软件项目时间管理 266
10.4.4软件项目人力资源管理 275
10.4.5软件开发质量管理 283
10.5本章小结 285
习题10 286
参考文献 287