图书介绍
软件工程 第3版PDF|Epub|txt|kindle电子书版本网盘下载
![软件工程 第3版](https://www.shukui.net/cover/31/33421692.jpg)
- 李代平编著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302234999
- 出版时间:2011
- 标注页数:530页
- 文件大小:36MB
- 文件页数:559页
- 主题词:软件工程
PDF下载
下载说明
软件工程 第3版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1部分 基础理论3
第1章 绪论3
1.1 软件概述3
1.1.1 什么是计算机软件4
1.1.2 软件的特点4
1.1.3 软件的分类5
1.1.4 软件的发展7
1.1.5 软件危机8
1.2 软件工程10
1.2.1 软件工程与方法学10
1.2.2 软件工程的基本原理12
1.2.3 软件工程的目标13
1.2.4 软件工程的内容15
1.2.5 软件工程的原则15
1.2.6 软件工程面临的问题17
小结17
综合练习一18
第2章 基本理论19
2.1 软件工程过程19
2.2 软件生命周期20
2.2.1 软件分析时期21
2.2.2 软件设计时期22
2.2.3 编码与测试时期23
2.2.4 运行与维护时期23
2.3 软件生命周期模型24
2.3.1 软件生命周期模型的概念24
2.3.2 瀑布模型24
2.3.3 原型模型26
2.3.4 增量模型27
2.3.5 螺旋模型28
2.3.6 喷泉模型30
2.3.7 基于知识的模型30
2.3.8 变换模型31
2.4 软件开发方法32
2.4.1 结构化方法32
2.4.2 Jackson方法32
2.4.3 维也纳开发方法33
2.4.4 面向对象的开发方法33
2.5 软件工具与开发34
2.5.1 软件工具箱34
2.5.2 软件开发环境34
2.5.3 计算机辅助软件工程34
小结35
综合练习二35
第3章 可行性研究37
3.1 可行性研究任务与步骤37
3.1.1 研究任务38
3.1.2 研究步骤41
3.2 系统分析42
3.2.1 系统分析员42
3.2.2 面临的问题域43
3.2.3 通信技术44
3.3 分析原理45
3.3.1 信息域46
3.3.2 建立模型47
3.3.3 分解47
3.4 系统模型与模拟48
3.4.1 系统模型48
3.4.2 系统建模和模拟49
3.5 成本-效益分析50
3.6 可行性研究的文档52
3.7 项目开发计划53
3.7.1 方案选择53
3.7.2 制定项目开发计划54
小结54
综合练习三54
第2部分 结构化方法59
第4章 需求分析与体系结构59
4.1 需求分析59
4.1.1 需求分析的特点60
4.1.2 需求分析的原则60
4.1.3 需求分析的任务61
4.1.4 需求分析的方法62
4.2 结构化分析63
4.2.1 自顶向下逐层分解64
4.2.2 结构化分析步骤65
4.3 系统流程图66
4.4 数据流图67
4.4.1 基本图形符号68
4.4.2 画数据流图69
4.4.3 结构化分析方法的应用71
4.5 数据字典76
4.5.1 内容及格式76
4.5.2 数据字典的实现78
4.6 从需求到体系结构79
4.7 RTRSM的基本元素82
4.7.1 状态转换图83
4.7.2 模板84
4.7.3 规则集85
4.8 RTRSM到体系结构的转换步骤85
4.8.1 描述系统的功能单元(组件)86
4.8.2 描述连接件87
4.8.3 描述软件的配置88
4.9 基于软件体系结构开发方法88
4.9.1 软件体系结构的开发过程88
4.9.2 分布式对象技术89
4.9.3 体系结构与分布式对象结合方法89
4.10 软件体系结构求精方法91
4.10.1 行为替代的体系结构求精方法92
4.10.2 基于风格的体系结构求精方法92
4.10.3 构件体系结构求精方法93
4.10.4 形式化方法与Z语言94
4.10.5 UML和Z结合的求精方法97
4.11 一种新的软件体系结构设计方法100
4.11.1 体系结构需求和软件体系结构100
4.11.2 新的软件体系结构设计过程103
小结104
综合练习四105
第5章 总体设计107
5.1 软件设计的重要性107
5.2 设计过程108
5.3 软件总体设计109
5.4 设计基本原理111
5.4.1 抽象111
5.4.2 细化111
5.4.3 模块化112
5.4.4 软件体系结构113
5.4.5 程序结构114
5.4.6 数据结构115
5.4.7 软件过程116
5.5 体系结构设计117
5.5.1 软件结构图117
5.5.2 模块的大小119
5.5.3 扇出和扇入与深度和宽度119
5.5.4 模块的耦合120
5.5.5 模块的内聚122
5.5.6 结构设计的一般准则124
5.5.7 模块的作用域与控制域125
5.6 结构化设计126
5.6.1 数据流的类型126
5.6.2 过程步骤127
5.6.3 变换分析设计128
5.6.4 事务分析设计130
5.6.5 混合流设计131
5.6.6 结构化设计方法应用示例132
5.6.7 设计的后期处理134
5.7 软件结构优化134
5.7.1 软件结构设计优化准则134
5.7.2 软件结构的HIPO图136
小结136
综合练习五136
第6章 软件详细设计138
6.1 详细设计的任务与方法138
6.1.1 详细设计的基本任务138
6.1.2 详细设计方法139
6.2 设计表示法140
6.2.1 结构化语言140
6.2.2 判定表141
6.2.3 判定树142
6.3 结构化程序设计142
6.3.1 流程图程序142
6.3.2 三种基本控制结构143
6.3.3 常用符号145
6.3.4 正规程序146
6.3.5 基本程序147
6.3.6 结构化程序149
6.4 结构化定理149
6.4.1 程序函数149
6.4.2 基本定理150
6.4.3 非结构化转换为结构化152
6.4.4 常见错误154
6.5 过程设计语言156
小结159
综合练习六159
第3部分 面向对象方法与实现第7章 面向对象方法概论163
7.1 面向对象简介163
7.1.1 什么是面向对象164
7.1.2 面向对象方法的历史及现状165
7.2 面向对象的相关概念166
7.2.1 对象166
7.2.2 类167
7.2.3 对象图168
7.2.4 属性168
7.2.5 服务169
7.2.6 封装170
7.2.7 继承170
7.2.8 多重继承173
7.2.9 消息176
7.2.10 结构与连接177
7.2.11 多态性178
7.2.12 永久对象181
7.2.13 主动对象181
7.2.14 对象类的表示方法182
7.3 链接与关联182
7.3.1 一般概念182
7.3.2 重数183
7.3.3 关联的重要性184
7.3.4 三元关联184
7.3.5 关联的候选关键字184
7.3.6 异或关联185
7.3.7 资格关联185
7.3.8 链接属性185
7.3.9 用关联模型化为类186
7.3.10 角色名186
7.3.11 排序186
7.3.12 资格符187
7.4 构造分组187
7.4.1 模块187
7.4.2 表188
小结188
综合练习七188
第8章 模型190
8.1 统一建模语言190
8.1.1 模型的建立192
8.1.2 UML的基本图标192
8.1.3 UML语义195
8.1.4 UML的基本元素198
8.1.5 UML的词别198
8.2 UML的评价198
8.2.1 UML成功的因素198
8.2.2 UML的积极作用199
8.2.3 UML不能起到的作用200
8.2.4 UML的缺点200
8.2.5 UML的未来206
8.3 对象模型207
8.3.1 表示方法208
8.3.2 表示结构208
8.3.3 例子210
8.4 动态模型210
8.4.1 事件和状态210
8.4.2 操作215
8.4.3 嵌套状态图216
8.4.4 实践技巧219
8.5 功能模型219
8.5.1 数据流图220
8.5.2 指定的操作220
8.5.3 约束222
8.5.4 功能模型的实例222
8.5.5 三种模型的关系225
小结226
综合练习八226
第9章 对象分析228
9.1 对象、主动对象以及它们的类228
9.2 研究问题域和用户需求230
9.2.1 研究用户需求,明确系统责任230
9.2.2 研究问题域231
9.2.3 确定系统边界232
9.3 发现对象233
9.3.1 正确地运用抽象原则233
9.3.2 策略与启发233
9.3.3 对象的发现和标识235
9.3.4 审查和筛选239
9.3.5 识别主动对象241
9.4 对象分类,建立类图的对象层241
9.4.1 异常情况的检查和调整242
9.4.2 类的命名242
9.4.3 建立类图的对象层243
9.5 对象的属性和服务243
9.6 定义属性244
9.6.1 策略与启发244
9.6.2 审查与筛选245
9.6.3 推迟到OOD考虑的问题247
9.6.4 属性的命名和定位248
9.6.5 属性的详细说明248
9.7 定义服务248
9.7.1 对象的状态与状态转换图248
9.7.2 行为分类250
9.7.3 发现服务的策略与启发251
9.7.4 审查与调整252
9.7.5 认识对象的主动行为252
9.7.6 服务的命名和定位252
9.7.7 服务的详细说明253
9.8 应用实例254
9.8.1 功能需求254
9.8.2 发现对象254
9.8.3 对象层表示255
9.8.4 电梯系统的属性描述255
9.8.5 电梯系统的服务定义257
9.8.6 电梯系统的特征层262
小结263
综合练习九263
第10章 关系分析264
10.1 一般-特殊结构264
10.1.1 一般-特殊结构及其用途264
10.1.2 如何发现一般-特殊结构265
10.1.3 审查与调整266
10.1.4 多继承及多态性问题267
10.1.5 一般-特殊结构的简化269
10.1.6 调整对象层和特征层270
10.2 整体-部分结构270
10.2.1 整体-部分结构及其用途270
10.2.2 如何发现整体-部分结构272
10.2.3 审查与筛选273
10.2.4 简化对象的定义274
10.2.5 支持软件复用274
10.2.6 整体-部分结构的进一步运用275
10.2.7 调整对象层和属性层276
10.3 实例连接276
10.3.1 简单的实例连接276
10.3.2 复杂的实例连接及其表示277
10.3.3 三元关联问题279
10.3.4 如何建立实例连接280
10.3.5 对象层、特征层的增补及实例连接说明281
10.4 消息连接281
10.4.1 消息的定义281
10.4.2 顺序系统中的消息282
10.4.3 并发系统中的消息283
10.4.4 消息对OOA的意义285
10.4.5 表示消息连接285
10.5 如何建立消息连接287
10.5.1 建立控制线程内部的消息连接287
10.5.2 建立控制线程之间的消息连接287
10.5.3 对象分布问题及其消息的影响288
10.6 消息的详细说明289
10.7 电梯例子289
10.7.1 一般-特殊关系289
10.7.2 整体-部分关系289
10.7.3 连接290
10.7.4 电梯控制系统的关系层290
小结291
综合练习十291
第11章 控制驱动的设计292
11.1 设计原则292
11.1.1 类型一致性与闭合行为292
11.1.2 其他主要原则293
11.1.3 类的状态空间和行为294
11.2 相关技术问题294
11.2.1 系统总体方案294
11.2.2 软件体系结构295
11.2.3 分布式系统的体系结构风格303
11.2.4 系统的并发性305
11.3 如何设计控制驱动308
11.3.1 选择软件体系结构309
11.3.2 确定系统分布方案309
11.3.3 识别控制流313
11.3.4 用主动对象表示控制流315
11.3.5 把控制驱动部分看做一个主题316
11.4 控制实现316
11.4.1 在程序内进行状态设置317
11.4.2 状态机器引擎317
11.4.3 控制作为并发任务317
小结318
综合练习十一318
第12章 问题域的设计319
12.1 问题域部分设计环境319
12.1.1 为适应编成环境的调整319
12.1.2 从分析和系统结构着手325
12.1.3 对象设计的步骤325
12.1.4 对象模型工具326
12.2 完善对象的细节326
12.3 设计算法332
12.3.1 选择算法332
12.3.2 选择数据结构333
12.3.3 定义内部类和操作333
12.3.4 指定操作的职责334
12.4 继承的调整335
12.4.1 重新安排类和操作335
12.4.2 抽象出公共的行为335
12.4.3 使用授权共享实现336
12.5 关联设计337
12.5.1 分析关联遍历338
12.5.2 单向关联338
12.5.3 双向关联338
12.5.4 链接属性338
12.6 设计优化339
12.6.1 性能的影响因素339
12.6.2 改进性能的设计策略341
12.6.3 重新安排执行次序以获得效率345
12.6.4 保存导出属性避免重复计算346
12.7 物理打包347
12.7.1 信息隐藏347
12.7.2 实体的相关性348
12.7.3 构造模块349
12.8 设计决策文档349
小结349
综合练习十二350
第13章 用户界面设计352
13.1 人的因素353
13.1.1 分析活动者353
13.1.2 从Use Case分析人机交互354
13.1.3 分析处理异常事件的人机交互356
13.1.4 命令的组织357
13.1.5 输出信息的组织结构360
13.2 界面设计风格361
13.2.1 菜单361
13.2.2 对话框362
13.2.3 窗口363
13.3 人机界面设计准则364
13.4 人机界面设计过程365
13.4.1 界面模型365
13.4.2 界面支持系统366
13.4.3 界面元素367
13.4.4 界面设计形式368
13.5 描述方法与技术369
13.5.1 灵境技术370
13.5.2 多通道人机交互技术371
小结372
综合练习十三372
第14章 数据库及其接口设计373
14.1 数据管理系统及其选择373
14.2 技术整合380
14.3 数据接口381
14.4 对象存储方案和数据接口的设计策略383
14.4.1 针对文件系统的设计383
14.4.2 针对RDBMS的设计387
14.4.3 使用OODBMS396
小结396
综合练习十四396
第15章 形式化方法398
15.1 基础知识398
15.1.1 形式化方法概念398
15.1.2 形式化规约语言399
15.2 有限状态机401
15.3 Petri网基本原理402
15.3.1 静态结构403
15.3.2 动态特征403
15.3.3 转移启动规则404
15.3.4 行为特性406
15.3.5 行为特性分析方法408
15.3.6 结构特性分析方法414
15.3.7 Petri网到程序结构的转换417
小结420
综合练习十五420
第16章 软件实现422
16.1 程序设计语言的特性及选择422
16.1.1 程序设计语言特性422
16.1.2 程序设计语言的选择424
16.2 程序设计风格426
16.3 程序设计效率428
16.3.1 代码效率428
16.3.2 内存效率428
16.3.3 I/O效率429
16.4 冗余编程429
16.5 软件容错技术430
16.5.1 容错软件431
16.5.2 容错的一般方法431
16.5.3 容错软件的设计过程433
16.5.4 软件的容错系统结构434
小结437
综合练习十六437
第4部分 质量与工程管理第17章 软件质量441
17.1 软件质量概述441
17.1.1 软件质量的定义441
17.1.2 软件质量的特性441
17.1.3 软件质量特性之间的竞争445
17.2 软件质量的度量和评价447
17.2.1 软件质量的度量447
17.2.2 软件质量度量的分类447
17.2.3 软件质量的评价448
17.3 软件质量保证450
17.3.1 软件质量保证概述450
17.3.2 软件质量保证原则451
17.3.3 软件质量保证计划451
17.3.4 软件质量保证措施452
17.3.5 软件质量管理小组452
17.4 技术评审与审查452
17.4.1 评审过程453
17.4.2 选择参加评审的成员453
17.4.3 评审的管理和组织454
17.4.4 评审的方法454
17.4.5 走查和审查454
17.4.6 开发过程的评审454
17.4.7 对评审的综合评价456
17.5 软件的可靠性456
小结458
综合练习十七458
第18章 软件测试460
18.1 软件测试概述460
18.1.1 软件测试的目的460
18.1.2 软件测试的原则461
18.2 软件测试方法461
18.2.1 静态测试461
18.2.2 动态测试462
18.3 测试用例的设计463
18.3.1 白盒技术463
18.3.2 黑盒技术467
18.4 软件测试过程471
18.4.1 软件测试过程中的信息471
18.4.2 软件测试的步骤与各开发阶段的关系471
18.4.3 单元测试472
18.4.4 集成测试473
18.4.5 确认测试476
18.5 调试477
小结478
综合练习十八478
第19章 软件维护480
19.1 软件维护概述480
19.1.1 软件维护的定义480
19.1.2 影响维护工作的因素481
19.1.3 维护成本481
19.2 软件可维护性482
19.2.1 软件可维护性的定义482
19.2.2 可维护性的度量482
19.3 软件维护的特点484
19.3.1 非结构化维护和结构化维护484
19.3.2 维护的困难性485
19.3.3 软件维护的费用486
19.4 软件维护的实施486
19.4.1 维护的组织486
19.4.2 维护的流程487
19.4.3 维护技术488
19.4.4 维护的副作用489
19.5 维护“老化代码”490
19.6 逆向工程和再工程490
19.6.1 预防性维护491
19.6.2 逆向工程的元素492
19.6.3 再工程中的重构技术492
小结495
综合练习十九496
第20章 软件项目管理与计划497
20.1 软件项目管理概述497
20.1.1 软件管理的对象497
20.1.2 软件开发中的资源498
20.1.3 分解技术499
20.2 项目管理过程499
20.3 软件开发成本估算500
20.3.1 软件开发成本估算方法501
20.3.2 软件开发成本估算的经验模型502
20.4 风险分析503
20.4.1 风险识别504
20.4.2 风险估算504
20.4.3 风险评价505
20.4.4 风险驾驭和监控506
20.5 进度安排507
20.5.1 软件开发小组人数与软件生产率508
20.5.2 任务的确定与并行性508
20.5.3 制定开发进度计划509
20.5.4 进度安排的图形方法510
20.5.5 项目的追踪和控制511
20.6 软件项目的组织511
20.6.1 软件项目管理的特点511
20.6.2 软件项目组织的建立512
20.6.3 人员配备514
小结516
综合练习二十516
参考答案518
参考文献529