图书介绍
软件工程与计算 卷2 软件开发的技术基础PDF|Epub|txt|kindle电子书版本网盘下载
- 络斌主编 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111407508
- 出版时间:2012
- 标注页数:440页
- 文件大小:207MB
- 文件页数:458页
- 主题词:软件工程-高等学校-教材;软件开发-高等学校-教材
PDF下载
下载说明
软件工程与计算 卷2 软件开发的技术基础PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 软件工程概论2
第1章 软件工程基础2
1.1软件2
1.1.1软件独立于硬件2
1.1.2软件是一种工具2
1.1.3软件的核心是程序3
1.1.4软件开发远比编程要复杂3
1.1.5应用软件基于现实又高于现实4
1.2软件工程4
1.2.1定义4
1.2.2软件工程是一种工程活动4
1.2.3软件工程的动机5
1.2.4软件工程是科学性、实践性和工艺性并重的6
1.2.5软件工程追求足够好,不是最好8
1.2.6软件工程的产品是基于虚拟计算机的软件方案8
1.2.7软件工程的最终目的9
1.3软件工程概览9
1.3.1软件工程知识域9
1.3.2软件开发活动11
1.3.3软件工程的角色分工13
1.4习题14
第2章 软件工程的发展15
2.1软件工程的发展脉络15
2.2 20世纪50年代的软件工程17
2.3 20世纪60年代的软件工程19
2.4 20世纪70年代的软件工程22
2.5 20世纪80年代的软件工程26
2.6 20世纪90年代的软件工程31
2.7 21世纪00年代的软件工程37
2.8习题39
第二部分 项目启动42
第3章 示例项目描述42
3.1背景42
3.2目标42
3.3系统用户42
3.4用户访谈要点43
3.5项目实践过程47
第4章 项目管理基础48
4.1项目和项目管理48
4.2团队组织与管理49
4.2.1团队的特征49
4.2.2团队结构49
4.2.3团队建设51
4.3软件质量保障53
4.3.1软件质量53
4.3.2质量保障55
4.3.3评审56
4.3.4质量度量57
4.4软件配置管理57
4.4.1配置管理动机57
4.4.2配置项58
4.4.3基线58
4.4.4配置管理活动59
4.4.5变更控制60
4.5项目实践62
4.6习题62
第三部分 需求开发阶段66
第5章 软件需求基础66
5.1引言66
5.2需求工程基础67
5.2.1需求工程简介67
5.2.2需求工程活动67
5.2.3需求获取68
5.2.4需求分析69
5.2.5需求规格说明70
5.2.6需求验证70
5.2.7需求管理71
5.3需求基础71
5.3.1需求71
5.3.2需求的层次性71
5.3.3结合层次性的需求开发73
5.3.4区分需求、问题域与规格说明74
5.4需求分类75
5.4.1需求谱系75
5.4.2软件需求的分类76
5.5项目实践79
5.6习题80
第6章 需求分析方法82
6.1需求分析基础82
6.1.1需求分析的原因82
6.1.2需求分析模型83
6.2结构化分析84
6.2.1结构化分析方法84
6.2.2数据流图85
6.2.3实体关系图90
6.3面向对象分析92
6.3.1面向对象分析方法92
6.3.2用例93
6.3.3用例图94
6.3.4用例描述96
6.3.5概念类图(领域模型)98
6.3.6交互图(顺序图)104
6.3.7状态图106
6.4使用需求分析方法细化和明确需求108
6.4.1细化和明确需求内容108
6.4.2建立系统级需求109
6.5项目实践112
6.6习题113
第7章 需求文档化与验证115
7.1文档化的原因115
7.2需求文档基础115
7.2.1需求文档的交流对象115
7.2.2用例文档116
7.2.3软件需求规格说明文档116
7.3需求文档化要点118
7.3.1技术文档写作要点118
7.3.2需求书写要点119
7.3.3软件需求规格说明文档书写要点120
7.4评审软件需求规格说明文档121
7.4.1需求验证与确认121
7.4.2评审需求的注意事项121
7.5以需求为基础开发系统测试用例122
7.5.1开发测试用例套件123
7.5.2开发测试用例125
7.6度量需求125
7.7将需求制品纳入配置管理129
7.8项目实践130
7.9习题130
第四部分 软件设计133
第8章 软件设计基础133
8.1软件设计思想的发展133
8.2软件设计的核心思想134
8.3理解软件设计135
8.3.1设计与软件设计135
8.3.2工程设计与艺术设计136
8.3.3理性主义和经验主义137
8.3.4软件设计的演化性137
8.3.5软件设计的决策性138
8.3.6软件设计的约束满足和多样性138
8.4软件设计的分层139
8.5软件设计过程的主要活动140
8.6软件设计的方法和模型140
8.6.1软件设计的方法140
8.6.2软件设计的模型141
8.7软件设计描述141
8.7.1设计视图和设计图142
8.7.2设计视角和设计关注143
8.7.3需求和涉众144
8.7.4设计理由144
8.7.5设计描述的模板145
8.7.6软件设计文档书写要点145
8.8项目实践146
8.9习题146
第9章 软件体系结构基础148
9.1软件体系结构的发展148
9.2理解软件体系结构148
9.2.1定义148
9.2.2区分软件体系结构的抽象与实现149
9.2.3部件150
9.2.4连接件150
9.2.5配置151
9.3体系结构风格初步153
9.3.1主程序/子程序153
9.3.2面向对象式154
9.3.3分层156
9.3.4 MVC157
9.4项目实践159
9.5习题159
第10章 软件体系结构设计与构建160
10.1体系结构设计过程160
10.1.1分析关键需求和项目约束160
10.1.2选择体系结构风格162
10.1.3软件体系结构逻辑设计162
10.1.4软件体系结构实现165
10.1.5完善软件体系结构设计170
10.1.6定义构件接口172
10.2体系结构的原型构建173
10.2.1包的创建173
10.2.2重要文件的创建174
10.2.3定义构件之间的接口174
10.2.4关键需求的实现175
10.3体系结构集成与测试175
10.3.1集成的策略175
10.3.2桩、驱动与集成测试用例177
10.4软件体系结构设计文档描述180
10.5体系结构评审181
10.6项目实践181
10.7习题182
第11章 人机交互设计183
11.1引言183
11.2人机交互设计的目标184
11.3人机交互设计的人类因素185
11.3.1精神模型185
11.3.2差异性186
11.4人机交互设计的计算机因素186
11.4.1可视化设计186
11.4.2常见界面类型187
11.5人机交互设计的交互性188
11.5.1导航188
11.5.2反馈189
11.5.3一些人机交互设计原则190
11.6人机交互设计过程192
11.6.1基本过程192
11.62示例193
11.7项目实践195
11.8习题195
第12章 详细设计的基础197
12.1详细设计概述197
12.1.1详细设计出发点197
12.1.2详细设计的上下文198
12.2结构化设计199
12.2.1结构化设计的思想199
12.2.2结构化设计的过程200
12.3面向对象设计202
12.3.1面向对象设计的思想202
12.3.2面向对象设计的过程202
12.3.3通过职责建立静态模型203
12.3.4通过协作建立动态模型206
12.4为类间协作开发集成测试用例210
12.5详细设计文档描述212
12.6详细设计的评审213
12.7项目实践213
12.8习题213
第13章 详细设计中的模块化与信息隐藏215
13.1模块化与信息隐藏思想215
13.1.1设计质量215
13.1.2模块化与信息隐藏思想的动机215
13.1.3模块化与信息隐藏思想的发展216
13.2模块化217
13.2.1分解与模块化217
13.2.2结构化设计中的耦合219
13.2.3结构化设计中的内聚220
13.2.4回顾:MSCS系统设计中的模块化思想221
13.3信息隐藏222
13.3.1抽象与信息隐藏222
13.3.2信息与隐藏224
13.3.3模块说明225
13.3.4回顾:MSCS系统设计中的信息思想226
13.4习题226
第14章 详细设计中面向对象方法下的模块化228
14.1面向对象中的模块228
14.1.1类228
14.1.2类之间的联系228
14.2访问耦合229
14.2.1访问耦合的分析229
14.2.2降低访问耦合的方法230
14.3继承耦合234
14.3.1继承耦合的分析234
14.3.2降低继承耦合的方法235
14.4内聚237
14.4.1面向对象中的内聚237
14.4.2提高内聚的方法238
14.5耦合与内聚的度量241
14.5.1耦合的度量241
14.5.2内聚的度量242
14.6项目实践243
14.7习题243
第15章 详细设计中面向对象方法下的信息隐藏246
15.1封装类的职责246
15.1.1类的职责246
15.1.2封装——分离接口与实现247
15.1.3封装实现细节247
15.2为变更而设计251
15.2.1封装变更/开闭原则251
15.2.2多态252
15.2.3依赖倒置原则253
15.2.4总结257
15.3项目实践257
15.4习题258
第16章 详细设计的设计模式262
16.1设计模式基础262
16.2可修改性及其基本实现机制262
16.3策略模式265
16.3.1典型问题265
16.3.2设计分析266
16.3.3解决方案266
16.3.4模式实例268
16.4抽象工厂模式270
16.4.1典型问题270
16.4.2设计分析272
16.4.3解决方案272
16.4.4模式实例274
16.5单件模式276
16.5.1典型问题276
16.5.2设计分析276
16.5.3解决方案276
16.5.4模式实例277
16.6迭代器模式277
16.6.1典型问题277
16.6.2设计分析279
16.6.3解决方案279
16.6.4模式实例280
16.7项目实践280
16.8习题280
第五部分 软件构造、测试、交付与维护282
第17章 软件构造282
17.1概述282
17.1.1软件构造的定义282
17.1.2软件构造是设计的延续283
17.2软件构造活动283
17.2.1详细设计283
17.2.2编程284
17.2.3测试284
17.2.4调试285
17.2.5代码评审286
17.2.6集成与构建288
17.2.7构造管理288
17.3软件构造实践方法288
17.3.1重构289
17.3.2测试驱动开发291
17.3.3结对编程295
17.4项目实践295
17.5习题296
第18章 代码设计298
18.1设计易读的代码298
18.1.1格式298
18.1.2命名302
18.1.3注释302
18.2设计易维护的代码304
18.2.1小型任务305
18.2.2复杂决策306
18.2.3数据使用308
18.2.4明确依赖关系308
18.3设计可靠的代码308
18.3.1契约式设计308
18.3.2防御式编程310
18.4使用模型辅助设计复杂代码310
18.4.1决策表311
18.4.2伪代码311
18.4.3程序流程图313
18.5为代码开发单元测试用例313
18.5.1为方法开发测试用例313
18.5.2使用Mock Object测试类方法313
18.5.3为类开发测试用例315
18.6代码复杂度度量316
18.7问题代码317
18.8项目实践318
18.9习题319
第19章 软件测试320
19.1引言320
19.1.1验证与确认320
19.1.2软件测试的目标321
19.1.3测试用例321
19.1.4桩与驱动321
19.1.5缺陷、错误与失败322
19.2测试层次323
19.2.1测试层次的划分323
19.2.2单元测试323
19.2.3集成测试324
19.2.4系统测试325
19.3测试技术325
19.3.1测试用例的选择325
19.3.2随机测试326
19.3.3基于规格的技术——黑盒测试方法327
19.3.4基于代码的技术——白盒测试方法329
19.3.5特定测试技术331
19.4测试活动331
19.5测试度量334
19.6项目实践334
19.7习题335
第20章 软件交付336
20.1安装与部署336
20.1.1安装336
20.1.2部署337
20.2培训与文档支持338
20.2.1培训338
20.2.2文档支持339
20.3项目评价341
20.3.1项目评价的原因341
20.3.2项目评价的内容341
20.3.3项目评价的方法341
20.3.4注意事项343
20.4项目实践343
20.5习题344
第21章 软件维护与演化345
21.1软件维护345
21.1.1软件可修改性与软件维护345
21.1.2软件维护的类型345
21.1.3软件维护的高代价性346
21.1.4开发可维护的软件348
21.1.5软件维护过程与活动349
21.2软件演化350
21.2.1演化与维护350
21.2.2软件演化定律351
21.2.3软件演化生命周期模型与演化活动352
21.3软件维护与演化的常见技术354
21.3.1遗留软件355
21.3.2逆向工程355
21.3.3再工程356
21.4项目实践356
21.5习题357
第六部分 软件过程模型与职业基础360
第22章 软件开发过程模型360
22.1软件开发的典型阶段360
22.1.1软件需求工程360
22.1.2软件设计361
22.1.3软件构造361
22.1.4软件测试363
22.1.5软件交付363
22.1.6软件维护363
22.2软件生命周期模型364
22.3软件过程模型364
22.4构建-修复模型366
22.5瀑布模型367
22.6增量迭代模型368
22.7演化模型370
22.8原型模型371
22.9螺旋模型372
22.10 Rational统一过程374
22.11敏捷过程376
22.12习题378
第23章 软件工程职业基础379
23.1软件工程职业379
23.1.1软件行业的发展379
23.1.2软件工程职业的出现380
23.1.3软件工程师职业素质380
23.2软件工程职业概况381
23.2.1知识体系381
23.2.2教育体系381
23.2.3职业道德规范382
23.2.4认证体系382
23.2.5行业协会383
23.3软件工程的行业标准383
23.4习题384
附录A软件需求规格说明文档模板385
附录B文档注释规范391
附录C软件工程道德和职业实践规范(5.2版)的八项原则395
附录D连锁商店管理系统(MSCS)相关文档399
参考文献428