图书介绍
软件工程实用教程 第2版PDF|Epub|txt|kindle电子书版本下载
![软件工程实用教程 第2版](https://www.shukui.net/cover/77/33404317.jpg)
- 周丽娟,王华,张树东编著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302426158
- 出版时间:2016
- 标注页数:365页
- 文件大小:54MB
- 文件页数:386页
- 主题词:软件工程-高等学校-教材
PDF下载
下载说明
软件工程实用教程 第2版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 传统的软件工程3
第1章 软件工程概述3
1.1 软件的概念和特征3
1.1.1 软件的概念3
1.1.2 软件的分类4
1.2 软件危机5
1.2.1 软件危机的主要表现6
1.2.2 产生软件危机的原因7
1.2.3 解决软件危机的途径8
1.3 软件工程9
1.3.1 软件工程的定义9
1.3.2 软件工程的目标10
1.3.3 软件工程的研究内容11
1.3.4 软件工程的基本原理12
1.4 软件生存周期13
1.4.1 软件生存周期定义14
1.4.2 软件生存周期的基本任务14
1.5 软件生存周期模型14
1.5.1 瀑布模型14
1.5.2 原型模型15
1.5.3 增量模型17
1.5.4 螺旋模型17
1.5.5 喷泉模型18
1.5.6 形式化方法模型19
1.5.7 基于组件的开发模型19
1.5.8 第四代技术模型20
1.5.9 混合模型20
小结20
习题20
第2章 可行性研究与软件开发计划22
2.1 可行性研究的任务22
2.2 可行性研究的过程23
2.3 成本/效益分析24
2.3.1 成本估计方法24
2.3.2 成本/效益分析方法25
2.4 可行性研究报告27
2.5 软件开发计划27
2.5.1 软件作用范围28
2.5.2 资源需求28
2.5.3 进度安排28
2.6 软件开发计划说明书28
小结29
习题30
第3章 需求工程31
3.1 软件需求定义31
3.1.1 业务需求32
3.1.2 用户需求32
3.1.3 功能需求32
3.1.4 非功能需求32
3.2 需求工程过程33
3.3 需求的获取34
3.3.1 需求获取的过程34
3.3.2 需求获取的常用方法35
3.4 需求分析37
3.4.1 需求分析的特点37
3.4.2 需求分析的原则37
3.4.3 需求分析的任务38
3.4.4 需求分析的方法39
3.4.5 需求分析过程40
3.5 需求定义40
3.6 需求验证42
3.7 需求管理44
3.8 案例:小型教学管理系统46
小结49
习题49
第4章 结构化分析50
4.1 结构化分析方法50
4.1.1 结构化分析策略50
4.1.2 SA的描述工具51
4.1.3 SA的分析步骤51
4.2 数据流图52
4.2.1 数据流图符号52
4.2.2 绘制分层数据流图的方法53
4.2.3 实例54
4.2.4 数据流图的绘制与其他流程图的差别56
4.3 数据字典57
4.3.1 数据字典的内容57
4.3.2 数据字典使用符号58
4.3.3 数据字典条目实例59
4.4 数据加工逻辑60
4.4.1 结构化语言60
4.4.2 判定表61
4.4.3 判定树62
4.5 实体-关系图63
4.6 结构化分析实例64
小结69
习题70
第5章 总体设计71
5.1 软件设计基础71
5.1.1 软件设计的目标71
5.1.2 软件设计的任务72
5.1.3 总体设计过程72
5.2 软件设计的基本原理73
5.2.1 模块化设计原理73
5.2.2 抽象和逐步求精75
5.2.3 信息隐蔽和局部化76
5.2.4 模块独立性76
5.2.5 软件结构设计优化原则79
5.3 表示软件结构的图形80
5.3.1 层次图HIPO图80
5.3.2 软件结构图82
5.4 结构化设计方法83
5.4.1 结构化设计的流程83
5.4.2 典型的数据流类型和系统结构84
5.4.3 变换分析86
5.4.4 事务分析90
5.5 总体设计文档及复审93
小结94
习题94
第6章 详细设计95
6.1 结构化程序设计95
6.2 详细设计的任务95
6.3 详细设计的原则96
6.4 详细设计工具96
6.4.1 程序流程图96
6.4.2 盒图(N-S图)97
6.4.3 问题分析图98
6.4.4 过程设计语言100
6.4.5 详细设计工具的选择102
6.5 程序复杂性度量103
6.6 详细设计文档及复审105
小结107
习题107
第7章 软件编码109
7.1 程序设计语言109
7.1.1 程序设计语言的特性109
7.1.2 程序设计语言的分类110
7.1.3 程序设计的选择112
7.2 程序设计的风格113
7.2.1 源程序文档化113
7.2.2 数据说明114
7.2.3 语句结构114
7.2.4 输入/输出115
7.2.5 重用116
7.3 效率116
小结118
习题118
第8章 软件测试119
8.1 软件测试基本理论119
8.1.1 软件测试的概念119
8.1.2 软件测试的原则119
8.1.3 软件测试过程121
8.1.4 软件测试方法121
8.2 白盒测试技术122
8.2.1 逻辑覆盖法122
8.2.2 基本路径测试法126
8.2.3 循环测试法130
8.3 黑盒测试技术131
8.3.1 等价类划分法131
8.3.2 边界值分析法134
8.3.3 错误猜测法136
8.3.4 因果图法137
8.4 软件测试策略137
8.4.1 单元测试138
8.4.2 集成测试139
8.4.3 确认测试141
8.4.4 系统测试142
小结143
习题144
第9章 软件维护145
9.1 软件维护概述145
9.1.1 软件维护分类145
9.1.2 软件维护成本146
9.2 软件维护过程148
9.2.1 软件维护活动148
9.2.2 软件维护技术151
9.3 软件可维护性151
9.3.1 影响软件可维护性的因素152
9.3.2 软件可维护性度量152
9.3.3 提高可维护性的方法154
9.4 软件维护的副作用155
9.4.1 代码的副作用155
9.4.2 数据副作用155
9.4.3 文档副作用156
9.5 软件再工程156
9.5.1 软件再工程概述156
9.5.2 软件再工程过程157
9.5.3 软件再工程方法159
小结159
习题159
第二部分 面向对象的软件工程163
第10章 面向对象基础163
10.1 面向对象方法论概述163
10.1.1 传统软件开发方法中存在的问题163
10.1.2 面向对象方法主要优点165
10.1.3 面向对象方法的发展史及现状简介167
10.2 面向对象的基本概念168
10.2.1 对象168
10.2.2 类168
10.2.3 消息168
10.2.4 封装性168
10.2.5 继承性169
10.2.6 多态性169
10.3 面向对象软件工程170
10.3.1 面向对象的开发方法170
10.3.2 统一建模语言UML171
10.3.3 RUP过程171
10.3.4 工具175
小结176
习题176
第11章 UML建模语言177
11.1 UML统一建模语言简介177
11.1.1 UML的发展历史177
11.1.2 UML的特点178
11.1.3 UML用于软件的开发178
11.2 UML的基本模型179
11.2.1 UML的事物179
11.2.2 UML的关系181
11.2.3 UML的图185
11.3 用例图187
11.3.1 用例图描述187
11.3.2 建立用例模型190
11.3.3 用例图示例191
11.4 类图192
11.4.1 类图描述192
11.4.2 类的表示方法192
11.4.3 类的关系193
11.4.4 类图示例193
11.5 对象图194
11.5.1 对象图描述194
11.5.2 对象的表示方法194
11.5.3 对象图示例195
11.6 包图195
11.6.1 包图描述195
11.6.2 包的表示方法196
11.6.3 包之间的关系196
11.6.4 包图示例196
11.7 状态机图197
11.7.1 状态机图描述197
11.7.2 状态的表示方法197
11.7.3 转换198
11.7.4 事件199
11.7.5 状态图示例199
11.8 活动图200
11.8.1 活动图描述200
11.8.2 活动的表示方法200
11.8.3 泳道201
11.8.4 对象流和控制流202
11.8.5 活动图示例202
11.9 顺序图203
11.9.1 顺序图描述203
11.9.2 顺序图表示方法203
11.9.3 顺序图示例204
11.10 通信图205
11.10.1 通信图描述205
11.10.2 通信图表示方法205
11.10.3 通信图示例207
11.11 构件图207
11.11.1 构件图描述207
11.11.2 构件的表示方法208
11.11.3 接口208
11.11.4 依赖关系209
11.11.5 构件图示例209
11.12 部署图210
11.12.1 部署图描述210
11.12.2 部署图表示方法211
11.12.3 部署图示例212
小结213
习题213
第12章 面向对象分析215
12.1 面向对象分析过程215
12.2 建立用例模型216
12.2.1 确定系统的执行者216
12.2.2 确定用例216
12.2.3 确定用例模型217
12.2.4 用例模型说明218
12.2.5 用例模型评价220
12.2.6 优化用例模型221
12.2.7 构造系统原型221
12.3 建立对象模型221
12.3.1 补充用例说明222
12.3.2 识别分析类222
12.3.3 描述类的职责224
12.3.4 建立分析类之间的关系225
12.3.5 描述每个类的属性226
12.4 建立动态模型226
12.5 评审分析模型228
小结229
习题229
第13章 面向对象的设计230
13.1 面向对象设计准则230
13.1.1 设计准则230
13.1.2 设计策略231
13.1.3 系统分解与组织233
13.2 问题域子系统设计235
13.3 人机交互子系统设计236
13.4 任务管理子系统设计238
13.5 数据管理子系统设计240
13.5.1 选择数据存储管理模式240
13.5.2 设计数据管理子系统241
13.6 对象设计243
13.6.1 使用模式设计对象244
13.6.2 接口规格说明设计244
13.6.3 重构对象设计模型246
13.6.4 优化对象设计模型246
小结247
习题247
第14章 面向对象实现248
14.1 面向对象程序设计语言248
14.2 面向对象的程序实现特征249
14.3 面向对象测试250
14.3.1 面向对象测试模型251
14.3.2 面向对象分析的测试251
14.3.3 面向对象设计的测试252
14.3.4 面向对象编程的测试253
14.3.5 面向对象的单元测试254
14.3.6 面向对象的集成测试256
14.3.7 面向对象的系统测试257
小结258
习题258
第三部分 软件工程管理261
第15章 软件工程管理概述261
15.1 软件项目管理261
15.1.1 软件项目管理的特点261
15.1.2 软件项目管理活动262
15.1.3 软件项目计划263
15.2 软件风险管理274
15.2.1 风险识别275
15.2.2 风险分析278
15.2.3 风险规划280
15.2.4 风险控制280
15.3 软件质量管理281
15.3.1 软件质量基础281
15.3.2 软件质量控制281
15.4 软件配置管理283
15.4.1 软件配置管理概述283
15.4.2 软件配置管理过程284
15.5 软件过程管理285
15.5.1 ISO 9000体系285
15.5.2 能力成熟度模型286
小结289
习题289
第四部分 软件工程高级课题293
第16章 Web工程293
16.1 基于Web的系统和应用特点293
16.2 Web工程的层次295
16.2.1 过程295
16.2.2 方法296
16.2.3 工具和技术296
16.3 Web分析297
16.3.1 内容分析模型297
16.3.2 交互分析模型297
16.3.3 功能分析模型298
16.3.4 配置分析模型298
16.3.5 关系导航分析模型299
16.4 Web设计300
16.4.1 界面设计300
16.4.2 美学设计301
16.4.3 内容设计302
16.4.4 体系结构设计302
16.4.5 导航设计303
16.4.6 构件设计304
16.5 Web测试304
16.5.1 内容测试304
16.5.2 界面测试305
16.5.3 构件级测试306
16.5.4 导航测试307
16.5.5 配置测试307
16.5.6 安全性测试308
16.5.7 性能测试309
16.6 Web项目管理310
16.6.1 Web队伍310
16.6.2 项目管理311
16.6.3 配置管理312
小结312
习题313
第17章 基于构件的软件开发314
17.1 软件复用概述314
17.1.1 软件复用的定义315
17.1.2 软件复用的形式和级别315
17.1.3 软件复用的过程317
17.1.4 软件复用的意义318
17.2 构件与构件技术319
17.2.1 构件的定义及基本特征319
17.2.2 构件技术的产生与基本思想320
17.3 构件与构件系统322
17.3.1 对可复用构件的要求322
17.3.2 构件模型及系统323
17.3.3 构件的分类模式324
17.3.4 构件库的管理326
17.4 领域工程327
17.4.1 领域工程过程327
17.4.2 领域工程实施329
17.4.3 组织机构329
17.4.4 相关技术330
17.5 基于构件的软件开发330
17.5.1 CBSE/CBD概述330
17.5.2 CBSE过程332
17.5.3 基于构件的系统的开发332
17.5.4 构件构造333
17.5.5 软件构件技术规范333
17.6 CBD与传统的软件开发方法比较336
小结338
习题338
第18章 分布式系统的软件开发339
18.1 分布式系统概述339
18.2 客户/服务器体系结构341
18.3 分布式对象技术342
18.4 机构间分布式计算345
18.4.1 对等体系结构346
18.4.2 面向服务的系统体系结构346
小结348
习题348
第19章 敏捷开发349
19.1 敏捷方法概述349
19.1.1 敏捷方法发展史350
19.1.2 敏捷宣言350
19.2 敏捷方法的特点352
19.3 敏捷方法与传统软件开发方法的区别352
19.4 主要敏捷方法简介353
19.5 极限编程355
19.5.1 XP的含义355
19.5.2 XP的4个核心价值356
19.5.3 为什么使用XP356
19.5.4 XP的开发过程357
19.5.5 XP的实践358
19.6 Scrum模型361
19.6.1 Scrum简介361
19.6.2 角色的作用361
19.6.3 会议的作用362
19.6.4 Scrum开发模式的流程363
小结364
习题364
参考文献365