书籍详情

现代软件工程

现代软件工程

作者:周苏

出版社:机械工业出版社

出版时间:2016-02-01

ISBN:9787111526346

定价:¥49.00

购买这本书可以去
内容简介
  软件工程学是一门理论性和实践性都很强的学科,它采用工程化的概念、理论、技术和方法来指导开发与维护计算机软件。本书系统、全面地介绍了现代软件工程技术,在软件工程的概念、原理、方法及其应用等方面有较详尽的论述,具有较强的系统性和可读性。本书较为详细地介绍了软件生存周期、传统软件工程、软件工程过程、面向对象软件工程和软件体系结构等的思想和实现方法,力图反映软件工程领域的新发展,内容包括:软件和软件工程、软件过程、需求工程、设计的概念、体系结构设计、构件级设计、用户界面设计、基于模式的设计、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
猜您喜欢

读书导航