第1章 软件工程概述 1
1.1软件危机 1
1.1.1软件的定义及特点 1
1.1.2软件危机的产生原因 2
1.1.3解决软件危机的方法 3
1.2软件工程 3
1.2.1软件工程的定义及目标 3
1.2.2软件工程研究的内容 4
1.3软件的开发方法 4
1.3.1面向过程的方法 4
1.3.2面向数据的方法 5
1.3.3面向对象的方法 6
1.3.4三种开发方法的比较 7
1.4软件生命周期 7
1.5软件开发模型 8
1.5.1瀑布模型 9
1.5.2原型模型 10
1.5.3增量模型 11
1.5.4螺旋模型 12
1.5.5统一软件开发过程 13
1.6小结 15
1.7习题 16
第2章 可行性研究 17
2.1可行性研究的任务 17
2.2可行性研究的内容 17
2.3可行性研究的步骤 18
2.4小结 19
2.5习题 19
第3章 软件需求分析 20
3.1需求分析的任务 20
3.2需求分析的步骤 21
3.3结构化分析方法 23
3.3.1结构化分析方法概述 23
3.3.2数据流图 23
3.3.3数据字典 25
3.3.4实体—关系图 26
3.4需求分析图形工具 28
3.5软件需求规格说明书 29
3.6案例分析:图书管理系统需求分析 35
3.7小结 40
3.8习题 40
第4章 概要设计 41
4.1软件设计概述 41
4.1.1软件设计概念与重要性 41
4.1.2软件设计的任务与策略 42
4.2软件设计基本原则 43
4.3概要设计的任务和步骤 46
4.4软件结构图 47
4.5结构化设计方法 48
4.5.1变换流与事务流 48
4.5.2变换分析 49
4.5.3事务分析 50
4.6数据设计 52
4.7接口设计 54
4.8概要设计说明书 55
4.9案例分析:图书管理系统概要设计 57
4.10小结 59
4.11习题 59
第5章 详细设计 60
5.1详细设计的目标与任务 60
5.2详细设计的工具 61
5.2.1流程图 61
5.2.2盒图 62
5.2.3判定表 63
5.2.4过程设计语言PDI 63
5.3用户界面设计 64
5.4详细设计说明书 66
5.5案例分析:图书管理系统详细设计 68
5.6小结 70
5.7习题 70
第6章 程序编码 71
6.1结构化程序设计 71
6.2程序设计风格 72
6.3程序设计语言的选择 74
6.3.1程序设计语言的分类 74
6.3.2选择语言的一般准则 75
6.3.3不同程序设计语言的特点 76
6.4小结 77
6.5习题 78
第7章 软件测试 79
7.1软件测试概述 79
7.1.1软件测试的定义和目标 79
7.1.2软件测试的原则 80
7.2软件测试方法 80
7.3黑盒测试用例设计 81
7.3.1等价类划分法 81
7.3.2边界值分析法 82
7.3.3决策表法 83
7.3.4因果图法 84
7.3.5黑盒测试案例分析 85
7.4白盒测试用例设计 88
7.4.1逻辑覆盖法 88
7.4.2路径覆盖法 90
7.4.3循环覆盖法 92
7.4.4白盒测试案例分析 93
7.5软件测试步骤 94
7.5.1单元测试 94
7.5.2集成测试 95
7.5.3确认测试 98
7.5.4系统测试 99
7.6案例分析:图书管理系统测试 101
7.7小结 102
7.8习题 103
第8章 软件维护 104
8.1软件维护过程 104
8.1.1软件维护的种类 105
8.1.2软件维护的策略 105
8.1.3软件维护的过程 106
8.1.4软件维护的困难 108
8.1.5软件维护的副作用 108
8.2软件可维护性 110
8.2.1决定软件可维护性的因素 110
8.2.2提高软件的可维护性 111
8.3软件逆向工程与再工程 113
8.4小结 114
8.5习题 114
第9章 面向对象技术 115
9.1面向对象技术概述 115
9.1.1面向对象方法简介 115
9.1.2面向对象的基本概念 116
9.2 UML建模 119
9.2.1 UML简介 119
9.2.2用例图 121
9.2.3类图、对象图和包图 122
9.2.4构件图和部署图 126
9.2.5状态机图 128
9.2.6顺序图 129
9.2.7通信图 130
9.2.8活动图 130
9.3面向对象分析 130
9.4面向对象设计 133
9.5面向对象的软件测试 135
9.6案例分析:图书管理系统分析与设计 136
9.6.1图书管理系统分析 136
9.6.2图书管理系统设计 142
9.7小结 144
9.8习题 144
第10章 软件工程管理 145
10.1软件工程管理概述 145
10.2软件规模估算 146
10.2.1软件开发成本估算方法 146
10.2.2代码行技术和任务估算技术 147
10.2.3 COCOMO模型 148
10.3软件质量 150
10.3.1软件质量特性 150
10.3.2软件质量保证措施 151
10.4 ISO 9000软件质量体系 151
10.4.1 ISO 9000国际标准 152
10.4.2企业软件质量体系的建立和实施 153
10.5软件配置管理 155
10.5.1软件配置项 155
10.5.2软件配置管理 155
10.6 CMM软件能力成熟度模型 158
10.6.1 CMM的基本概念 158
10.6.2软件能力成熟度等级 159
10.6.3关键过程区域 161
10.7软件项目的组织与计划 162
10.7.1软件项目管理 163
10.7.2软件开发进度计划 164
10.7.3人员配备与组织 167
10.8软件工程标准与软件文档 169
10.8.1软件工程标准 169
10.8.2软件文档的编写 170
10.9小结 172
10.10习题 173
第11章 综合实例(1)——网站新闻管理系统 174
11.1问题定义 174
11.2需求分析 174
11.2.1用例图 174
11.2.2类图 176
11.3软件设计 178
11.3.1系统体系结构 178
11.3.2数据库设计 178
11.3.3功能设计 180
11.3.4界面设计 181
11.4系统测试 184
11.4.1用户界面测试 184
11.4.2功能测试 184
11.4.3数据库测试 185
第12章 综合实例(2)——网上书店系统 187
12.1问题定义 187
12.2需求分析 188
12.3软件设计 192
12.3.1系统体系结构 192
12.3.2功能模块 192
12.3.3数据库设计 193
12.4系统测试 196
12.4.1用户界面测试 196
12.4.2功能测试 196
12.4.3数据库测试 197
第13章 实训指导 199
实训1初识Visio 2003 199
实训2初识Rational Rose 2003 205
实训3需求分析 209
实训4数据库设计 211
实训5面向对象分析 217
实训6初识Visual Studio 2005 219
实训7初识JUnit 225
实训8初识Project 2007 229
综合习题 239
参考文献 243