第1章 绪论 1
1.1软件的发展 1
1.2软件危机 2
1.2.1产生软件危机的原因 3
1.2.2克服软件危机的途径 4
1.3软件工程 4
1.3.1软件工程的定义 4
1.3.2软件工程的基本原则 5
1.3.3软件工程的发展 6
1.4软件开发方法 6
1.5小结 10
习题一 10
第2章 软件生命周期模型 11
2.1软件生命周期 11
2.2软件生命周期模型的概念 12
2.3典型的软件生命周期模型 12
2.3.1瀑布模型 12
2.3.2快速原型模型 14
2.3.3增量模型 16
2.3.4螺旋模型 17
2.3.5喷泉模型 19
2.3.6基于构件的开发模型 20
2.3.7模型驱动体系结构 21
2.4小结 22
习题二 23
第3章可行性研究 24
3.1可行性研究的任务 24
3.2可行性研究步骤 25
3.3系统流程图 26
3.3.1基本符号 26
3.3.2系统流程图的作用 27
3.4成本-效益分析 30
3.5可行性研究实例 32
3.6小结 33
习题三 34
第4章 需求分析 35
4.1需求的定义 35
4.2获取需求的方法 36
4.3需求分析的任务 36
4.4需求分析的方法 37
4.5结构化分析建模 38
4.5.1结构化分析的步骤 39
4.5.2数据流图 40
4.5.3数据字典 43
4.5.4加工逻辑的描述 44
4.6结构化分析建模实例 46
4.7验证软件需求 48
4.8快速原型需求分析方法 48
4.9小结 50
习题四 51
第5章 概要设计 52
5.1概要设计概述 52
5.1.1概要设计基本任务 52
5.1.2概要设计基本步骤 53
5.2基本设计原理 54
5.2.1模块化 54
5.2.2抽象 55
5.2.3逐步求精 55
5.2.4模块独立性 55
5.3软件结构的描述工具 59
5.3.1软件结构图 59
5.3.2层次图和IPO表 61
5.4结构化设计 62
5.4.1数据流图的类型 62
5.4.2结构化设计过程 62
5.4.3变换分析设计 63
5.4.4事务分析设计 64
5.4.5综合型数据流图的软件结构设计 66
5.5结构化设计举例 66
5.6软件结构优化准则 67
5.7概要设计审查和验证 69
5.8小结 70
习题五 70
第6章 详细设计与编码实现 72
6.1详细设计的基本任务 72
6.2界面设计 72
6.2.1界面设计的主要问题 72
6.2.2友好界面设计的基本原则 73
6.3过程设计 73
6.3.1结构化程序设计方法 73
6.3.2过程设计的描述工具 73
6.4详细设计实例 76
6.5编码实现 79
6.5.1程序设计语言的选择 79
6.5.2编码风格 80
6.6小结 81
习题六 81
第7章 测试与维护 82
7.1软件测试基础 82
7.1.1软件测试的目的与准则 83
7.1.2软件测试方法 84
7.2测试用例设计技术 86
7.2.1白盒测试技术 86
7.2.2黑盒测试技术 91
7.3软件测试过程 93
7.3.1软件测试步骤 93
7.3.2单元测试 94
7.3.3集成测试 95
7.3.4系统测试和验收测试 96
7.4调试 98
7.4.1调试的目的 98
7.4.2调试的方法 99
7.5软件维护 99
7.5.1软件维护的定义 99
7.5.2软件维护过程 100
7.5.3软件的可维护性 100
7.6小结 102
习题七 102
第8章面向对象方法学基础 104
8.1面向对象基础 104
8.1.1面向对象的基本思想 104
8.1.2面向对象的基本概念 105
8.1.3面向对象的基本特征 106
8.1.4面向对象方法的优点 107
8.1.5面向对象方法的基本流派 108
8.2 UML面向对象建模 115
8.2.1 UML介绍 115
8.2.2静态模型 117
8.2.3功能模型 125
8.2.4动态模型 127
8.2.5三种模型之间的关系 131
8.3小结 131
习题八 132
第9章面向对象分析 133
9.1面向对象分析的基本过程 133
9.1.1面向对象分析概述 133
9.1.2获取需求 133
9.1.3用例模型 134
9.2建立对象模型实例 136
9.2.1确定对象 137
9.2.2确定关联并画出初步的对象模型图 137
9.2.3确定主题 137
9.2.4确定属性 138
9.2.5确定服务 139
9.2.6识别泛化关系 139
9.2.7完善对象模型 139
9.3建立动态模型实例 140
9.3.1准备脚本 140
9.3.2构造顺序图 141
9.3.3构造状态图 142
9.3.4完善动态模型 142
9.4建立功能模型实例 142
9.4.1基本系统模型 142
9.4.2功能级数据流图 143
9.5小结 144
习题九 144
第10章 面向对象设计 145
10.1面向对象设计的基本原则 145
10.2软件复用 147
10.2.1概述 147
10.2.2基于构件的软件复用 148
10.2.3软件重用的效益 148
10.3面向对象设计的步骤 149
10.3.1系统分解 149
10.3.2类设计 150
10.3.3设计类中的服务 151
10.3.4设计关联 153
10.3.5数据管理设计 154
10.3.6人机界面设计 156
10.4小结 157
习题十 158
第11章 面向对象实现 159
11.1程序设计语言 159
11.1.1面向对象程序设计概述 159
11.1.2不同面向对象语言的比较 159
11.1.3程序设计风格 161
11.2面向对象测试 163
11.2.1面向对象的测试策略 163
11.2.2测试用例的设计 166
11.3小结 168
习题十一 168
第12章 软件项目管理 169
12.1成本估算方法 169
12.1.1代码行及功能点估算方法 169
12.1.2参数模型估算法 170
12.2进度管理 172
12.3人员组织 174
12.4质量保证 174
12.5软件配置管理 175
12.5.1软件配置管理产生的原因 175
12.5.2实施软件配置管理的步骤 176
12.6软件过程管理 178
12.6.1软件过程的定义 178
12.6.2软件能力成熟度模型 179
12.7小结 181
习题十二 181
附录A软件工程开发文档 182
参考文献 195