注册 登录 进入教材巡展 进入在线书城
#
  • #

出版时间:2016年2月

出版社:机械工业出版社

以下为《现代软件工程》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 机械工业出版社
  • 9787111526346
  • 1-1
  • 96681
  • 46210158-5
  • 2016年2月
  • 488
  • 304
内容简介
软件工程学是一门理论性和实践性都很强的学科,它采用工程化的概念、理论、技术和方法来指导开发与维护计算机软件。本书系统、全面地介绍了现代软件工程技术,在软件工程的概念、原理、方法及其应用等方面有较详尽的论述,具有较强的系统性和可读性。本书较为详细地介绍了软件生存周期、传统软件工程、软件工程过程、面向对象软件工程和软件体系结构等的思想和实现方法,力图反映软件工程领域的新发展,内容包括:软件和软件工程、软件过程、需求工程、设计的概念、体系结构设计、构件级设计、用户界面设计、基于模式的设计、WebApp设计、软件质量管理、软件测试、软件配置管理、软件项目管理和软件维护与再工程。
本书可作为高等院校“软件工程”课程的教材和教学参考书,也可供有一定实践经验的软件开发人员和管理人员参考,或作为继续教育的教材。
目录
出版说明
前言
课程教学进度表

第1章 软件和软件工程1
1.1 计算机系统与软件1
1.1.1 软件的本质2
1.1.2 定义软件3
1.1.3 软件应用领域4
1.1.4 WebApp的特性6
1.2 软件工程定义7
1.2.1 软件工程的内容7
1.2.2 软件工程的基本目标和原则8
1.2.3 软件工程与一般工程的差异9
1.3 软件生存周期及其过程10
1.4 软件工具与开发环境11
1.4.1 软件工具11
1.4.2 软件开发环境12
1.5 软件工程发展的4个阶段13
1.6 软件工程师的责任13
小结14
习题15
第2章 软件过程17
2.1 通用过程模型17
2.1.1 定义框架活动18
2.1.2 明确任务集19
2.1.3 过程模式20
2.1.4 过程评估与改进21
2.2 传统过程模型22
2.2.1 软件生存周期模型22
2.2.2 瀑布模型23
2.2.3 增量模型24
2.2.4 演化模型25
2.2.5 协同模型28
2.2.6 喷泉模型29
2.2.7 智能模型29
2.3 软件生存周期过程与软件过程
工程30
2.4 软件生存周期基本过程31
2.4.1 获取过程31
2.4.2 供应过程32
2.4.3 开发过程33
2.4.4 运作过程34
2.4.5 维护过程34
2.5 软件生存周期支持过程35
2.5.1 文档编制过程35
2.5.2 配置管理过程35
2.5.3 质量保证过程35
2.5.4 验证过程36
2.5.5 确认过程36
2.5.6 联合评审过程36
2.5.7 审核过程36
2.5.8 问题解决过程36
2.6 软件生存周期组织过程36
2.6.1 管理过程37
2.6.2 基础设施过程37
2.6.3 改进过程37
2.6.4 培训过程37
2.7 剪裁过程37
2.8 过程与组织的关系38
2.9 Rational统一过程41
2.10 敏捷开发42
2.10.1 什么是敏捷43
2.10.2 敏捷及变更的成本费用44
2.10.3 什么是敏捷过程44
2.10.4 极限编程46
2.10.5 工业极限编程48
小结49
习题50
第3章 需求工程53
3.1 理解需求53
3.1.1 建立根基53
3.1.2 导出需求54
3.1.3 开发用例56
3.1.4 构建需求模型56
3.1.5 协商需求58
3.1.6 确认需求59
3.2 需求分析59
3.2.1 总体目标和原理60
3.2.2 域分析61
3.2.3 需求建模的方法61
3.2.4 需求建模策略62
3.3 基于场景建模62
3.3.1 新建初始用例62
3.3.2 细化初始用例63
3.3.3 编写正规用例63
3.4 补充用例的UML模型64
3.4.1 开发活动图64
3.4.2 泳道图64
3.5 数据建模概念65
3.5.1 数据对象65
3.5.2 数据属性66
3.5.3 关系66
3.6 基于类的建模67
3.6.1 识别分析类67
3.6.2 描述属性68
3.6.3 定义操作68
3.6.4 类职责协作者建模68
3.6.5 关联和依赖71
3.7 面向数据流建模71
3.7.1 创建数据流模型71
3.7.2 创建控制流模型73
3.7.3 控制规格说明73
3.7.4 处理规格说明75
3.8 生成行为模型75
3.9 需求建模的模式77
3.10 Web应用系统的需求建模78
3.10.1 需求建模的输入78
3.10.2 需求建模的输出79
3.10.3 Web应用系统内容建模79
3.10.4 Web应用系统的交互模型80
3.10.5 Web应用系统的功能模型80
3.10.6 Web应用系统的配置模型81
3.10.7 导航建模81
小结81
习题83
第4章 设计的概念86
4.1 软件工程中的设计86
4.2 设计过程87
4.2.1 软件质量指导原则和属性88
4.2.2 软件设计的演化89
4.3 关注点分离89
4.4 关于设计的概念91
4.4.1 抽象91
4.4.2 体系结构91
4.4.3 模式92
4.4.4 模块化92
4.4.5 信息隐蔽92
4.4.6 功能独立93
4.4.7 求精93
4.4.8 方面93
4.4.9 重构94
4.4.10 设计类94
4.5 设计模型95
4.5.1 数据设计元素96
4.5.2 体系结构设计元素96
4.5.3 接口设计元素97
4.5.4 构件级设计元素97
4.5.5 部署级设计元素98
4.6 模块的划分98
4.6.1 软件结构99
4.6.2 模块划分的基本原则99
4.6.3 内聚度100
4.6.4 耦合度100
4.6.5 高内聚和低耦合101
4.7 Parnas方法101
4.7.1 信息隐蔽原则101
4.7.2 加强系统各成分间的检查102
4.8 软件详细设计102
4.8.1 结构化构造103
4.8.2 程序流程图103
4.8.3 方块图(NS)104
4.8.4 PAD图105
小结106
习题107
第5章 体系结构设计110
5.1 概述110
5.1.1 什么是体系结构110
5.1.2 软件体系结构的定义111
5.1.3 体系结构描述112
5.1.4 体系结构决策113
5.2 体系结构的类型113
5.3 体系结构的风格115
5.3.1 体系结构风格的简单分类116
5.3.2 体系结构模式118
5.3.3 组织和求精118
5.4 体系结构的设计118
5.4.1 系统环境的表示119
5.4.2 定义原型120
5.4.3 将体系结构精化为构件121
5.4.4 描述系统实例122
5.5 评估可选的体系结构设计122
5.5.1 体系结构权衡分析方法122
5.5.2 体系结构复杂性123
5.5.3 体系结构描述语言124
小结124
习题124
第6章 构件级设计127
6.1 什么是构件127
6.1.1 面向对象的观点127
6.1.2 传统观点129
6.1.3 过程相关的观点130
6.2 设计基于类的构件131
6.2.1 基本设计原则131
6.2.2 构件级设计指导方针132
6.2.3 内聚性133
6.2.4 耦合性134
6.3 实施构件级设计134
6.4 WebApp的构件级设计137
6.4.1 构件级内容设计137
6.4.2 构件级功能设计138
6.5 设计传统构件138
6.6 基于构件的开发139
6.6.1 领域工程139
6.6.2 构件合格性检验、适应性修改
与组合140
6.6.3 复用的分析与设计141
6.6.4 构件分类与检索142
小结142
习题143
第7章 用户界面设计145
7.1 黄金规则145
7.1.1 用户操纵控制145
7.1.2 减轻用户记忆负担146
7.1.3 保持界面一致146
7.2 用户界面的分析与设计147
7.2.1 用户界面分析和设计模型147
7.2.2 过程148
7.3 界面分析148
7.3.1 用户分析149
7.3.2 任务分析和建模149
7.3.3 显示内容分析151
7.3.4 工作环境分析151
7.4 界面设计步骤151
7.4.1 应用界面设计步骤152
7.4.2 用户界面设计模式153
7.4.3 设计问题153
7.5 WebApp界面设计154
7.5.1 界面设计的原则与指导方针155
7.5.2 WebApp的界面设计工作流156
7.6 设计评估157
小结158
习题159
第8章 基于模式的设计160
8.1 模式设计160
8.1.1 模式的种类160
8.1.2 框架162
8.1.3 描述模式162
8.1.4 模式语言和存储库163
8.2 基于模式的软件设计163
8.2.1 不同环境下基于模式的设计163
8.2.2 在模式中思考164
8.2.3 设计任务165
8.2.4 建立模式组织表166
8.3 体系结构模式166
8.4 构件级设计模式167
8.5 用户界面设计模式168
8.6 WebApp设计模式170
8.6.1 设计焦点170
8.6.2 设计粒度171
小结171
习题172
第9章 WebApp设计174
9.1 WebApp设计质量174
9.2 设计目标176
9.3 WebApp界面设计177
9.4 美学设计177
9.5 内容设计178
9.5.1 内容对象178
9.5.2 设计问题179
9.6 体系结构设计179
9.6.1 内容体系结构180
9.6.2 WebApp体系结构181
9.7 导航设计182
9.7.1 导航语义182
9.7.2 导航语法183
9.8 构件级设计183
9.9 面向对象的超媒体设计方法183
9.9.1 OOHDM的概念设计184
9.9.2 OOHDM的导航设计185
9.9.3 抽象界面设计与实现185
小结185
习题186
第10章 软件质量管理188
10.1 对软件质量的需求188
10.2 软件质量度量189
10.2.1 软件质量框架模型189
10.2.2 软件质量特性190
10.2.3 评估指标的选取原则191
10.3 软件质量评估指标体系191
10.3.1 功能度指标191
10.3.2 可靠性指标192
10.3.3 易用性指标192
10.3.4 效率特征指标193
10.4 软件评价193
10.4.1 复杂性度量193
10.4.2 可靠性评价194
10.4.3 性能评价195
10.4.4 运行评价195
10.5 CMM:软件能力成熟度模型197
10.6 质量管理文件198
小结199
习题199
第11章 软件测试203
11.1 软件测试策略203
11.1.1 策略问题203
11.1.2 验证与确认204
11.1.3 宏观策略204
11.2 传统软件的测试策略206
11.2.1 单元测试206
11.2.2 集成测试207
11.2.3 冒烟测试209
11.2.4 回归测试209
11.3 面向对象的测试策略210
11.3.1 面向对象环境中的单元测试210
11.3.2 面向对象环境中的集成测试210
11.3.3 面向对象环境中的确认测试211
11.4 WebApp的测试策略211
11.5 确认测试212
11.5.1 确认测试准则212
11.5.2  测试与 测试212
11.6 系统测试213
11.6.1 恢复测试213
11.6.2 安全测试213
11.6.3 压力测试213
11.6.4 性能测试214
11.6.5 部署测试214
11.7 调试技巧214
11.7.1 调试过程214
11.7.2 调试策略215
11.8 测试传统应用系统215
11.8.1 静态测试技术216
11.8.2 动态测试技术216
11.8.3 白盒测试方法217
11.8.4 黑盒测试方法217
11.8.5 模糊测试方法218
11.8.6 极限测试219
11.8.7 基于风险的测试219
11.9 测试面向对象应用系统219
11.9.1 扩展测试的视野220
11.9.2 测试OOA和OOD模型221
11.9.3 面向对象测试方法221
11.10 测试Web应用系统221
11.10.1 WebApp环境中的错误222
11.10.2 内容测试222
11.10.3 界面测试223
11.10.4 构件测试225
11.10.5 导航测试226
11.10.6 配置测试227
11.10.7 安全测试227
11.10.8 性能测试228
小结228
习题229
第12章 软件配置管理233
12.1 概述233
12.1.1 SCM场景234
12.1.2 配置管理系统元素234
12.1.3 基线235
12.1.4 软件配置项236
12.2 SCM中心存储库237
12.2.1 中心存储库的作用238
12.2.2 一般特征和内容238
12.2.3 SCM特征239
12.3 SCM过程239
12.3.1 配置标识240
12.3.2 版本控制240
12.3.3 变更控制241
12.4 WebApp配置管理242
小结243
习题243
第13章 软件项目管理245
13.1 软件项目的特点245
13.1.1 软件管理的特殊困难245
13.1.2 软件管理涉及的范围246
13.1.3 W5HH原则247
13.2 软件开发组织247
13.2.1 软件设计小组的形式247
13.2.2 对项目经理人员的要求248
13.2.3 评价软件人员的条件249
13.3 软件项目估算249
13.3.1 对估算的观察249
13.3.2 项目策划过程250
13.3.3 软件范围和可行性250
13.3.4 资源251
13.3.5 项目估算252
13.3.6 自行开发或购买的决策253
13.4 安排项目进度254
13.4.1 项目进度的安排254
13.4.2 为软件项目定义任务集255
13.4.3 定义任务网络257
13.5 风险管理257
13.5.1 软件风险258
13.5.2 风险识别259
13.5.3 风险预测259
13.5.4 风险缓解、监测和管理261
13.6 标准化管理261
13.6.1 软件工程标准化261
13.6.2 软件工程标准化的意义262
13.6.3 软件工程国家标准262
小结264
习题265
第14章 软件维护与再工程268
14.1 概述268
14.1.1 软件维护工作的必要性269
14.1.2 改正(纠错)性维护270
14.1.3 适应性维护270
14.1.4 完善性维护270
14.1.5 维护工作的过程271
14.2 维护策略272
14.2.1 控制维护问题和成本的策略272
14.2.2 将维护成本和延误减少到
低限度的措施273
14.3 软件的可维护性276
14.3.1 可维护性的度量276
14.3.2 提高软件的可维护性281
14.4 业务过程再工程285
14.4.1 业务过程285
14.4.2 BPR模型286
14.5 软件再工程287
14.6 正向工程288
14.6.1 客户/服务器体系结构的正向
工程289
14.6.2 面向对象体系结构的正向工程290
14.7 维护管理与文件290
14.7.1 软件维护的管理290
14.7.2 软件问题报告291
14.7.3 软件修改报告293
小结294
习题295
附录 习题参考答案298
参考文献304