注册 登录 进入教材巡展
#

出版时间:2017年1月

出版社:清华大学出版社

以下为《面向对象软件工程》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 清华大学出版社
  • 9787302460947
  • 1-1
  • 118280
  • 16开
  • 2017年1月
  • 工学
  • 软件工程
  • TP311.5
  • 计算机
  • 本专科、高职高专
内容简介
第1部分引言与系统工程。这部分由前3章构成,它提供了观察软件生命周期行为的视角。尤其是,它覆盖了软件过程模型、方法学的概念、过程与方法的区别以及系统工程。
第2部分分析和体系结构设计。这部分介绍了计划阶段的行为,包括需求提取、领域建模和架构设计。
第3部分交互式系统的建模和设计。这部分主要处理建模与交互系统设计问题,共包括6章。这6章介绍了如何根据需求识别出用例、如何对参与者系统交互以及对象交互行为进行建模和设计、如何应用职责分配模式、如何得到作为设计蓝本的设计类框图,以及如何设计用户交互界面。
第4部分其他类型系统的建模和设计。这部分包括3章,每章介绍一种类型系统的建模与设计。具体来说,第13章介绍事件驱动系统的建模与设计;第14章介绍迁移系统的建模与设计;第15章介绍基于业务规则的系统的建模与设计。
第5部分应用情景特定模式。这部分由两章构成,主要介绍如何应用情景特定模式。其中使用了一个案例分析,即状态图编辑器的设计来帮助理解这个过程。
第6部分实现和质量保证。这部分包括3章,包括实现时要考虑的问题、软件质量保证的概念和行为以及软件测试。
第7部分维护和配置管理。这部分包括两章,内容覆盖了软件维护与软件配置管理。
第8部分项目管理和软件安全。本书的*后一部分由两章构成,一章介绍软件项目管理,另一章介绍软件安全,包括涉及安全软件系统的建模与设计的生命周期行为。
目录
目录
第1部分引言与系统工程
第1章引言3
1.1什么是软件工程3
1.2为什么要用软件工程4
1.3软件生命周期行为5
1.3.1软件开发过程5
1.3.2软件质量保证8
1.3.3软件项目管理9
1.4面向对象的软件工程10
1.4.1面向对象的建模和设计
语言10
1.4.2面向对象的开发
过程10
1.4.3面向对象的开发
方法11
1.4.4OO会取代传统的
方法吗11
1.5软件工程和计算机科学11
小结12
深入阅读12
章节复习问题13
练习13
第2章软件过程和方法14
2.1系统开发的挑战14
2.2软件过程15
2.3瀑布模型的优势和问题16
2.4软件开发是一个险恶问题16
2.5软件过程模型17
2.5.1原型过程18
2.5.2演化过程18
2.5.3螺旋模型18
2.5.4统一过程19
2.5.5个人软件过程20
2.5.6团队软件过程24
2.5.7敏捷过程26
2.6软件开发方法30
2.6.1过程和方法的区别30
2.6.2方法的好处31
2.6.3结构化方法32
2.6.4经典的面向对象
方法32
2.7敏捷方法32
2.7.1动态系统开发
方法(DSDM)34
2.7.2Scrum35
2.7.3特征驱动的开发35
2.7.4极限编程36
2.7.5敏捷还是计划驱动36
2.8本书中的过程和方法一览37
小结41
深入阅读41
章节复习问题42
练习42
第3章系统工程43
3.1什么是系统43
3.2什么是系统工程44
3.3系统需求定义47
3.3.1识别业务需求47
3.3.2定义系统需求48
3.4系统结构设计48
3.4.1系统分解49
3.4.2需求分配51
3.4.3结构设计图52
3.4.4子系统功能和接口规
格说明55
3.5子系统开发56
3.5.1面向对象的上下文图56
3.5.2面向对象的上下文图
的用途57
3.5.3工程团队的协作58
3.6系统集成、测试和部署58
3.7系统配置管理58
小结60
深入阅读60
章节复习问题60
练习60
第2部分分析和体系结构设计
第4章获取软件需求65
4.1什么是需求获取65
4.2获取需求的重要性67
4.3获取需求的挑战67
4.4需求的类型68
4.5获取需求的步骤69
4.5.1收集信息70
4.5.2构建分析模型73
4.5.3获取需求和约束74
4.5.4需求规格标准77
4.5.5进行可行性研究77
4.5.6审查需求规格说
明书77
4.6应用敏捷原则79
4.7需求管理和工具80
小结81
深入阅读81
章节复习问题81
练习82
第5章领域建模84
5.1什么是领域建模84
5.2为什么要进行领域建模85
5.3面向对象和类图85
5.3.1外延定义和意向
定义85
5.3.2类和对象86
5.3.3对象和属性87
5.3.4关联88
5.3.5多重性和角色89
5.3.6聚合90
5.3.7继承90
5.3.8继承和多态91
5.3.9关联类91
5.4领域建模的步骤93
5.4.1收集应用领域信息94
5.4.2头脑风暴94
5.4.3对头脑风暴结果
分类95
5.4.4领域模型可视化98
5.4.5领域建模审查
清单102
5.5综合103
5.6领域建模的方针105
5.7应用敏捷原则106
5.8领域建模的工具支持107
小结108
深入阅读109
章节复习问题109
练习109
第6章架构设计111
6.1什么是架构设计111
6.2架构设计的重要性112
6.3架构设计过程112
6.3.1确定架构设计
目标113
6.3.2确定系统类型114
6.3.3应用架构样式117
6.3.4进行定制的架构
设计124
6.3.5明确子系统功能和
接口124
6.3.6审查架构设计125
6.4架构样式和包图125
6.5应用软件设计准则126
6.5.1什么是软件设计
准则127
6.5.2为改变而设计127
6.5.3关注点分离128
6.5.4信息隐藏129
6.5.5高内聚129
6.5.6低耦合129
6.5.7保持简单和直接130
6.6架构设计的方针131
6.7架构设计和设计模式131
6.8应用敏捷原则132
小结132
深入阅读132
章节复习问题133
练习133
第3部分交互式系统的建模和设计
第7章从需求获取用例137
7.1什么是参与者137
7.2什么是用例138
7.3业务过程、操作和活动138
7.4从需求获取用例的步骤140
7.4.1识别用例140
7.4.2明确用例范围146
7.4.3用例上下文可
视化147
7.4.4检查用例规约151
7.4.5将用例分配给
迭代152
7.5导出用例的方针153
7.6应用敏捷原则155
7.7用例建模的工具支持155
小结157
深入阅读157
章节复习问题157
练习158
第8章参与者系统交互建模159
8.1什么是参与者系统交互
建模159
8.2参与者系统交互建模的
重要性160
8.3参与者系统交互建模的
步骤160
8.3.1初始化一个两列
的表161
8.3.2明确参与者系统交互
的步骤161
8.3.3检查参与者系统交互
规约161
8.4明确可替换的流162
8.5使用用户界面原型163
8.6不要显示异常处理166
8.7用例的先决条件和后置
条件166
8.8包含其他用例167
8.9用其他用例继续167
8.10常见问题168
8.11应用敏捷原则170
小结170
深入阅读171
章节复习问题171
练习171
第9章对象交互建模172
9.1什么是对象交互建模172
9.2UML顺序图173
9.2.1概念和表示法173
9.2.2展示类的实例173
9.2.3顺序图说明174
9.2.4顺序图用于分析和
设计176
9.2.5正确使用表示
方法178
9.3对象交互建模的步骤179
9.3.1收集业务过程的
信息180
9.3.2识别非普通步骤180
9.3.3为非普通步骤书写
场景181
9.3.4构建场景表183
9.3.5怎么写场景183
9.3.6从场景表得到顺
序图188
9.3.7对象交互建模检查
清单194
9.4应用敏捷原则195
9.5对象交互建模的工具支持197
小结197
深入阅读197
章节复习问题197
练习198
第10章应用职责分配模式199
10.1什么是设计模式199
10.2为什么要用设计模式200
10.3情景特定模式和职责分配
模式200
10.4模式规约201
10.5控制器模式202
10.5.1激励示例202
10.5.2什么是控制器204
10.5.3应用控制器
模式204
10.5.4控制器的类型206
10.5.5跟踪记录用例
状态 206
10.5.6臃肿的控制器207
10.5.7比较不同的
设计208
10.5.8何时应用控制器
模式209
10.5.9使用控制器的
方针210
10.6专家模式210
10.6.1信息专家210
10.6.2应用专家模式211
10.6.3包含不止一个对象
的专家模式212
10.6.4何时应用专家
模式213
10.6.5使用专家模式的
方针213
10.7创建者模式213
10.7.1什么是创建者213
10.7.2应用创建者
模式214
10.7.3创建者模式的
优势215
10.7.4何时应用创建者
模式215
小结216
深入阅读216
章节复习问题216
练习217
第11章获取设计类图219
11.1什么是设计类图220
11.2设计类图的用途220
11.3获取设计类图的步骤221
11.3.1识别类221
11.3.2识别方法222
11.3.3识别属性224
11.3.4类之间的关系226
11.3.5识别关系226
11.3.6设计类图检查
清单228
11.4用包图组织类228
11.5应用敏捷原则230
11.6设计类图的工具支持231
小结231
深入阅读231
章节复习问题231
练习231
第12章用户接口设计232
12.1什么是用户接口设计232
12.2用户接口设计为什么
重要233
12.3图形用户接口组件234
12.3.1容器组件235
12.3.2输入、输出和信息
展示组件235
12.3.3使用GUI组件的
方针237
12.4用户接口设计过程237
12.4.1案例研究: 为状态
图编辑器设计用户
接口238
12.4.2识别系统主要显示
方式238
12.4.3生成布局设计
草图240
12.4.4明确交互行为242
12.4.5构建原型242
12.4.6用户评估用户接口
设计243
12.4.7用户接口设计检查
清单244
12.5设计用户支持功能245
12.6用户接口设计的方针245
12.7应用敏捷原则247
12.8用户接口设计的工具
支持247
小结248
深入阅读248
章节复习问题248
练习249
第4部分其他类型系统的建模和设计
第13章事件驱动系统的对象状态
建模253
13.1什么是对象状态建模253
13.2为什么要进行对象状态
建模254
13.3基本定义254
13.4对象状态建模的步骤255
13.4.1收集和分类状态
行为信息256
13.4.2构建领域模型来
展示上下文258
13.4.3构建状态迁移表260
13.4.4状态迁移表的
用途261
13.4.5将状态迁移表转换
为分析状态图262
13.4.6将分析状态图转换
为设计状态图264
13.4.7状态建模检查
清单265
13.5状态模式265
13.5.1约定的方法265
13.5.2什么是状态
模式266
13.5.3应用状态模式266
13.6实时系统的建模与设计269
13.6.1转换图式270
13.6.2定时状态机271
13.6.3中断处理272
13.7应用敏捷原则273
13.8对象状态建模的工具
支持274
小结274
深入阅读275
章节复习问题275
练习275
第14章转换型系统的活动建模278
14.1什么是活动建模278
14.2为什么使用活动建模279
14.3活动建模: 技术背景279
14.3.1流程图280
14.3.2佩特里网280
14.3.3数据流图281
14.4UML活动图282
14.5活动建模的步骤283
14.5.1识别活动和工
作流284
14.5.2产生一个初步活
动图286
14.5.3引入条件分支、分叉
和连接287
14.5.4精炼复杂的活动287
14.5.5活动建模审核检
查表288
14.6与其他图之间的关系288
14.7应用敏捷原则289
14.8活动建模的工具支持289
小结289
深入阅读290
章节复习问题290
练习290
第15章基于规则的系统的建模与
设计291
15.1什么是决策表292
15.2决策表的用处293
15.3系统化的决策表构造293
15.4渐进式决策表构造294
15.5检查所需的属性295
15.6决策表合并296
15.7根据决策表生成代码296
15.8应用解释器模式297
15.8.1定义业务规则
语法297
15.8.2在类图中表示
规则298
15.8.3构建解析器和变量
查找上下文299
15.8.4解释业务规则299
15.8.5动态更新规则300
15.8.6解释方法的
优点300
15.9在测试驱动开发中使用
决策表300
15.10决策树301
15.11应用敏捷原则301
小结302
深入阅读302
章节复习问题302
练习303第5部分应用情景特定模式
第16章应用模式来设计状态图
编辑器307
16.1应用模型的过程308
16.2案例研究: 状态图编
辑器310
16.3处理复杂的结构311
16.3.1表示递归的整体
部分结构311
16.3.2使用策略提供布局
选择315
16.3.3用迭代器访问复杂
的结构316
16.3.4通过访问者分析复
杂的结构317
16.3.5通过备忘录存储和
恢复对象状态320
16.4创建和构造复杂的对象321
16.4.1创建系列产品321
16.4.2构建大型的复杂
对象324
16.4.3通过享元重用
对象326
16.5图形用户界面的设计和
显示327
16.5.1跟踪编辑状态327
16.5.2响应编辑事件328
16.5.3转换接口330
16.5.4提供上下文相关的
帮助333
16.5.5使用装饰增强显示
能力335
16.6应用敏捷原则338
小结338
深入阅读338
章节复习问题339
练习339第17章应用模式来设计持久性
框架340
17.1直接访问数据库会出现的
问题340
17.2通过桥隐藏持久存储341
17.3将数据库请求封装为
命令344
17.4用远程代理隐藏网络
访问348
17.5用模板方法共享通用
代码351
17.6通过工厂方法检索不同
的对象353
17.7用原型减少类的数量355
17.8应用敏捷原则358
小结358
深入阅读358
章节复习问题358
练习358
第6部分实现和质量保证
第18章实现方面的考虑363
18.1编码标准363
18.1.1什么是编码
标准363
18.1.2为什么要建立
编码标准367
18.1.3代码审查清单367
18.1.4编码标准实施
准则367
18.2组织实现部件369
18.3根据设计生成代码370
18.3.1实现类和接口370
18.3.2从顺序图到方法
代码骨架370
18.3.3实现关联关系371
18.4给团队成员分配任务372
18.5结对编程372
18.6测试驱动开发373
18.6.1测试驱动开发的
工作流程373
18.6.2测试驱动开发的
优点375
18.6.3潜在问题375
18.7应用敏捷原则376
18.8对实现的工具支持376
小结376
深入阅读377
章节复习问题377
练习377
第19章软件质量保证379
19.1软件质量保证的益处379
19.2软件质量属性379
19.3质量测量和度量381
19.3.1质量测量和度量的
实用性382
19.3.2常规质量度量382
19.3.3对面向对象软件
重用传统度量387
19.3.4面向对象质量
度量387
19.4软件验证与确认技术389
19.4.1审查389
19.4.2走查390
19.4.3同行审查391
19.5生命周期中的验证和
确认392
19.6软件质量保证功能393
19.6.1过程和标准的
定义394
19.6.2质量管理396
19.6.3过程改进397
19.7应用敏捷原则398
19.8SQA的工具支持399
小结399
深入阅读400
章节复习问题400
练习400
第20章软件测试401
20.1什么是软件测试402
20.2为什么进行软件测试402
20.3传统的黑盒测试403
20.3.1功能性测试: 一个
例子403
20.3.2等价类划分404
20.3.3边界值分析405
20.3.4因果分析407
20.4传统的白盒测试407
20.4.1基路径测试408
20.4.2圈复杂度409
20.4.3流图测试覆盖
准则409
20.4.4测试循环410
20.4.5数据流测试411
20.4.6数据流测试的覆盖
准则412
20.4.7过程间数据流
测试412
20.5测试覆盖率413
20.6一个通用的软件测试
过程413
20.7面向对象的软件测试415
20.7.1基于用例的
测试415
20.7.2用ClassBench进行
对象状态测试416
20.7.3测试类的层次
结构418
20.7.4测试异常处理
能力419
20.8测试Web应用程序420
20.8.1Web应用程序测试
的面向对象模型420
20.8.2使用面向对象模型进
行静态分析421
20.8.3使用面向对象模型生
成测试用例421
20.8.4用httpUnit进行Web
应用程序测试422
20.9非功能性需求的测试422
20.9.1性能和压力
测试422
20.9.2安全测试423
20.9.3测试用户界面423
20.10生命周期中的软件测试424
20.11回归测试426
20.12什么时候停止
测试426
20.13应用敏捷原则427
20.14测试的工具支持427
小结427
深入阅读428
章节复习问题428
练习428
第7部分维护和配置管理
第21章软件维护433
21.1什么是软件维护433
21.2软件变化的因素434
21.3系统演化的雷曼定律434
21.4软件维护的类型435
21.5软件维护过程和活动435
21.5.1维护过程模型436
21.5.2理解程序437
21.5.3变更识别和
分析437
21.5.4配置变更控制439
21.5.5变更实施、测试和
交付440
21.6逆向工程440
21.6.1逆向工程工作流
440
21.6.2逆向工程的用途
440
21.6.3逆向工程: 案例
研究441
21.7软件再工程441
21.7.1再工程的目标441
21.7.2软件再工程的
过程442
21.7.3软件再工程: 案例
研究443
21.8软件维护的模式444
21.8.1用外观模式简化
客户端接口444
21.8.2用中介者模式简化
组件交互445
21.8.3软件维护的
模式445
21.9应用敏捷原则449
21.10软件维护的工具支持449
小结450
深入阅读450
章节复习问题450
练习450
第22章软件配置管理452
22.1软件生命周期的基准452
22.2什么是软件配置管理453
22.3为什么需要软件配置
管理454
22.4软件配置管理的功能454
22.4.1软件配置识别455
22.4.2软件配置变更
控制456
22.4.3软件配置审核457
22.4.4软件配置状态的
审计458
22.5敏捷项目中的配置管理458
22.6软件配置管理工具458
小结460
深入阅读460
章节复习问题460
练习461
第8部分项目管理和软件安全
第23章软件项目管理465
23.1项目组织466
23.1.1项目形式466
23.1.2团队结构467
23.2工作量评估方法468
23.2.1功能点方法468
23.2.2COCOMO Ⅱ模型
469
23.2.3Delphi评估方法
474
23.2.4敏捷评估474
23.3项目计划和调度476
23.3.1PERT图476
23.3.2Gantt图和人员
分配477
23.3.3敏捷规划478
23.4风险管理479
23.4.1风险识别479
23.4.2风险分析和优先级
划分480
23.4.3风险管理规划482
23.4.4风险解决和监控
482
23.5过程改进482
23.6应用敏捷原则484
23.7项目管理的工具支持484
小结485
深入阅读485
章节复习问题486
练习486
第24章软件安全488
24.1什么是软件安全489
24.2安全要求489
24.3安全软件设计原则490
24.4安全软件设计模式491
24.5软件安全的7个最佳
实践493
24.6通过攻击树进行风险
分析494
24.7生命周期中的软件安
全性494
24.7.1规划阶段的安全
495
24.7.2迭代阶段的安全
501
24.8应用敏捷原则503
24.9软件安全的工具支持504
小结504
深入阅读505
章节复习问题505
练习506
附录A个人软件过程: 估计、规划和
质量保证507
A.1PSP中的工作量估计507
A.2PSP中的软件质量保证508
A.3设计和质量508
附录BJava技术510
B.1使用数据库连接510
B.1.1什么是数据库连接
510
B.1.2设置数据源510
B.1.3从程序中访问数据库
511
B.2使用Swing512
B.2.1用JFrame创建主
窗口512
B.2.2利用布局管理器
来布局组件513
B.2.3使用动作监听器
处理按钮事件515
B.2.4实现绘图功能515
B.3使用JSP517
B.3.1什么是JSP517
B.3.2JSP工作流517
B.3.3用JSP容器安装Web
服务器518
B.3.4使用JSP518
附录C软件工具521
C.1NetBeans521
C.2使用JUnit522
C.3在NetBeans中运行
JUnit525
C.4Emma覆盖工具525
C.5Cobertura覆盖工具526
C.6使用HttpUnit测试Web
应用程序527
C.6.1配置IDE以使用
HttpUnit527
C.6.2在HttpUnit中实现
测试用例528
C.7在NetBeans中使用cvs和
Subversion529
C.7.1创建CVS远程存
储库529
C.7.2在NetBeans中安装
Subversion530
C.7.3从存储库检出文件
531
C.7.4编辑源和查看变更
533
C.7.5查看文件状态533
C.7.6比较文件版本534
C.7.7合并存储库中的
更改534
C.7.8解决冲突534
C.7.9更新本地副本534
C.7.10提交本地文件到
存储库535
C.7.11导入文件到存储库
535
附录D项目概要536
D.1汽车租赁系统536
D.2国家贸易展览服务系统536
D.3海外留学管理系统537
D.4UML类图编辑器539
D.5无线电通信模拟器540
D.6对象状态测试环境541
参考文献543