目录
第1章软件工程概述1
1.1软件1
1.1.1软件的定义1
1.1.2软件的特点2
1.1.3软件的分类2
1.2软件危机与软件工程5
1.2.1软件危机5
1.2.2软件工程6
1.2.3软件工程的基本内容7
1.2.4软件工程的基本原则7
1.3软件生命周期与软件开发模型8
1.3.1软件生命周期8
1.3.2软件开发模型9
1.4软件开发方法17
1.4.1结构化开发方法17
1.4.2面向对象开发方法20
1.5CASE工具与环境22
1.5.1Sybase PowerDesigner22
1.5.2Rational Rose23
1.5.3Microsoft Visio24
1.6软件工程的演变与发展24
1.6.1软件发展的新阶段和新问题24
1.6.2软件工程的发展25
小结25
习题26\软\件\工\程\理\论\与\实\践\(第2版)\/目录/ 第2章可行性研究27
2.1可行性研究的含义27
2.2可行性研究的任务和步骤28
2.2.1可行性研究的任务28
2.2.2可行性研究的步骤29
2.3可行性研究的要素31
2.3.1经济可行性31
2.3.2技术可行性31
2.3.3社会环境可行性32
2.4成本/效益分析32
2.4.1成本估计32
2.4.2费用估计33
2.4.3度量效益的方法34
2.5方案选择与决策35
2.6可行性分析实例——《学生教材购销系统》可行性
研究报告36
小结45
习题45
第3章需求分析47
3.1需求分析的基本概念47
3.1.1软件需求的定义和特点 47
3.1.2需求分析的目标和任务48
3.1.3需求分析的原则50
3.2需求获取的方法50
3.2.1用户访谈50
3.2.2问卷调查50
3.2.3专题讨论会51
3.2.4快速建立软件原型52
3.3需求建模方法53
3.3.1数据流图53
3.3.2数据字典57
3.3.3层次方框图60
3.3.4Warnier图61
3.3.5ER图61
3.3.6状态转换图64
3.4需求验证65
3.4.1需求验证的内容66
3.4.2需求验证的方法67
3.5需求分析实例——《学生教材购销系统》需求规格
说明书67
3.5.1《学生教材购销系统》非功能性需求68
3.5.2《学生教材购销系统》功能性需求77
小结86
习题86
第4章概要设计87
4.1概要设计概述87
4.2概要设计的主要内容88
4.2.1概要设计的任务和过程88
4.2.2软件体系结构设计89
4.2.3数据库设计94
4.3概要设计的原则98
4.3.1模块化98
4.3.2耦合99
4.3.3内聚101
4.3.4启发规则103
4.3.5面向对象设计模式103
4.4概要设计的工具104
4.4.1层次方框图104
4.4.2IPO图104
4.4.3HIPO图105
4.5概要设计实例——《学生教材购销系统》概要设计
说明书105
小结113
习题114
第5章详细设计116
5.1详细设计的内容与原则116
5.1.1详细设计的内容116
5.1.2详细设计的原则117
5.2数据代码设计的工具117
5.2.1程序流程图118
5.2.2NS图119
5.2.3PAD图120
5.2.4PDL语言122
5.2.5判定表和判定树123
5.2.6详细设计工具的选择125
5.3人机界面设计125
5.4程序结构复杂性的定量度量127
5.4.1McCabe方法128
5.4.2Halstead方法130
5.5详细设计实例——《学生教材购销系统》详细设计
说明书130
小结140
习题140
第6章编码143
6.1程序设计语言143
6.1.1程序设计语言的分类143
6.1.2程序设计语言的特点146
6.1.3程序设计语言的选择148
6.2编程风格150
6.2.1良好编程风格的意义150
6.2.2编程风格的内容151
6.3程序效率156
6.3.1程序效率准则156
6.3.2算法对效率的影响157
6.4编程实例分析——《学生教材购销系统》编码规范说明157
小结170
习题170
第7章测试172
7.1软件测试概述172
7.1.1软件测试的定义172
7.1.2软件测试的对象173
7.1.3软件测试的准则173
7.1.4软件测试的方法174
7.2软件测试过程175
7.2.1单元测试175
7.2.2集成测试177
7.2.3确认测试179
7.3白盒测试180
7.4黑盒测试184
7.5调试过程、技术与原则187
7.5.1调试过程187
7.5.2调试技术188
7.5.3调试原则189
7.6测试实例——《学生教材购销系统》测试报告190
小结195
习题195
第8章维护197
8.1软件维护概述197
8.1.1软件维护的分类197
8.1.2软件维护的特点198
8.2维护任务的实施199
8.2.1维护组织200
8.2.2维护报告200
8.2.3维护过程201
8.3软件的可维护性201
8.3.1软件可维护性的定义201
8.3.2影响软件可维护性的因素201
8.3.3提高软件可维护性的方法202
8.4软件维护的副作用204
8.4.1修改代码的副作用204
8.4.2修改数据的副作用205
8.4.3修改文档的副作用205
8.5软件再工程205
8.6维护报告实例——《学生教材购销系统》软件维护
报告206
小结211
习题211
第9章软件项目管理212
9.1软件项目管理概述212
9.2软件进度计划管理214
9.2.1进度计划管理概述214
9.2.2进度计划编制方法216
9.2.3进度计划控制218
9.3软件质量管理219
9.3.1软件质量219
9.3.2软件质量保证措施222
9.3.3能力成熟度模型223
9.4软件成本管理227
9.4.1软件成本分析227
9.4.2软件成本估算228
9.4.3软件成本控制229
9.5配置管理232
9.5.1配置管理概述232
9.5.2配置管理的组织232
9.5.3配置管理的主要活动235
9.6人力资源管理238
9.6.1软件项目人力资源的特征238
9.6.2人力资源管理的主要内容238
9.6.3人员的组织与分工239
9.7项目管理实例——《学生教材购销系统》项目管理
方案242
小结251
习题251
第10章面向对象方法与UML建模254
10.1面向对象方法概述254
10.1.1面向对象方法的含义254
10.1.2面向对象的软件工程256
10.1.3面向对象的基本概念和特征260
10.2统一建模语言267
10.2.1模型的建立267
10.2.2UML的特点与应用272
10.2.3UML提供的常用图274
10.3用例图275
10.4状态图277
10.5活动图278
10.6类图280
10.7对象图286
10.8顺序图286
10.9协作图287
10.10组件图288
10.11部署图288
10.12使用PowerDesigner进行建模289
10.12.1PowerDesigner的安装289
10.12.2PowerDesigner的功能290
10.12.3PowerDesigner的运行界面292
小结293
习题294
第11章面向对象分析与设计296
11.1面向对象分析296
11.1.1面向对象分析的过程与原则296
11.1.2确定对象与类301
11.1.3确定属性303
11.1.4定义服务304
11.1.5对象间的通信308
11.2面向对象设计概述314
11.2.1面向对象设计的概念314
11.2.2面向对象设计的准则及启发规则315
11.2.3面向对象设计的方法317
11.3使用PowerDesigner画学生教材购销系统的9种图319
11.3.1学生教材购销系统的用例图319
11.3.2学生教材购销系统的类图320
11.3.3学生教材购销系统的对象图321
11.3.4学生教材购销系统的状态图321
11.3.5学生教材购销系统的活动图323
11.3.6学生教材购销系统的顺序图323
11.3.7学生教材购销系统的协作图325
11.3.8学生教材购销系统的组件图325
11.3.9学生教材购销系统的部署图325
小结326
习题326
参考文献328