标题：软件工程（第2版）
图书信息
书　名　软件工程(第2版)(普通高等教育“十一五”国家级规划教材)
丛 书 名　工业和信息化人才培养规划教材——高职高专计算机系列  [1]
标准书号　ISBN 978-7-115-26700-9
编目分类　TP311.5
作　者　陆惠恩 编著
译　者　--
责任编辑　王威
开　本　16 开
印　张　15.25
字　数　381 千字
页　数　236 页
装　帧　平装
版　次　第2版第1次
二版时间　2012年2月
本 印 次　2012年2月
首 印 数　-- 册
定　价　29.80 元
内容提要

本书从实用的角度介绍软件工程的基础知识和软件工程技术方法。本书的编写力求做到结合实际、注重应用、便于教学，注意内容的新颖性和系统性。
本书内容包括：软件工程概述，可行性研究和软件开发计划、需求分析、概要设计、详细设计、软件实现、软件维护等阶段的方法、步骤和文档规范，面向对象方法和统一建模语言(UML)，软件开发环境，软件重用，软件工程管理等。每章都有小结并配有适量的例题和习题，有些例题贯穿于各章，按软件工程的各个阶段分别就这些例题的实际处理方法、步骤等进行介绍，可作为实践环节的样例，有助于读者学习和掌握有关知识。
本书可作为高职高专院校“软件工程”课程的教材，也可供软件工程师、软件项目管理人员和软件开发人员阅读参考。
目　录
第1章　概述　1
1.1　软件工程的产生　1
1.1.1　软件生产的发展　1
1.1.2　软件危机　2
1.2　软件工程　4
1.2.1　软件工程定义　4
1.2.2　软件工程学的内容　4
1.2.3　软件工程的基本原理　7
1.3　软件生命周期　7
1.4　软件过程模型　9
1.4.1　瀑布模型　9
1.4.2　快速原型模型　10
1.4.3　增量模型　11
1.4.4　喷泉模型　12
1.4.5　统一过程　13
本章小结　14
习题1　15
第2章　可行性研究与软件开发计划　16
2.1　软件定义与可行性研究　16
2.1.1　软件定义　17
2.1.2　可行性研究　18
2.2　软件工程开发计划的制订　20
2.2.1　软件工程项目概述和实施计划　20
2.2.2　Gantt图　20
2.2.3　工程网络技术　21
2.2.4　软件工程开发计划的复审　25
2.2.5　软件开发计划实例　26
本章小结　30
习题2　30
第3章　需求分析　32
3.1　需求分析的任务　32
3.1.1　确定目标系统的具体要求　33
3.1.2　建立目标系统的逻辑模型　35
3.2　结构化分析步骤　35
3.2.1　进行调查研究　35
3.2.2　分析和描述系统的逻辑模型　36
3.2.3　需求分析的复审　37
3.3　需求分析图形工具　38
3.3.1　实体-关系图　38
3.3.2　数据流图　39
3.3.3　状态转换图　42
3.3.4　IPO图　43
3.4　数据字典　44
3.4.1　数据字典的内容　44
3.4.2　数据字典使用的符号　45
3.4.3　数据字典与图形工具　47
3.5　软件需求分析举例　47
3.5.1　系统管理　47
3.5.2　商品信息管理　48
3.5.3　商品供销存管理　48
3.5.4　商品销售数据流图　49
3.5.5　数据字典　49
3.6　需求分析文档　50
3.6.1　软件需求规格说明　50
3.6.2　用户手册编写提示　51
3.6.3　编写需求分析文档的步骤　52
本章小结　52
习题3　52
第4章　概要设计　54
4.1　概要设计步骤　54
4.1.1　软件结构设计　55
4.1.2　数据结构设计及数据库设计　55
4.1.3　系统接口设计　56
4.1.4　设计测试方案　56
4.2　软件结构设计的基本原理　56
4.2.1　模块与模块化　56
4.2.2　模块的耦合和内聚　59
4.2.3　软件结构设计优化准则　62
4.3　软件结构设计的图形工具　63
4.3.1　层次图　63
4.3.2　结构图　64
4.4　概要设计方法　65
4.4.1　结构化方法　65
4.4.2　面向数据结构设计方法　68
4.5　概要设计文档与复审　71
4.5.1　概要设计说明书　71
4.5.2　概要设计复审　71
4.5.3　数据库设计说明书　72
本章小结　73
习题4　73
第5章　详细设计　75
5.1　过程设计　75
5.1.1　流程图　76
5.1.2　盒图　80
5.1.3　PAD　82
5.1.4　判定表　83
5.1.5　判定树　84
5.1.6　过程设计语言　84
5.2　用户界面设计　86
5.2.1　用户界面设计问题　86
5.2.2　用户界面设计过程　87
5.2.3　用户界面设计的基本原则　88
5.2.4　用户界面设计指南　88
5.3　数据代码设计　90
5.3.1　数据代码设计原则　91
5.3.2　代码种类　91
5.3.3　数据代码设计方法　93
5.4　数据输入输出设计　94
5.4.1　输入设计　94
5.4.2　输出设计　94
5.5　数据安全设计　95
5.6　详细设计文档与复审　96
5.6.1　详细设计说明书　96
5.6.2　操作手册编写提示　97
5.6.3　详细设计的复审　98
本章小结　98
习题5　98
第6章　软件实现　100
6.1　结构化程序设计　100
6.2　选择程序设计语言　101
6.3　程序设计风格　103
6.4　程序设计质量的评价　104
6.5　程序设计文档　105
6.6　软件测试目标和原则　105
6.6.1　软件测试目标　105
6.6.2　软件测试原则　106
6. 7　软件测试方法　106
6.7.1　静态分析与动态测试　107
6.7.2　黑盒法与白盒法　107
6.8　软件测试步骤　108
6.8.1　模块测试　108
6.8.2　集成测试　109
6.8.3　程序审查会和人工运行　109
6.8.4　确认测试　110
6.8.5　平行运行　111
6.9　设计测试方案　111
6.9.1　等价类划分法　111
6.9.2　边界值分析法　112
6.9.3　错误推测法　113
6.9.4　逻辑覆盖法　113
6.9.5　实用测试策略　116
6.10　软件调试、验证与确认　117
6.10.1　软件调试　117
6.10.2　软件验证　118
6.10.3　软件确认　118
6.11　软件测试计划和分析报告　119
本章小结　120
习题6　120
第7章　软件维护　124
7.1　软件维护过程　124
7.1.1　软件维护的种类　124
7.1.2　软件维护的困难　125
7.1.3　软件维护的实施　126
7.1.4　软件维护的副作用　128
7.2　软件的可维护性　129
7.2.1　决定可维护性的因素　129
7.2.2　可维护性的度量　129
7.2.3　提高软件的可维护性　130
本章小结　131
习题7　132
第8章　面向对象方法学与UML　134
8.1　面向对象方法概述　134
8.1.1　面向对象方法学的主要优点　135
8.1.2　面向对象的概念　136
8.2　UML概述　138
8.2.1　UML的发展　138
8.2.2　UML设计目标和内容　139
8.2.3　UML的语义　140
8.2.4　UML的扩展机制　141
8.3　UML图　142
8.3.1　用例图　142
8.3.2　类图和包　143
8.3.3　对象图　147
8.3.4　状态图　147
8.3.5　顺序图　149
8.3.6　活动图　149
8.3.7　协作图　150
8.3.8　构件图　151
8.3.9　部署图　151
本章小结　152
习题 8　153
第9章　面向对象技术与UML应用　154
9.1　面向对象分析　154
9.1.1　面向对象分析过程　154
9.1.2　面向对象分析原则　155
9.2　建立对象模型　156
9.2.1　确定对象和类　156
9.2.2　确定类的相互关系　157
9.2.3　划分主题　160
9.3　建立动态模型　162
9.3.1　编写脚本　162
9.3.2　设计用户界面　163
9.3.3　画UML顺序图或活动图　163
9.3.4　画状态转换图　164
9.4　建立功能模型　165
9.5　面向对象设计　166
9.5.1　系统设计　166
9.5.2　对象设计　169
9.5.3　面向对象设计的准则和启发式规则　170
9.6　面向对象系统的实现　171
9.6.1　选择程序设计语言　171
9.6.2　面向对象程序设计　172
9.7　面向对象的测试　173
9.7.1　面向对象测试策略　173
9.7.2　面向对象的测试步骤　175
9.8　UML的应用　179
9.8.1　UML模型　179
9.8.2　UML视图　180
9.8.3　UML使用准则　181
9.8.4　UML的应用领域　182
9.9　统一过程　182
9.9.1　RUP的开发模式　183
9.9.2　RUP的特点　184
9.9.3　RUP的要素　184
9.10　Rational Rose简介　185
9.10.1　Rational Rose的界面　187
9.10.2　Rational Rose模型的4个视图　187
9.10.3　Rational Rose的使用　189
本章小结　189
习题9　190
第10章　软件开发环境　192
10.1　软件开发工具　192
10.2　软件开发环境　195
10.3　CASE技术　197
本章小结　199
习题10　199
第11章　软件重用　200
11.1　可重用的软件成分　200
11.2　软件重用过程　201
11.2.1　软件重用过程模型　201
11.2.2　开发可重用的软件构件　203
11.2.3　分类和检索软件构件　204
11.2.4　软件重用环境　205
本章小结　205
习题11　205
第12章　软件工程管理　206
12.1　软件工程管理概述　206
12.2　软件规模估算　207
12.2.1　软件开发成本估算方法　207
12.2.2　代码行技术和任务估算技术　208
12.2.3　COCOMO2模型　209
12.2.4　程序环行复杂程度的度量　211
12.3　软件工程人员组织　212
12.4　软件配置管理　214
12.5　软件质量保证　216
12.5.1　软件质量的特性　217
12.5.2　软件质量保证措施　218
12.6　软件开发风险管理　219
12.6.1　软件开发风险的分类　219
12.6.2　软件开发风险的识别　220
12.6.3　软件开发风险的预测　220
12.6.4　处理软件开发风险的策略　221
12.7　软件工程标准与软件工程文档　223
12.7.1　软件工程标准　223
12.7.2　软件工程文档的编写　225
本章小结　226
习题12　226
附录A　部分习题参考答案　227
附录B　试题类型举例　234
参考文献　236