图书介绍
软件工程面向对象和传统的方法 原书第7版PDF|Epub|txt|kindle电子书版本网盘下载
![软件工程面向对象和传统的方法 原书第7版](https://www.shukui.net/cover/40/31754493.jpg)
- (美) Stephen R. Schach著 著
- 出版社: 北京:机械工业出版社
- ISBN:7111217225
- 出版时间:2007
- 标注页数:385页
- 文件大小:44MB
- 文件页数:405页
- 主题词:软件工程
PDF下载
下载说明
软件工程面向对象和传统的方法 原书第7版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 软件工程概述3
第1章 软件工程的范畴3
1.1 历史方面4
1.2 经济方面5
1.3 维护性方面6
1.3.1 维护的传统和现代观点7
1.3.2 交付后维护的重要性8
1.4 需求、分析和设计方面9
1.5 小组编程方面11
1.6 为什么没有计划阶段12
1.7 为什么没有测试阶段12
1.8 为什么没有文档阶段12
1.9 面向对象范型13
1.10 正确看待面向对象范型16
1.11 术语16
1.12 道德问题19
本章回顾19
进一步阅读指导20
习题20
参考文献21
第2章 软件生命周期模型25
2.1 理论上的软件开发25
2.2 Winburg小型实例研究25
2.3 Winburg小型实例研究心得27
2.4 野鸭拖拉机公司小型实例研究27
2.5 迭代和递增28
2.6 修订的Winburg小型实例研究30
2.7 迭代和递增的风险和其他方面31
2.8 迭代和递增的控制33
2.9 其他生命周期模型34
2.9.1 编码-修补生命周期模型34
2.9.2 瀑布生命周期模型34
2.9.3 快速原型开发生命周期模型35
2.9.4 开源生命周期模型36
2.9.5 敏捷过程38
2.9.6 同步-稳定生命周期模型40
2.9.7 螺旋生命周期模型40
2.10 生命周期模型的比较43
本章回顾43
进一步阅读指导44
习题44
参考文献45
第3章 软件过程48
3.1 统一过程49
3.2 面向对象范型内的迭代和递增50
3.3 需求流50
3.4 分析流51
3.5 设计流53
3.6 实现流53
3.7 测试流54
3.7.1 需求制品54
3.7.2 分析制品54
3.7.3 设计制品54
3.7.4 实现制品55
3.8 交付后维护56
3.9 退役56
3.10 统一过程的各阶段57
3.10.1 开始阶段57
3.10.2 细化阶段59
3.10.3 构建阶段59
3.10.4 转换阶段59
3.11 一维与二维生命周期模型60
3.12 改进软件过程61
3.13 能力成熟度模型61
3.14 软件过程改进方面的其他努力63
3.15 软件过程改进的代价和收益64
本章回顾65
进一步阅读指导65
习题66
参考文献67
第4章 软件小组70
4.1 小组组织70
4.2 民主小组方法71
4.3 传统的主程序员小组方法72
4.3.1 《纽约时报》项目73
4.3.2 传统的主程序员小组方法的不实用性73
4.4 主程序员小组和民主小组之外的编程小组74
4.5 同步-稳定小组75
4.6 敏捷过程小组76
4.7 开源编程小组76
4.8 人员能力成熟度模型77
4.9 选择合适的小组组织77
本章回顾78
进一步阅读指导78
习题78
参考文献79
第5章 软件工程工具80
5.1 逐步求精法80
5.2 成本-效益分析法84
5.3 软件度量84
5.4 CASE85
5.5 CASE的分类86
5.6 CASE的范围87
5.7 软件版本89
5.7.1 修订版89
5.7.2 变种版90
5.8 配置控制90
5.8.1 交付后维护期间的配置控制92
5.8.2 基准92
5.8.3 产品开发过程中的配置控制92
5.9 建造工具93
5.10 使用CASE技术提高生产力93
本章回顾94
进一步阅读指导94
习题95
参考文献95
第6章 测试98
6.1 质量问题98
6.1.1 软件质量保证99
6.1.2 管理独立99
6.2 非执行测试100
6.2.1 走查100
6.2.2 管理走查100
6.2.3 审查101
6.2.4 审查与走查的对比102
6.2.5 评审的优缺点102
6.2.6 审查的度量103
6.3 执行测试103
6.4 应该测试什么103
6.4.1 实用性104
6.4.2 可靠性104
6.4.3 健壮性104
6.4.4 性能105
6.4.5 正确性105
6.5 测试与正确性证明106
6.5.1 正确性证明的例子106
6.5.2 正确性证明小型实例研究108
6.5.3 正确性证明和软件工程109
6.6 谁应当完成执行测试110
6.7 测试什么时候停止111
本章回顾111
进一步阅读指导112
习题112
参考文献114
第7章 从模块到对象117
7.1 什么是模块117
7.2 内聚119
7.2.1 偶然性内聚119
7.2.2 逻辑性内聚120
7.2.3 时间性内聚121
7.2.4 过程性内聚121
7.2.5 通信性内聚121
7.2.6 功能性内聚121
7.2.7 信息性内聚122
7.2.8 内聚示例122
7.3 耦合123
7.3.1 内容耦合123
7.3.2 共用耦合123
7.3.3 控制耦合125
7.3.4 印记耦合125
7.3.5 数据耦合126
7.3.6 耦合示例126
7.3.7 耦合的重要性127
7.4 数据封装128
7.4.1 数据封装和产品开发130
7.4.2 数据封装和产品维护130
7.5 抽象数据类型135
7.6 信息隐藏136
7.7 对象138
7.8 继承、多态和动态绑定140
7.9 面向对象范型141
本章回顾143
进一步阅读指导143
习题144
参考文献145
第8章 可重用性和可移植性147
8.1 重用的概念147
8.2 重用的障碍148
8.3 重用实例研究150
8.3.1 Raytheon导弹系统部150
8.3.2 欧洲航天局151
8.4 对象和重用151
8.5 设计和实现期间的重用151
8.5.1 设计重用152
8.5.2 应用框架152
8.5.3 设计模式153
8.5.4 软件体系结构156
8.5.5 基于组件的软件工程156
8.6 重用和交付后维护157
8.7 可移植性157
8.7.1 硬件的不兼容性158
8.7.2 操作系统的不兼容性158
8.7.3 数值计算软件的不兼容性158
8.7.4 编译器的不兼容性160
8.8 为什么需要可移植性161
8.9 实现可移植性的技术162
8.9.1 可移植的系统软件162
8.9.2 可移植的应用软件162
8.9.3 可移植的数据163
本章回顾164
进一步阅读指导164
习题165
参考文献166
第9章 计划和估算171
9.1 计划和软件过程171
9.2 周期和成本估算172
9.2.1 产品规模的度量173
9.2.2 成本估算技术175
9.2.3 中间COCOMO176
9.2.4 COCOMO II179
9.2.5 跟踪周期和成本估算179
9.3 软件项目管理计划的组成179
9.4 软件项目管理计划框架180
9.5 IEEE软件项目管理计划181
9.6 计划测试183
9.7 计划面向对象的项目184
9.8 培训需求184
9.9 文档标准185
9.10 用于计划和估算的CASE工具185
9.11 测试软件项目管理计划185
本章回顾185
进一步阅读指导186
习题186
参考文献187
第二部分 软件生命周期的各个工作流第10章 需求191
10.1 确定客户需要什么191
10.2 需求流概述192
10.3 理解应用域192
10.4 业务模型192
10.4.1 访谈193
10.4.2 其他技术193
10.4.3 用例194
10.5 初始需求195
10.6 对应用领域的初始理解:MSG基金实例研究195
10.7 初始业务模型:MSG基金实例研究196
10.8 初始需求:MSG基金实例研究199
10.9 继续需求流:MSG基金实例研究200
10.10 修订需求:MSG基金实例研究201
10.11 测试流:MSG基金实例研究206
10.12 传统的需求阶段213
10.13 快速原型开发213
10.14 人的因素214
10.15 重用快速原型215
10.16 需求流的CASE工具216
10.17 需求流的度量216
10.18 需求流面临的挑战216
本章回顾217
进一步阅读指导217
习题218
参考文献219
第11章 传统的分析220
11.1 规格说明文档220
11.2 非形式化规格说明221
11.3 结构化系统分析222
11.4 结构化系统分析:MSG基金实例研究227
11.5 其他半形式化技术228
11.6 建造实体-关系模型229
11.7 有穷状态机230
11.8 Petri网234
11.9 Z237
11.9.1 Z:电梯问题实例研究237
11.9.2 Z的分析239
11.10 其他的形式化技术240
11.11 传统分析技术的比较240
11.12 在传统分析阶段测试241
11.13 传统分析阶段的CASE工具241
11.14 传统分析阶段的度量242
11.15 软件项目管理计划:MSG基金实例研究242
11.16 传统分析阶段面临的挑战242
本章回顾243
进一步阅读指导243
习题244
参考文献245
第12章 面向对象分析249
12.1 分析流249
12.2 抽取实体类250
12.3 面向对象分析:电梯问题实例研究250
12.4 功能建模:电梯问题实例研究251
12.5 实体类建模:电梯问题实例研究252
12.5.1 名词抽取252
12.5.2 CRC卡片253
12.6 动态建模:电梯问题实例研究254
12.7 测试流:面向对象分析256
12.8 抽取边界类和控制类259
12.9 初始功能模型:MSG基金实例研究259
12.10 初始类图:MSG基金实例研究260
12.11 初始动态模型:MSG基金实例研究262
12.12 修订实体类:MSG基金实例研究264
12.13 抽取边界类:MSG基金实例研究265
12.14 抽取控制类:MSG基金实例研究265
12.15 用例实现:MSG基金实例研究265
12.15.1 Estimate Funds Avaibuble for Week用例266
12.15.2 Manage an Asset用例270
12.15.3 Update Estimated Annual Operating Expenses用例274
12.15.4 Produce a Report用例275
12.16 类图递增:MSG基金实例研究279
12.17 测试流:MSG基金实例研究280
12.18 统一过程中的规格说明文档280
12.19 关于参与者和用例更详细的内容281
12.20 用于面向对象分析流的CASE工具282
12.21 面向对象分析流所面临的挑战282
本章回顾283
进一步阅读指导283
习题284
参考文献284
第13章 设计286
13.1 设计和抽象286
13.2 面向操作设计287
13.3 数据流分析287
13.3.1 小型实例研究:字数统计288
13.3.2 数据流分析扩展291
13.4 事务分析292
13.5 面向数据设计293
13.6 面向对象设计293
13.7 面向对象设计:电梯问题实例研究294
13.8 面向对象设计:MSG基金实例研究297
13.9 设计流300
13.10 测试流:设计301
13.11 测试流:MSG基金实例研究302
13.12 详细设计的形式化技术302
13.13 实时设计技术302
13.14 设计的CASE工具303
13.15 设计的度量303
13.16 设计流面临的挑战304
本章回顾305
进一步阅读指导305
习题305
参考文献306
第14章 实现309
14.1 编程语言的选择309
14.2 第四代语言311
14.3 良好的编程实践312
14.3.1 使用一致和有意义的变量名313
14.3.2 自文档代码的问题314
14.3.3 使用参数315
14.3.4 为增加可读性的代码编排315
14.3.5 嵌套的if语句315
14.4 编码标准316
14.5 代码重用317
14.6 集成317
14.6.1 自顶向下的集成317
14.6.2 自底向上的集成318
14.6.3 三明治集成319
14.6.4 面向对象产品的集成320
14.6.5 集成的管理320
14.7 实现流320
14.8 实现流:MSG基金实例研究321
14.9 测试流:实现321
14.10 测试用例选择321
14.10.1 规格说明测试与代码测试321
14.10.2 规格说明测试的可行性321
14.10.3 代码测试的可行性322
14.11 黑盒单元测试技术324
14.11.1 等价测试和边界值分析324
14.11.2 功能测试325
14.12 黑盒测试用例:MSG基金实例研究326
14.13 玻璃盒单元测试技术328
14.13.1 结构测试:语句、分支和路径覆盖328
14.13.2 复杂性度量329
14.14 代码走查和审查329
14.15 单元测试技术的比较329
14.16 净室330
14.17 测试对象时潜在的问题330
14.18 单元测试的管理方面332
14.19 何时该重写而不是调试代码制品333
14.20 集成测试334
14.21 产品测试334
14.22 验收测试335
14.23 测试流:MSG基金实例研究335
14.24 实现的CASE工具335
14.24.1 软件开发全过程的CASE工具335
14.24.2 集成化开发环境336
14.24.3 商业应用环境336
14.24.4 公共工具基础结构337
14.24.5 环境的潜在问题337
14.25 测试流的CASE工具337
14.26 实现流的度量338
14.27 实现流面临的挑战338
本章回顾339
进一步阅读指导339
习题340
参考文献342
第15章 交付后维护346
15.1 开发与维护346
15.2 为什么交付后维护是必要的347
15.3 对交付后维护程序员的要求是什么347
15.4 交付后维护小型实例研究349
15.5 交付后维护的管理349
15.5.1 缺陷报告349
15.5.2 批准对产品的修改350
15.5.3 确保可维护性351
15.5.4 迭代维护造成的问题351
15.6 面向对象软件的维护351
15.7 交付后维护技能与开发技能353
15.8 逆向工程354
15.9 交付后维护期间的测试354
15.10 交付后维护的CASE工具355
15.11 交付后维护的度量355
15.12 交付后维护:MSG基金实例研究355
15.13 交付后维护面临的挑战355
本章小结356
进一步阅读指导356
习题356
参考文献357
第16章 UML的进一步讨论360
16.1 UML不是一种方法360
16.2 类图360
16.2.1 聚合361
16.2.2 多重性362
16.2.3 组合362
16.2.4 泛化363
16.2.5 关联363
16.3 注解364
16.4 用例图364
16.5 构造型364
16.6 交互图365
16.7 状态图366
16.8 活动图368
16.9 包369
16.10 组件图369
16.11 部署图370
16.12 UML图回顾370
16.13 UML和迭代370
本章回顾370
进一步阅读指导370
习题371
参考文献371
附录373
附录A 学期项目:Osric的办公室用具和装饰373
附录B 软件工程资源375
附录C 需求流:MSG基金实例研究376
附录D 结构化系统分析:MSG基金实例研究376
附录E 分析流:MSG基金实例研究378
附录F 软件项目管理计划:MSG基金实例研究378
附录G 设计流:MSG基金实例研究380
附录H 实现流:MSG基金实例研究(C++版)385
附录I 实现流:MSG基金实例研究(Java版)385
附录J 测试流:MSG基金实例研究385