面向对象分析与设计 第三版目录
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Object-Oriented Analysis and Design with Applications 目录回到顶部↑
第1部分概念.
第1章复杂性 2
1.1 复杂系统的结构 2
1.1.1 个人计算机的结构 3
1.1.2 植物和动物的结构 3
1.1.3 物质的结构 4
1.1.4 社会机构的结构 4
1.2 软件固有的复杂性 5
1.2.1 定义软件复杂性 5
1.2.2 为什么软件在本质上是复杂的 5
1.3 复杂系统的5个属性8
1.3.1 层次结构8
1.3.2 相对本原8
1.3.3 分离关注9
1.3.4 共同模式9
1.3.5 稳定的中间形式9
1.4 有组织和无组织的复杂性10
1.4.1 复杂系统的规范形式10
1.4.2 处理复杂性时人的能力的局限12
1.5 从混沌到有序12
.1.5.1 分解的作用13
1.5.2 抽象的作用16
1.5.3 层次结构的作用16
1.6 复杂系统的设计17
1.6.1 作为科学和艺术的工程17
1.6.2 设计的含义17
1.7 小结19
第2章对象模型20
2.1 对象模型的演进20
2.1.1 程序设计语言的换代20
2.1.2 第一代和第二代早期程序设计语言的拓扑结构22
2.1.3 第二代后期和第三代早期程序设计语言的结构23
2.1.4 第三代后期程序设计语言的结构23
2.1.5 基于对象和面向对象的程序设计语言的结构24
2.2 对象模型基础26
2.2.1 面向对象编程29
2.2.2 面向对象设计29
2.2.3 面向对象分析30
2.3 对象模型要素30
2.3.1 抽象的意义31
2.3.2 封装的意义35
2.3.3 模块化的意义38
2.3.4 层次结构的意义41
2.3.5 类型的意义46
2.3.6 并发的意义47
2.3.7 持久的意义49
2.4 应用对象模型51
2.4.1 对象模型的好处51
2.4.2 开放式问题52
2.5 小结52
第3章类与对象53
3.1 对象的本质53
3.1.1 什么是对象,什么不是对象53
3.1.2 状态55
3.1.3 行为57
3.1.4 标识符60
3.2 对象之间的关系62
3.2.1 链接62
3.2.2 聚合64
3.3 类的本质65
3.3.1 什么是类,什么不是类65
3.3.2 接口和实现66
3.3.3 类的生命周期68
3.4 类之间的关系68
3.4.1 关联69
3.4.2 继承70
3.4.3 聚合78
3.4.4 依赖关系79
3.5 类与对象的互动79
3.5.1 类与对象的关系79
3.5.2 类与对象在分析和设计中的角色79 3.6 创建高品质的类与对象80
3.6.1 评判一种抽象的品质80
3.6.2 选择操作81
3.6.3 选择关系82
3.6.4 选择实现83
3.7 小结84
第4章分类85
4.1 正确分类的重要性85
4.1.1 分类的困难86
4.1.2 分类的增量和迭代本质87
4.2 确定类和对象88
4.2.1 经典方法和现代方法89
4.2.2 面向对象分析92
4.3 关键抽象与机制97
4.3.1 确定关键抽象97
4.3.2 识别机制99
4.4 小结101
第2部分方法
第5章表示法104
5.1 统一建模语言104
5.1.1 简单历史回顾104
5.1.2 模型与多重视图105
5.1.3 图分类105
5.1.4 在实践中使用图107
5.1.5 概念模型、逻辑模型和物理模型108
5.1.6 工具的角色108
5.1.7 面向对象开发的产品108
5.1.8 规模上的伸缩109
5.1.9 UML的语法和语义109
5.1.10 UML 2.0信息资源110
5.2 包图110
5.2.1 基本概念:包表示法110
5.2.2 基本概念:元素的可见性111
5.2.3 基本概念:依赖关系111
5.2.4 基本概念:包图113
5.2.5 高级概念:导入和访问114
5.3 组件图117
5.3.1 基本概念:组件表示法117
5.3.2 基本概念:组件图118
5.3.3 基本概念:组件接口119
5.3.4 基本概念:组件实现121
5.3.5 高级概念:组件的内部结构122
5.4 部署图123
5.4.1 基本概念:工件表示法123
5.4.2 基本概念:节点表示法124
5.4.3 基本概念:部署图124
5.5 用例图126
5.5.1 基本概念:执行者126
5.5.2 基本概念:用例127
5.5.3 基本概念:用例图127
5.5.4 高级概念:[[include]]和[[extend]]关系129 5.5.5 高级概念:泛化133
5.6 活动图133
5.6.1 基本概念:动作134
5.6.2 基本概念:开始和停止134
5.6.3 基本概念:判断节点和合并节点134
5.6.4 基本概念:分区135
5.6.5 高级概念:分叉、结合和并发135
5.6.6 高级概念:对象流138
5.6.7 高级概念:其他元素138
5.7 类图138
5.7.1 基本概念:类表示法138
5.7.2 基本概念:类关系140
5.7.3 高级概念:模板(参数化)类142
5.7.4 高级概念:可见性143
5.7.5 高级概念:关联端名称和限定符144
5.7.6 高级概念:约束145
5.7.7 高级概念:关联类和注解148
5.8 序列图149
5.8.1 基本概念:对象与交互149
5.8.2 基本概念:生命线与消息149
5.8.3 高级概念:销毁事件151
5.8.4 高级概念:执行说明151
5.8.5 高级概念:交互使用153
5.8.6 高级概念:控制结构153
5.9 交互概述图155
5.9.1 基本概念:框155
5.9.2 基本概念:控制流元素155
5.9.3 基本概念:交互图元素156
5.10 组合结构图157
5.10.1 基本概念:组合结构的部分157
5.10.2 基本概念:组合结构的部分与接口157
5.10.3 基本概念:组合结构连接器158
5.10.4 高级概念:协作.. 158
5.11 状态机图159
5.11.1 基本概念:初始状态、最终状态和简单状态160
5.11.2 基本概念:转换与事件160
5.11.3 高级概念:状态活动——入口活动、执行活动和出口活动162 5.11.4 高级概念:控制转换162
5.11.5 高级概念:复合状态与嵌套状态163
5.11.6 高级概念:并发与控制165
5.11.7 高级概念:子状态机状态168
5.11.8 高级概念:其他状态机图元素169
5.12 时间图170
5.12.1 基本概念:更多相同之处170
5.12.2 基本概念:布局170
5.12.3 基本概念:事件171
5.12.4 基本概念:约束171
5.12.5 高级概念:另一种表示形式172
5.12.6 高级概念:事件与消息172
5.13 对象图173
5.13.1 基本概念:对象173
5.13.2 基本概念:对象关系173
5.13.3 高级概念:端点名称和限定符174 5.14 通信图175
5.14.1 基本概念:对象、链接和消息175 5.14.2 基本概念:顺序表达式176
5.14.3 高级概念:消息与同步177
5.14.4 高级概念:迭代子句和警戒条件178 5.15 小结179
第6章过程181
6.1 首要原则181
6.1.1 成功项目的特征181
6.1.2 追求理性的开发过程184
6.2 宏观过程:软件开发生命周期186
6.2.1 概述187
6.2.2 宏观过程的内容维:科目188
6.2.3 宏观过程的时间维:里程碑和阶段190 6.2.4 宏观过程的时间维:迭代195
6.2.5 发行计划196
6.3 微观过程:分析与设计过程198
6.3.1 概述198
6.3.2 抽象层次199
6.3.3 活动200
6.3.4 产品201
6.3.5 微观过程与抽象层次203
6.3.6 识别元素205
6.3.7 确定元素间的协作208
6.3.8 确定元素间的关系211
6.3.9 详细确定元素的语义213
6.4 小结216
第7章实战217
7.1 管理和计划217
7.1.1 风险管理218
7.1.2 任务计划218
7.1.3 开发评审219
7.2 人员配备220
7.2.1 资源配置220
7.2.2 开发团队角色221
7.3 发布版本管理223
7.3.1 配置管理和版本控制223
7.3.2 集成224
7.3.3 测试224
7.4 复用225
7.4.1 复用的元素225
7.4.2 建立复用制度225
7.5 质量保证和度量226
7.5.1 软件质量226
7.5.2 面向对象度量226
7.6 文档化229
7.6.1 开发遗产229
7.6.2 文档化的内容229
7.7 工具230
7.7.1 工具种类230
7.7.2 组织上的意义231
7.8 特殊主题231
7.8.1 领域特定问题231
7.8.2 采纳面向对象技术232
7.9 面向对象开发的好处和风险233
7.9.1 面向对象开发的好处233
7.9.2 面向对象开发的风险233
7.10 小结235
第3部分应用
第8章系统架构——基于卫星的导航238 8.1 先启238
8.1.1 卫星导航系统的需求239
8.1.2 定义问题的边界240
8.1.3 决定使命用例243
8.1.4 决定系统用例245
8.2 精化248
8.2.1 开发一个好的架构248
8.2.2 定义架构开发活动248
8.2.3 验证所建议的系统架构249
8.2.4 分配非功能需求和阐明接口255 8.2.5 规定系统架构及其部署257
8.2.6 分解系统架构259
8.3 构造265
8.4 后移交265
8.4.1 添加新的功能265
8.4.2 改变目标硬件266
第9章控制系统——交通管理267
9.1 先启268
9.1.1 列车交通管理系统的需求268
9.1.2 决定系统用例270
9.2 精化273
9.2.1 分析系统功能274
9.2.2 定义TTMS架构277
9.2.3 从系统工程到硬件和软件工程279 9.2.4 关键抽象和机制281
9.3 构造282
9.3.1 消息传送283
9.3.2 列车日程计划285
9.3.3 显示信息288
9.3.4 传感器数据采集289
9.3.5 发布版本管理289
9.3.6 系统架构290
9.3.7 子系统规格291
9.4 后移交293
第10章人工智能——密码分析294 10.1 先启295
10.1.1 密码分析需求295
10.1.2 定义问题的边界296
10.1.3 黑板框架的架构297
10.1.4 知识源的分析299
10.2 精化299
10.2.1 黑板对象300
10.2.2 依赖和认定301
10.3 构造303
10.3.1 设计黑板对象304
10.3.2 设计知识源308
10.3.3 设计控制器313
10.3.4 集成黑板框架314
10.3.5 添加新的知识源317
10.4 后移交318
10.4.1 系统增强318
10.4.2 改变需求320
第11章数据采集——气象监测站321 11.1 先启321
11.1.1 气象监测站需求321
11.1.2 定义问题的边界322
11.1.3 场景330
11.2 精化331
11.2.1 气象监测系统用例331
11.2.2 架构框架338
11.3 构造340
11.3.1 帧机制340
11.3.2 发布计划343
11.3.3 传感器机制344
11.3.4 显示机制346
11.3.5 用户界面机制346
11.4 后移交349
第12章Web应用——休假跟踪系统350 12.1 先启350
12.1.1 需求350
12.1.2 用例模型352
12.2 精化353
12.2.1 部署视图354
12.2.2 逻辑视图355
12.2.3 进程视图357
12.2.4 实现视图359
12.2.5 用例视图359
12.3 构造362
12.3.1 用户体验模型362
12.3.2 分析和设计模型364
12.3.3 实体372
12.3.4 控制器379
12.3.5 Web页面和用户界面380
12.4 移交和后移交384
附录A 面向对象编程语言386
A.1 语言进化386
A.2 Smalltalk 389
A.2.1 概述390
A.2.2 例子390
A.2.3 参考文献393
A.3 C++ 393
A.3.1 概述394
A.3.2 例子394
A.3.3 参考文献397
A.4 Java 397
A.4.1 概述398
A.4.2 例子399
A.4.3 参考文献402
附录B 进一步阅读403
注解409
术语表430
分类书目 (438)。