图书介绍
软件工程PDF|Epub|txt|kindle电子书版本网盘下载
![软件工程](https://www.shukui.net/cover/61/31271939.jpg)
- 张海藩著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302198123
- 出版时间:2009
- 标注页数:335页
- 文件大小:27MB
- 文件页数:350页
- 主题词:软件工程-高等学校-教材
PDF下载
下载说明
软件工程PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 软件工程学概述1
1.1 软件危机1
1.1.1 软件危机的介绍1
1.1.2 产生软件危机的原因2
1.1.3 消除软件危机的途径4
1.2 软件工程4
1.2.1 软件工程的介绍4
1.2.2 软件工程的基本原理5
1.2.3 软件工程方法学5
1.3 软件生命周期8
1.4 软件过程11
1.4.1 瀑布模型11
1.4.2 快速原型模型13
1.4.3 增量模型15
1.4.4 螺旋模型16
1.4.5 喷泉模型18
1.4.6 Rational统一过程19
1.4.7 敏捷过程与极限编程22
1.4.8 微软过程26
1.5 小结28
习题129
第2章 可行性研究31
2.1 可行性研究的任务31
2.2 可行性研究过程32
2.3 数据流图34
2.3.1 符号34
2.3.2 例子35
2.3.3 命名38
2.3.4 用途39
2.4 数据字典40
2.4.1 数据字典的内容40
2.4.2 定义数据的方法41
2.4.3 数据字典的用途42
2.4.4 数据字典的实现42
2.5 成本/效益分析43
2.5.1 成本估计43
2.5.2 成本/效益分析的方法44
2.6 小结46
习题247
第3章 需求分析49
3.1 需求分析的任务50
3.1.1 确定对系统的综合要求50
3.1.2 分析系统的数据要求51
3.1.3 导出系统的逻辑模型52
3.1.4 修正系统开发计划52
3.2 与用户沟通获取需求的方法52
3.2.1 访谈52
3.2.2 面向数据流自顶向下求精53
3.2.3 简易的应用规格说明技术54
3.2.4 快速建立软件原型55
3.3 分析建模与规格说明56
3.3.1 分析建模56
3.3.2 软件需求规格说明56
3.4 实体-联系图56
3.4.1 数据对象57
3.4.2 属性57
3.4.3 联系57
3.4.4 实体-联系图的符号58
3.5 数据规范化58
3.6 状态转换图59
3.6.1 状态59
3.6.2 事件59
3.6.3 符号60
3.6.4 例子60
3.7 其他图形工具61
3.7.1 层次方框图62
3.7.2 Warnier图62
3.7.3 IPO图63
3.8 验证软件需求64
3.8.1 从哪些方面验证软件需求的正确性64
3.8.2 验证软件需求的方法64
3.8.3 用于需求分析的软件工具65
3.9 小结66
习题367
第4章 形式化说明技术69
4.1 概述69
4.1.1 非形式化方法的缺点69
4.1.2 形式化方法的优点70
4.1.3 应用形式化方法的准则70
4.2 有穷状态机71
4.2.1 概念71
4.2.2 例子73
4.2.3 评价76
4.3 Petri网76
4.3.1 概念76
4.3.2 例子78
4.4 Z语言79
4.4.1 简介79
4.4.2 评价82
4.5 小结82
习题483
第5章 总体设计85
5.1 设计过程85
5.2 设计原理87
5.2.1 模块化87
5.2.2 抽象89
5.2.3 逐步求精89
5.2.4 信息隐藏和局部化90
5.2.5 模块独立91
5.3 启发规则93
5.4 描绘软件结构的图形工具95
5.4.1 层次图和HIPO图95
5.4.2 结构图96
5.5 小结97
习题598
第6章 详细设计101
6.1 结构程序设计101
6.2 人机界面设计103
6.2.1 设计问题103
6.2.2 设计过程105
6.2.3 人机界面设计指南106
6.3 过程设计的工具108
6.3.1 程序流程图108
6.3.2 盒图108
6.3.3 PAD图109
6.3.4 判定表110
6.3.5 判定树111
6.3.6 过程设计语言112
6.4 程序复杂程度的定量度量113
6.4.1 McCabe方法113
6.4.2 Halstead方法116
6.5 小结116
习题6117
第7章 实现121
7.1 编码122
7.1.1 选择程序设计语言122
7.1.2 编码风格122
7.2 软件测试基础123
7.2.1 软件测试的目标123
7.2.2 软件测试准则124
7.2.3 测试方法124
7.2.4 测试步骤125
7.2.5 测试阶段的信息流126
7.3 单元测试126
7.3.1 测试重点127
7.3.2 代码审查128
7.3.3 计算机测试128
7.4 集成测试130
7.4.1 自顶向下集成130
7.4.2 自底向上集成132
7.4.3 不同集成测试策略的比较132
7.4.4 回归测试133
7.5 确认测试133
7.5.1 确认测试的范围134
7.5.2 软件配置复查134
7.5.3 Alpha和Beta测试134
7.6 白盒测试技术135
7.6.1 逻辑覆盖135
7.6.2 控制结构测试138
7.7 黑盒测试技术144
7.7.1 等价划分145
7.7.2 边界值分析148
7.7.3 错误推测148
7.8 调试149
7.8.1 调试过程149
7.8.2 调试途径151
7.9 软件可靠性152
7.9.1 基本概念152
7.9.2 估算平均无故障时间的方法153
7.10 小结155
习题7156
第8章 维护161
8.1 软件维护的定义161
8.2 软件维护的特点162
8.2.1 结构化维护与非结构化维护差别巨大162
8.2.2 维护的代价高昂162
8.2.3 维护的问题很多163
8.3 软件维护过程164
8.4 软件的可维护性166
8.4.1 决定软件可维护性的因素166
8.4.2 文档167
8.4.3 可维护性复审168
8.5 预防性维护169
8.6 软件再工程过程170
8.7 小结172
习题8173
第9章 面向对象方法学引论175
9.1 面向对象方法学概述175
9.1.1 面向对象方法学的要点175
9.1.2 面向对象方法学的优点177
9.2 面向对象的概念181
9.2.1 对象181
9.2.2 其他概念183
9.3 面向对象建模187
9.4 对象模型188
9.4.1 类图的基本符号189
9.4.2 表示关系的符号190
9.5 动态模型195
9.6 功能模型196
9.6.1 用例图196
9.6.2 用例建模199
9.7 3种模型之间的关系200
9.8 小结201
习题9201
第10章 面向对象分析203
10.1 面向对象分析的基本过程203
10.1.1 概述203
10.1.2 3个子模型与5个层次204
10.2 需求陈述205
10.2.1 书写要点205
10.2.2 例子206
10.3 建立对象模型207
10.3.1 确定类与对象208
10.3.2 确定关联210
10.3.3 划分主题213
10.3.4 确定属性213
10.3.5 识别继承关系216
10.3.6 反复修改216
10.4 建立动态模型219
10.4.1 编写脚本219
10.4.2 设想用户界面220
10.4.3 画事件跟踪图221
10.4.4 画状态图222
10.4.5 审查动态模型223
10.5 建立功能模型225
10.5.1 画出基本系统模型图225
10.5.2 画出功能级数据流图226
10.5.3 描述处理框功能226
10.6 定义服务227
10.7 小结228
习题10228
第11章 面向对象设计231
11.1 面向对象设计的准则231
11.2 启发规则233
11.3 软件重用235
11.3.1 概述235
11.3.2 类构件237
11.3.3 软件重用的效益238
11.4 系统分解239
11.5 设计问题域子系统242
11.6 设计人机交互子系统245
11.7 设计任务管理子系统247
11.8 设计数据管理子系统249
11.8.1 数据存储管理模式选择249
11.8.2 数据管理子系统设计250
11.8.3 例子252
11.9 设计类中的服务252
11.9.1 确定类中应有的服务252
11.9.2 设计实现服务的方法253
11.10 设计关联254
11.11 设计优化255
11.11.1 确定优先级255
11.11.2 提高效率的几项技术256
11.11.3 调整继承关系257
11.12 小结259
习题11260
第12章 面向对象实现261
12.1 程序设计语言261
12.1.1 面向对象语言的优点261
12.1.2 面向对象语言的技术特点262
12.1.3 选择面向对象语言266
12.2 程序设计风格266
12.2.1 提高可重用性267
12.2.2 提高可扩充性269
12.2.3 提高健壮性269
12.3 测试策略270
12.3.1 面向对象的单元测试270
12.3.2 面向对象的集成测试271
12.3.3 面向对象的确认测试271
12.4 设计测试用例271
12.4.1 测试类的方法272
12.4.2 集成测试方法273
12.5 小结275
习题12276
第13章 软件项目管理277
13.1 估算软件规模277
13.1.1 代码行技术277
13.1.2 功能点技术278
13.2 工作量估算280
13.2.1 静态单变量模型280
13.2.2 动态多变量模型280
13.2.3 COCOMO2模型281
13.3 进度计划284
13.3.1 估算开发时间284
13.3.2 Gantt图286
13.3.3 工程网络287
13.3.4 估算工程进度288
13.3.5 关键路径290
13.3.6 机动时间290
13.4 人员组织292
13.4.1 民主制程序员组292
13.4.2 主程序员组293
13.4.3 现代程序员组294
13.5 质量保证296
13.5.1 软件质量296
13.5.2 软件质量保证措施298
13.6 软件配置管理300
13.6.1 软件配置301
13.6.2 软件配置管理过程301
13.7 能力成熟度模型303
13.8 小结306
习题13307
附录A C++类库管理系统的分析与设计309
A.1 面向对象分析309
A.1.1 需求309
A.1.2 建立对象模型310
A.2 面向对象设计311
A.2.1 设计类库结构311
A.2.2 设计问题域子系统312
A.2.3 设计人机交互子系统313
A.2.4 设计其他类316
附录B 一个汉字行编辑程序的设计317
B.1 设计规格说明317
B.1.1 外部编辑命令317
B.1.2 编辑命令318
B.1.3 输出信息319
B.2 概要设计320
B.2.1 正文文件320
B.2.2 两个工作模式321
B.2.3 数据元素322
B.2.4 过程323
B.3 概要设计结果323
B.4 详细设计326
B.4.1 数据元素326
B.4.2 控制数据元素328
B.4.3 编辑过程328
B.4.4 输入模式的过程329
B.4.5 编辑模式的过程330
B.4.6 编辑程序的详细结构333
参考文献335