软体工程(西安电子科技大学出版社书籍)

百科 2022-03-03
软体工程(西安电子科技大学出版社书籍)

软体工程(西安电子科技大学出版社书籍)

《软体工程》是2014年西安电子科技大学出版社出版的图书,作者是张秋余、张聚礼、柯铭、张红、马威。

基本介绍

  • 书名:软体工程
  • 作者:张秋余 张聚礼 柯铭 张红 马威
  • ISBN:978-7-5606-3510-1
  • 定价:38.25元
  • 出版社:西安电子科技大学出版社
  • 出版时间:2014-12

内容简介

本书结合软体产业现状,较为全面地介绍了软体工程的基本概念、原理和方法,以期培养学生在理论及套用上的系统整合能力以及从系统的角度看待整个软体项目的能力。
本书共14章。第1~6章主要介绍了软体工程学与传统软体工程方法的基本理论,主要包括软体工程的策划、分析、设计、实现、测试和维护等工作;第7~13章主要介绍了面向对象软体工程,结合软体统一过程模型,从面向对象范型出发对软体工程进行重新演绎,全面、系统、清晰地介绍了面向对象软体工程的基本概念、原理、方法和工具,并将考勤系统完整实例贯穿于面向对象软体开发的整个过程;第14章介绍了当今比较流行的现代软体工程软体开发方法。
本书可以作为计算机科学与技术、软体工程相关专业本科生或研究生的教材,也可以作为软体工程领域专业人士的参考书籍。

目录

第1章 软体工程学概论 1
1.1 软体的基本概念 1
1.1.1 软体与软体特性 1
1.1.2 软体的分类 2
1.2 软体危机 4
1.3 软体工程 5
1.3.1 软体工程的基本原理 6
1.3.2 软体工程学科包含的领域 7
1.4 软体工程的方法、工具与环境 8
1.4.1 软体工程的方法、工具与环境 8
1.4.2 软体开发的基本策略 11
1.5 软体过程与软体生命周期 12
1.5.1 软体过程 12
1.5.2 软体生命周期的各个阶段 13
1.6 常见的软体过程模型 16
1.6.1 瀑布模型 16
1.6.2 快速原型模型 17
1.6.3 演化模型 18
1.6.4 螺旋模型 19
1.6.5 喷泉模型 20
1.7 小结 21
习题1 22
第2章 项目分析与软体需求分析 23
2.1 软体项目的问题定义 23
2.2 软体项目可行性分析 24
2.3 软体系统的需求 27
2.3.1 功能需求 27
2.3.2 非功能需求 28
2.3.3 软体需求分析的风险 30
2.4 用户需求获取 31
2.5 软体需求文档与规格说明 33
2.5.1 自然语言描述 33
2.5.2 结构化描述 34
2.5.3 软体需求文档 35
2.6 系统流程图 36
2.7 数据流图 38
2.7.1 数据流图的符号 38
2.7.2 设计数据流图的步骤和示例 39
2.7.3 数据流图中命名的可理解性 41
2.7.4 数据流图的用途 42
2.7.5 数据流图中的数据字典 43
2.8 实体-联繫图 46
2.9 需求分析中使用的其他图形工具 48
2.10 面向数据流的建模 51
2.11 需求有效性验证 53
2.12 实例分析—教材征订业务分析 54
2.13 小结 58
习题2 58
第3章 软体总体设计 60
3.1 总体设计 60
3.2 软体总体设计原理 64
3.2.1 设计原理 64
3.2.2 启发式规则 71
3.3 描绘软体结构的图形工具 73
3.3.1 层次图和HIPO图 73
3.3.2 软体结构图 74
3.4 映射数据流到软体结构 75
3.4.1 变换流 75
3.4.2 事务流 76
3.4.3 变换映射(变换分析) 76
3.4.4 事务映射(事务分析) 78
3.4.5 设计最佳化—精化软体结构 79
3.5 资料库结构设计过程 80
3.6 实例分析 81
3.7 小结 83
习题3 84
第4章 软体详细设计 85
4.1 结构化程式设计 86
4.1.1 结构化的控制结构 86
4.1.2 结构化程式设计的实现方法 87
4.1.3 结构化程式设计的特点 88
4.2 用户界面设计 88
4.2.1 黄金规则 89
4.2.2 用户界面的分析与设计 90
4.2.3 界面分析 92
4.2.4 界面设计步骤 94
4.3 程式算法设计工具 96
4.3.1 图形化设计工具 97
4.3.2 表格式设计表示 101
4.3.3 程式设计语言 102
4.3.4 程式算法设计工具的比较 103
4.4 面向数据结构的设计方法 104
4.4.1 Jackson数据结构图 104
4.4.2 改进的Jackson图 105
4.4.3 Jackson方法的设计过程 105
4.5 程式複杂度的概念及度量方法 108
4.6 小结 111
习题4 111
第5章 软体实现 113
5.1 软体编码 113
5.1.1 编码目的 113
5.1.2 程式设计语言的选择 114
5.1.3 良好的编程实践 115
5.1.4 程式设计师的基本素质 117
5.2 软体测试基础 118
5.3 测试设计和管理 120
5.3.1 错误曲线 120
5.3.2 软体测试配置 120
5.3.3 测试用例设计 122
5.4 软体测试过程 124
5.4.1 软体测试基本原则 125
5.4.2 软体测试的步骤、测试信息流 126
5.4.3 软体测试组织与人员 127
5.5 软体测试的基本方法 128
5.5.1 软体测试方法与技术 128
5.5.2 软体测试的误区 130
5.6 软体测试策略 132
5.6.1 测试策略 132
5.6.2 单元测试 133
5.6.3 集成测试(组装测试) 135
5.6.4 确认测试(有效性测试) 139
5.6.5 系统测试与验收测试 140
5.7 白盒测试 142
5.7.1 逻辑覆盖法 142
5.7.2 基本路径测试法 146
5.8 黑盒测试 149
5.8.1 等价类划分法 149
5.8.2 边界值分析法 150
5.8.3 错误推测法 151
5.8.4 状态测试法 151
5.9 回归测试 152
5.10 软体调试 153
5.10.1 软体调试的目的与原则 154
5.10.2 软体调试技术 154
5.10.3 调试技巧 156
5.11 小结 156
习题5 156
第6章 软体维护 159
6.1 软体维护的基本概念 159
6.2 软体维护的任务和分类 160
6.3 软体维护过程 161
6.4 维护的管理 164
6.5 预防性维护 169
6.6 软体维护的副作用 170
6.7 软体文档与编写要求及方法 171
6.7.1 软体文档的重要性与分类 171
6.7.2 软体文档应该满足的要求 173
6.7.3 对软体文档编制的质量要求 174
6.7.4 软体文档的管理和维护 175
6.8 软体逆向工程和再工程 176
6.9 小结 178
习题6 178
第7章 面向对象软体工程方法学 179
7.1 面向对象的概念 179
7.2 从认识论看面向对象方法的形成 181
7.2.1 软体开发—对事物的认识和描述 181
7.2.2 语言的鸿沟 181
7.2.3 面向对象程式语言的发展使鸿沟变小 182
7.2.4 软体工程学的作用 183
7.3 面向对象方法的基本概念 186
7.3.1 面向对象的基本概念 186
7.3.2 面向对象的主要特徵 186
7.4 统一过程与统一建模语言 187
7.4.1 统一过程概述 187
7.4.2 统一过程生命周期 189
7.4.3 统一建模语言 192
7.5 叠代和增量过程 194
7.5.1 为什幺採用叠代和增量的开发方法 194
7.5.2 叠代方法是风险驱动的 198
7.5.3 通用叠代过程 198
7.5.4 一次叠代产生一个增量结果 200
7.5.5 在整个生命周期上的叠代 200
7.5.6 由叠代过程来演化模型 202
7.6 小结 202
习题7 203
第8章 用例驱动 204
8.1 用例驱动开发概述 205
8.2 为什幺使用用例 206
8.2.1 根据需求的价值捕获用例 207
8.2.2 用例驱动开发过程 207
8.3 确定客户需要什幺 208
8.4 需求工作流 209
8.5 领域模型 211
8.6 业务模型 212
8.7 补充需求 216
8.8 初始需求 216
8.9 初始需求:考勤系统实例研究 218
8.9.1 聆听 218
8.9.2 确定参与者 219
8.9.3 确定用例 220
8.9.4 简要说明用例 222
8.9.5 描述用例模型 223
8.10 继续需求流:考勤系统实例研究 224
8.10.1 区分用例的优先权 224
8.10.2 详细描述用例 225
8.10.3 构造用户界面原型 230
8.11 修订需求:考勤系统实例研究 233
8.12 测试工作流:考勤系统实例研究 241
8.13 需求规格说明书 242
8.14 小结 243
习题8 243
第9章 面向对象分析 244
9.1 分析工作流 244
9.2 分析模型 246
9.3 确定分析包 248
9.3.1 处理分析包之间的共性 248
9.3.2 确定服务包 249
9.3.3 确定分析包间的依赖 250
9.4 提取实体类 251
9.4.1 实体类的提取 251
9.4.2 面向对象分析:电梯问题实例研究 251
9.4.3 功能建模:电梯问题实例研究 252
9.4.4 实体类建模:电梯问题实例研究 253
9.4.5 动态建模:电梯问题实例研究 256
9.4.6 测试工作流:电梯问题案例研究 257
9.5 提取边界类和控制类 260
9.6 初始功能模型:考勤系统实例研究 260
9.6.1 划分用例等级 260
9.6.2 寻找候选对象 264
9.7 分析类 268
9.7.1 确定职责 268
9.7.2 确定属性 269
9.7.3 确定关联和聚合 269
9.7.4 确定泛化 270
9.7.5 捕获特殊需求 270
9.8 初始类图:考勤系统实例研究 271
9.8.1 寻找“Login”中的关係 271
9.8.2 寻找“RecordTime”中的关係 272
9.8.3 寻找“ExportTimeEntries”中的
关係 272
9.9 描述分析对象间的互动 273
9.10 用例实现:考勤系统实例研究 274
9.10.1 为“Login”添加假设的行为 274
9.10.2 为“Login”构建顺序图 275
9.11 分析包 277
9.12 类图递增:考勤系统实例研究 278
9.13 测试流与分析工作流中的规格
说明文档 279
9.14 小结 280
习题9 281
第10章 构架为中心 282
10.1 构架概述 283
10.2 为什幺需要构架 284
10.3 用例和构架 285
10.4 建立构架的步骤 287
10.4.1 构架基线是一个“小的、皮包骨的”
系统 287
10.4.2 使用构架模式 288
10.4.3 描述构架 289
10.4.4 构架设计师创建构架 291
10.4.5 构架师 291
10.4.6 建立构架的过程 292
10.5 构架描述 293
10.6 建立软体构架:考勤系统实例研究 296
10.6.1 确立目标 296
10.6.2 将类分组并评估每个类 297
10.6.3 展示技术 301
10.6.4 抽取子系统 302
10.6.5 套用原则和目标对构架进行评估 303
10.7 小结 304
习题10 304
第11章 设计和模式 305
11.1 设计在软体生命周期中的作用 305
11.2 设计工作流 307
11.3 设计模式 311
11.3.1 设计原则 311
11.3.2 模式简介 312
11.3.3 设计模式的优势与套用 316
11.4 规划设计工作 316
11.4.1 建立整个设计目标 317
11.4.2 建立设计準则 318
11.4.3 寻找独立的设计工作 318
11.5 设计包或子系统 319
11.6 设计工作流:考勤系统实例研究 319
11.7 HTMLProduction框架 320
11.7.1 设计目标 320
11.7.2 按目标进行设计 323
11.7.3 填充细节 332
11.7.4 实现工作流 335
11.8 TimeCardUI包 338
11.8.1 评审 338
11.8.2 针对目标进行设计 340
11.8.3 用例设计 341
11.8.4 实现工作流 344
11.9 设计度量与用于设计的CASE工具 344
11.10 小结 345
习题11 346
第12章 面向对象实现 347
12.1 实现在软体生命周期中的作用 347
12.2 实现工作流 349
12.2.1 构架实现 349
12.2.2 系统集成 350
12.2.3 实现子系统 352
12.2.4 实现类 353
12.2.5 执行单元测试 354
12.3 集成 356
12.4 测试工作流 360
12.5 用于实现的CASE工具 364
12.6 小结 366
习题12 366
第13章 软体复用和构件技术 368
13.1 复用的概念 368
13.2 复用的障碍与复用技巧 369
13.3 对象和复用 372
13.3.1 OO方法对软体复用的支持 372
13.3.2 复用技术对OO方法的支持 373
13.4 构件及构件技术 374
13.4.1 构件 374
13.4.2 构件技术模型 375
13.4.3 当前主流构件模型 375
13.4.4 构件的开发与复用 377
13.5 设计和实现期间的复用 378
13.6 复用及网际网路 381
13.7 小结 382
习题13 382
第14章 现代软体工程 383
14.1 现代软体工程发展的主要技术特点 383
14.2 开源软体运动 385
14.2.1 开源软体的定义与由来 385
14.2.2 Oss项目的优势与开发经验 387
14.2.3 如何看待开源软体 388
14.3 领域工程 389
14.3.1 基于领域工程的软体开发概述 389
14.3.2 基于构件的软体工程 390
14.3.3 领域工程建模过程 391
14.4 敏捷软体开发过程及实践 392
14.4.1 敏捷思想与实践原则 392
14.4.2 支持敏捷软体开发的技术和
管理手段 394
14.4.3 极限编程 396
14.4.4 其他敏捷软体开发方法 397
14.5 测试驱动开发 398
14.5.1 测试驱动开发思想 398
14.5.2 支持测试驱动开发的软体工具 400
14.5.3 测试驱动开发过程 401
14.6 现代软体工程其他新方法 401
习题14 404
附录:软体工程师职业素质及道德规範 405
F1. 软体工程师职业素质 405
F2. 软体工程师道德规範 406

2020-02-22 17:52:30