书籍详情
面向对象分析与设计(高等学校21世纪计算机教材)
作者:李代平编著
出版社:冶金工业出版社
出版时间:2005-07-01
ISBN:9787502437756
定价:¥39.00
购买这本书可以去
内容简介
本书是论述面向对象技术的专著。全书共分十九章,系统地介绍了面向对象的基本理论和方法,主要对面向对象分析与设计的基本概念、主要步骤、典型特点、关键问题等进行了较为详细的介绍和阐述,同时还介绍了面向对象的表示法、面向对象的开发过程、面向对象分析与设计在各个领域的应用。本书内容详实、立论严谨、实例丰富、图文并茂,适合作为高等学校相关专业的教材及工程技术人员的参考用书。
作者简介
暂缺《面向对象分析与设计(高等学校21世纪计算机教材)》作者简介
目录
第1章 面向对象方法概论 1
1.1 面向对象简介 1
1.1.1 面向对象的思维 1
1.1.2 什么是面向对象 2
1.1.3 面向对象方法的历史及现状 4
1.1.4 当前的研究及实践领域 5
1.2 面向对象方法的形成 6
1.2.1 对事物的认识和描述 6
1.2.2 对象的特性 7
1.2.3 软件工程学的作用 8
1.3 面向对象开发的概念 11
1.3.1 面向对象方法学 11
1.3.2 三种模型 12
1.3.3 功能方法学上的差异 12
1.4 面向对象技术要点 12
1.4.1 抽象 13
1.4.2 封装 13
1.4.3 数据和行为的联合 13
1.4.4 共享 14
1.4.5 面向对象开发重点 14
1.4.6 协同作用 14
1.5 面向对象开发的可用性例证 14
1.6 面向对象方法的要点和主要优点 15
小结 16
综合练习一 16
一、填空题 16
二、选择题 16
三、简答题 17
第2章 面向对象方法论 18
2.1 面向对象的相关概念 18
2.1.1 对象 18
2.1.2 类 19
2.1.3 对象图 20
2.1.4 属性 20
2.1.5 操作和方法 21
2.1.6 封装 22
2.1.7 继承 23
2.1.8 多重继承 24
2.1.9 消息 26
2.1.10 结构与连接 27
2.1.11 多态性 28
2.1.12 永久对象 28
2.1.13 主动对象 29
2.1.14 对象类的表示方法 302.2 链接与关联 31
2.2.1 一般概念 31
2.2.2 重数 31
2.2.3 关联的重要性 32
2.2.4 三元关联 32
2.2.5 关联的候选关键字 33
2.2.6 异或关联 33
2.2.7 资格关联 33
2.2.8 链接属性 34
2.2.9 用关联模型化为类 34
2.2.10 角色名 35
2.2.11 排序 35
2.2.12 资格符 362.3 聚合 362.3.1 聚合与关联 36
2.3.2 聚合和概括 37
2.3.3 递归聚合 38
2.3.4 操作的传播 38
2.3.5 物理聚合与分类聚合 39
2.3.6 物理聚合的语义扩展 39
2.3.7 分类聚合的语义扩展 402.4 概括 402.4.1 一般概念 40
2.4.2 概括的使用 41
2.4.3 重写特征 41
2.4.4 抽象类和具体类 41
2.4.5 概括与其他对象建模结构 42
2.5 构造分组 42
2.5.1 模块 42
2.5.2 表 43
小结 43
综合练习二 43
一、填空题 43
二、选择题 43
三、简答题 44
第3章 面向对象建模 45
3.1 建模 45
3.1.1 使用模型的目的 45
3.1.2 抽象 45
3.2 统一建模语言 46
3.2.1 模型的建立 47
3.2.2 面向对象的理念 48
3.2.3 系统观点 51
3.2.4 规划分析 51
3.2.5 UML的基本图标 51
3.2.6 软件开发的传统与现代 58
3.2.7 UML的基本元素 60
3.2.8 UML的语法规则 60
3.2.9 UML的词别 60
3.3 对象模型技术 61
3.3.1 对象模型 61
3.3.2 动态模型 61
3.3.3 功能模型 62
3.3.4 三种模型的联系 62
3.4 其他方法 62
3.4.1 Rumbaugh面向对象方法论 62
3.4.2 Shlaer/Mellor面向对象方法论 66
3.4.3 Jacobson面向对象方法论 68
3.4.4 Booch面向对象方法论 70
3.4.5 Yourdon面向对象方法论 71
3.4.6 主流面向对象模型 74
3.4.7 Martin/Odell面向对象方法论 79
小结 80
综合练习三 80
一、填空题 80
二、选择题 80
三、简答题 81
第4章 面向对象体系结构 82
4.1 体系结构表示法 82
4.2 流程处理系统 83
4.3 客户机/服务器系统 83
4.3.1 客户机/服务器系统简介 83
4.3.2 基于MVC的网上应用系统 84
4.4 层状系统 85
4.4.1 层状系统简介 85
4.4.2 以服务对象分层 85
4.5 三级和多级系统 86
4.5.1 三级系统 86
4.5.2 多级系统 86
4.6 代理 86
4.7 联邦体系结构和聚合体系结构 87
4.7.1 联邦体系结构 87
4.7.2 聚合体系结构 87
4.8 体系结构的样式 88
4.9 案例:自动柜员机系统软件 89
4.10 案例:租借公司 90
4.11 案例:共用讨论板 91
4.11.1 组的动态组合变更过程 91
4.11.2 界面层与控制层 92
4.11.3 同步及相关问题 94
4.12 案例:EJB的架构 94
4.12.1 静态结构 94
4.12.2 资源管理策略 97
4.12.3 实体豆的动态行为 97
小结 99
综合练习四 99
一、填空题 99
二、选择题 99
三、简答题 99
第5章 动态模型 100
5.1 事件和状态 100
5.1.1 事件 100
5.1.2 脚本和事件轨迹 101
5.1.3 状态 102
5.1.4 状态图 103
5.1.5 条件 104
5.2 操作 105
5.2.1 控制操作 105
5.2.2 操作的状态图小结 105
5.3 嵌套状态图 106
5.3.1 平状态图问题 106
5.3.2 嵌套状态图 106
5.3.3 状态概括 107
5.3.4 事件概括 108
5.4 并发性 109
5.4.1 聚合并发性 109
5.4.2 对象内部并发性 109
5.4.3 进入和退出动作 110
5.4.4 内部动作 111
5.4.5 自动变迁 111
5.4.6 发送事件 111
5.4.7 并发活动的同步 112
5.5 动态模型的实例 113
5.6 对象模型和动态模型的关系 115
5.7 实践技巧 116
小结 116
综合练习五 116
一、填空题 116
二、选择题 117
三、简答题 117
第6章 功能模型 118
6.1 功能模型 118
6.2 数据流图 119
6.2.1 处理 119
6.2.2 数据流 120
6.2.3 施动者 120
6.2.4 数据存储 121
6.2.5 嵌套数据流图 121
6.2.6 控制流 122
6.3 指定的操作 122
6.4 约束 123
6.5 数据库应用中的功能模型 124
6.5.1 伪码 124
6.5.2 ONN的伪代码 125
6.5.3 ONN的构造 126
6.5.4 组合ONN构造 130
6.5.5 添加ONN特性 131
6.5.6 其他范型 132
6.5.7 实践技巧 134
6.6 功能模型的实例(飞行模拟机
装置) 135
6.7 功能模型与对象模型和
动态模型的关系 137
小结 138
综合练习六 138
一、填空题 138
二、选择题 139
三、简答题 139
第7章 发现对象、建立对象类 140
7.1 对象、主动对象以及它们的类 140
7.2 表示法 141
7.3 研究问题域和用户需求 142
7.3.1 研究用户需求,明确系统责任 142
7.3.2 研究问题域 143
7.3.3 确定系统边界 144
7.4 发现对象 144
7.4.1 发现对象技术概要 144
7.4.2 正确地运用抽象原则 145
7.4.3 策略与启发 145
7.4.4 审查和筛选 147
7.4.5 识别主动对象 149
7.5 对象分类,建立类图的对象层 149
7.5.1 异常情况的检查和调整 149
7.5.2 类的命名 150
7.5.3 建立类图的对象层 150
7.6 电梯例子 151
7.6.1 功能需求 151
7.6.2 发现对象 151
7.6.3 对象层表示 152
小结 152
综合练习七 152
一、填空题 152
二、选择题 153
三、简答题 153
第8章 定义属性与服务 154
8.1 对象的属性和服务 154
8.2 表示法 155
8.3 定义属性 155
8.3.1 策略与启发 155
8.3.2 审查与筛选 156
8.3.3 推迟到OOD考虑的问题 157
8.3.4 属性的命名和定位 158
8.3.5 属性的详细说明 158
8.4 定义服务 158
8.4.1 对象的状态与状态转换图 158
8.4.2 行为分类 160
8.4.3 发现服务的策略与启发 161
8.4.4 审查与调整 161
8.4.5 认识对象的主动行为 162
8.4.6 服务的命名和定位 162
8.4.7 服务的详细说明 162
8.5 建立类图的特征层 163
8.6 电梯例子 163
8.6.1 电梯系统的属性描述 163
8.6.2 电梯系统的服务定义 165
8.6.3 电梯系统的特征层 170
小结 171
综合练习八 171
一、填空题 171
二、选择题 171
三、简答题 171
第9章 定义结构与连接 172
9.1 整体-部分结构 172
9.1.1 整体-部分结构及其用途 172
9.1.2 表示法 174
9.1.3 如何发现整体-部分结构 175
9.1.4 审查与筛选 175
9.1.5 简化对象的定义 176
9.1.6 支持软件复用 176
9.1.7 整体-部分结构的进一步运用 177
9.1.8 调整对象层和属性层 1799.2 一般-特殊结构 179
9.2.1 一般-特殊结构及其用途 179
9.2.2 表示法 180
9.2.3 如何发现一般-特殊结构 180
9.2.4 审查与调整 181
9.2.5 多继承及多态性问题 182
9.2.6 一般-特殊结构的简化 184
9.2.7 调整对象层和特征层 1859.3 实例连接 1859.3.1 简单的实例连接 185
9.3.2 复杂的实例连接及其表示 186
9.3.3 三元关联问题 188
9.3.4 如何建立实例连接 189
9.3.5 对象层、特征层的增补及
实例连接说明 1909.4 消息连接 1909.4.1 消息的定义 190
9.4.2 顺序系统中的消息 190
9.4.3 并发系统中的消息 191
9.4.4 消息对OOA的意义 194
9.4.5 OOA对消息的表示
–––消息连接 1949.5 如何建立消息连接 1969.5.1 建立控制线程内部的消息连接 1969.5.2 建立控制线程之间的消息连接 1969.5.3 对象分布问题及其消息的影响 1979.6 消息的详细说明 1989.7 电梯例子 1989.7.1 一般-特殊关系 1989.7.2 整体-部分关系 198
9.7.3 连接 199
9.7.4 电梯控制系统的关系层 199
小结 199
综合练习九 200
一、填空题 200
二、选择题 200
三、简答题 200
第10章 面向对象方法的转换 201
10.1 从布什的面向对象升级到UML 201
10.2 对象模块化技术升级到UML 202
10.3 一般性的升级方式 203
10.4 模块化会议 204
小结 206
综合练习十 206
一、填空题 206
二、选择题 206
三、简答题 207
第11章 面向对象设计原则 208
11.1 类型一致性与闭合行为 208
11.1.1 类与类型 208
11.1.2 类型一致性原则 208
11.1.3 闭合行为原则 209
11.2 封装与共生性 210
11.2.1 封装结构 210
11.2.2 共生性 211
11.2.3 面向对象系统中共生性的
滥用 213
11.2.4 共生性的术语 214
11.3 领域、依附集和内聚 214
11.3.1 对象类的领域 214
11.3.2 依附集 216
11.3.3 类的内聚:一个类和
它的特性 218
11.4 继承与多态性的危险性 220
11.4.1 继承的滥用 220
11.4.2 错误的聚集 220
11.4.3 倒置的层次结构 221
11.4.4 混淆类及其实例 221
11.4.5 误用 222
11.4.6 多态性的危险性 22211.5 状态空间和行为 22411.5.1 一个类的状态空间和行为 22411.5.2 子类的状态空间 22511.5.3 子类的行为 225
11.5.4 状态空间的一个约束条件:
类的不变式 225
11.5.5 前置条件和后置条件 226
11.5.6 类接口中支持的状态 227
11.5.7 类接口中支持的行为 228
11.5.8 类接口中操作的聚合 229小结 229综合练习十一 229一、填空题 229二、选择题 229
三、简答题 230
第12章 控制驱动部分的设计 231
12.1 什么是控制驱动部分 23112.2 相关技术问题 231
12.2.1 系统总体方案 231
12.2.2 软件体系结构 232
12.2.3 分布式系统的体系结构风格 233
12.2.4 系统的并发性 23612.3 如何设计控制驱动部分 23912.3.1 选择软件体系结构风格 239
12.3.2 确定系统分布方案 239
12.3.3 识别控制流 243
12.3.4 用主动对象表示控制流 245
12.3.5 把控制驱动部分看作
一个主题 247小结 247综合练习十二 247一、填空题 247
二、选择题 247
三、简答题 248
第13章 设计软件构件 24913.1 构件的构成与表达方式 249
13.2 构件与对象的相似性和区别 250
13.3 构件技术简介 251
13.3.1 构件技术的概念及发展 251
13.3.2 当前的三种构件标准规范 252
13.3.3 三种分布式构件的比较分析 254
13.4 构件的大小与分类 255
13.4.1 构件的大小 255
13.4.2 构件的分类 256
13.5 如何用好构件 256
13.5.1 原则 257
13.5.2 过程 258
13.5.3 Java应用构件平台 259
13.6 构件的优点和缺点 260
13.6.1 构件的优点 260
13.6.2 构件的缺点 260
小结 261
综合练习十三 261
一、填空题 261
二、选择题 262
三、简答题 262第14章 对象设计 26314.1 对象设计综述 263
14.1.1 从分析和系统结构着手 263
14.1.2 对象设计的步骤 264
14.1.3 对象模型工具 264
14.2 组合三种模型 26414.3 设计算法 265
14.3.1 选择算法 265
14.3.2 选择数据结构 267
14.3.3 定义内部类和操作 267
14.3.4 指定操作的职责 26814.4 设计优化 268
14.4.1 添加冗余关联获取有效访问 269
14.4.2 重新安排执行次序以
获得效率 270
14.4.3 保存导出属性避免重复计算 270
14.5 控制实现 271
14.5.1 在程序内进行状态设置 271
14.5.2 状态机器引擎 272
14.5.3 控制作为并发任务 272
14.6 继承的调整 272
14.6.1 重新安排类和操作 272
14.6.2 抽象出公共的行为 273
14.6.3 使用授权共享实现 274
14.7 关联设计 275
14.7.1 分析关联遍历 275
14.7.2 单向关联 275
14.7.3 双向关联 276
14.7.4 链接属性 276
14.8 对象的表示 277
14.9 物理打包 277
14.9.1 信息隐藏 278
14.9.2 实体的相关性 278
14.9.3 构造模块 279
14.10 设计决策文档 279
小结 280
综合练习十四 280
一、填空题 280
二、选择题 280
三、简答题 281
第15章 数据库及其接口设计 282
15.1 数据管理系统及其选择 282
15.2 数据库系统 289
15.2.1 面向对象技术 293
15.2.2 面向对象数据库的应用 295
15.2.3 应用程序设计程序 296
15.2.4 面向对象数据库的最佳化 297
15.3 技术整合 297
15.4 数据接口 298
15.5 对象存储方案和数据接口的
设计策略 300
15.5.1 针对文件系统的设计 300
15.5.2 针对RDBMS的设计 304
15.5.3 使用OODBMS 313
小结 313
综合练习十五 313
一、填空题 313
二、选择题 314
三、简答题 314
第16章 人机交互部分的设计 315
16.1 什么是人机交互部分 315
16.2 人机交互部分的需求分析 315
16.2.1 分析活动者
——与系统交互的人 316
16.2.2 从Use Case分析人机交互 316
16.2.3 分析处理异常事件的
人机交互 319
16.2.4 命令的组织 320
16.2.5 输出信息的组织结构 323
16.2.6 总结与讨论 324
16.3 人机界面的设计准则 325
16.4 人机界面(OO)设计 326
16.4.1 界面支持系统 326
16.4.2 界面元素 327
16.4.3 设计过程与策略 328
16.5 可视化编程环境下的
人机界面设计 332
16.5.1 问题的提出 332
16.5.2 设计的必要性 332
16.5.3 基于可视化编程环境的
设计策略 334
小结 336
综合练习十六 337
一、填空题 337
二、选择题 337
三、简答题 337
第17章 面向对象分析与软件复用 338
17.1 软件开发方法 338
17.1.1 结构化方法 338
17.1.2 Jackson方法 338
17.1.3 维也纳开发方法 339
17.1.4 面向对象方法 340
17.2 软件复用 340
17.2.1 软件复用的层次 340
17.2.2 软件复用所遭遇的问题 341
17.3 对象模型化技术 341
17.3.1 OMT的三大模型 341
17.3.2 基本结构技术 343
17.3.3 抽象类技术 343
17.3.4 组件技术 343
17.3.5 设计样板技术 344
17.4 统一建模语言(UML) 344
17.4.1 UML的发展 344
17.4.2 统一建模语言(UML)的
内容 345
17.4.3 统一建模语言(UML)的
主要特点 347
17.4.4 统一建模语言(UML)的
应用领域 347
17.5 面向对象技术的新应用 347
17.5.1 可重用软件组件 348
17.5.2 分布式对象中间件 350
17.5.3 并发面向对象技术 351
17.5.4 基于面向对象技术的
应用软件体系结构 352
17.6 面向对象的分布式开发系统 355
17.6.1 概述 355
17.6.2 分布式系统所应具有的
体系结构 355
17.6.3 分布式系统的关键技术 357
17.6.4 分布式系统对开发流程的
改进 360
小结 361
综合练习十七 361
一、填空题 361
二、选择题 361
三、简答题 361第18章 实时系统 362
18.1 实时系统的简介及其分类 362
18.1.1 实时系统简介 362
18.1.2 实时系统的分类 363
18.2 实时系统的相关概念 363
18.2.1 实时系统的概念 364
18.2.2 前后台系统 364
18.2.3 任务与多任务 364
18.2.4 共享资源与临界区 366
18.2.5 内核 366
18.2.6 调度 368
18.2.7 同步 370
18.2.8 互斥 371
18.2.9 中断 376
18.2.10 使用实时内核的优缺点 380
18.3 实时系统与通用系统的区别 380
18.4 多种实时系统的比较 381
18.4.1 基本特征概述 381
18.4.2 体系结构异同 382
18.4.3 调度策略分析 382
18.4.4 系统开放性对比 383
18.4.5 系统服务比较 384
18.5 实时系统与面向对象 385
小结 386
综合练习十八 386
一、填空题 386
二、选择题 386
三、简答题 386
第19章 模糊面向对象数据模型 387
19.1 模糊集合理论 387
19.1.1 模糊理论简介 387
19.1.2 模糊集合及逻辑 388
19.2 数据系统模型和结构 390
19.2.1 层次模型 391
19.2.2 网状模型 392
19.2.3 关系模型 393
19.3 模糊数据模型 394
19.3.1 模糊网状数据模型 394
19.3.2 模糊层次数据模型 397
19.3.3 模糊实体-联系数据模型 398
19.3.4 模糊关系数据模型 400
19.3.5 面向对象的模糊数据模型 407
19.4 模糊数据库语言 411
19.4.1 语言的模糊模型 411
19.4.2 面向对象的模糊数据库语言 412
小结 414
综合练习十九 414
一、填空题 414
二、选择题 415
三、简答题 415
参考文献 416
1.1 面向对象简介 1
1.1.1 面向对象的思维 1
1.1.2 什么是面向对象 2
1.1.3 面向对象方法的历史及现状 4
1.1.4 当前的研究及实践领域 5
1.2 面向对象方法的形成 6
1.2.1 对事物的认识和描述 6
1.2.2 对象的特性 7
1.2.3 软件工程学的作用 8
1.3 面向对象开发的概念 11
1.3.1 面向对象方法学 11
1.3.2 三种模型 12
1.3.3 功能方法学上的差异 12
1.4 面向对象技术要点 12
1.4.1 抽象 13
1.4.2 封装 13
1.4.3 数据和行为的联合 13
1.4.4 共享 14
1.4.5 面向对象开发重点 14
1.4.6 协同作用 14
1.5 面向对象开发的可用性例证 14
1.6 面向对象方法的要点和主要优点 15
小结 16
综合练习一 16
一、填空题 16
二、选择题 16
三、简答题 17
第2章 面向对象方法论 18
2.1 面向对象的相关概念 18
2.1.1 对象 18
2.1.2 类 19
2.1.3 对象图 20
2.1.4 属性 20
2.1.5 操作和方法 21
2.1.6 封装 22
2.1.7 继承 23
2.1.8 多重继承 24
2.1.9 消息 26
2.1.10 结构与连接 27
2.1.11 多态性 28
2.1.12 永久对象 28
2.1.13 主动对象 29
2.1.14 对象类的表示方法 302.2 链接与关联 31
2.2.1 一般概念 31
2.2.2 重数 31
2.2.3 关联的重要性 32
2.2.4 三元关联 32
2.2.5 关联的候选关键字 33
2.2.6 异或关联 33
2.2.7 资格关联 33
2.2.8 链接属性 34
2.2.9 用关联模型化为类 34
2.2.10 角色名 35
2.2.11 排序 35
2.2.12 资格符 362.3 聚合 362.3.1 聚合与关联 36
2.3.2 聚合和概括 37
2.3.3 递归聚合 38
2.3.4 操作的传播 38
2.3.5 物理聚合与分类聚合 39
2.3.6 物理聚合的语义扩展 39
2.3.7 分类聚合的语义扩展 402.4 概括 402.4.1 一般概念 40
2.4.2 概括的使用 41
2.4.3 重写特征 41
2.4.4 抽象类和具体类 41
2.4.5 概括与其他对象建模结构 42
2.5 构造分组 42
2.5.1 模块 42
2.5.2 表 43
小结 43
综合练习二 43
一、填空题 43
二、选择题 43
三、简答题 44
第3章 面向对象建模 45
3.1 建模 45
3.1.1 使用模型的目的 45
3.1.2 抽象 45
3.2 统一建模语言 46
3.2.1 模型的建立 47
3.2.2 面向对象的理念 48
3.2.3 系统观点 51
3.2.4 规划分析 51
3.2.5 UML的基本图标 51
3.2.6 软件开发的传统与现代 58
3.2.7 UML的基本元素 60
3.2.8 UML的语法规则 60
3.2.9 UML的词别 60
3.3 对象模型技术 61
3.3.1 对象模型 61
3.3.2 动态模型 61
3.3.3 功能模型 62
3.3.4 三种模型的联系 62
3.4 其他方法 62
3.4.1 Rumbaugh面向对象方法论 62
3.4.2 Shlaer/Mellor面向对象方法论 66
3.4.3 Jacobson面向对象方法论 68
3.4.4 Booch面向对象方法论 70
3.4.5 Yourdon面向对象方法论 71
3.4.6 主流面向对象模型 74
3.4.7 Martin/Odell面向对象方法论 79
小结 80
综合练习三 80
一、填空题 80
二、选择题 80
三、简答题 81
第4章 面向对象体系结构 82
4.1 体系结构表示法 82
4.2 流程处理系统 83
4.3 客户机/服务器系统 83
4.3.1 客户机/服务器系统简介 83
4.3.2 基于MVC的网上应用系统 84
4.4 层状系统 85
4.4.1 层状系统简介 85
4.4.2 以服务对象分层 85
4.5 三级和多级系统 86
4.5.1 三级系统 86
4.5.2 多级系统 86
4.6 代理 86
4.7 联邦体系结构和聚合体系结构 87
4.7.1 联邦体系结构 87
4.7.2 聚合体系结构 87
4.8 体系结构的样式 88
4.9 案例:自动柜员机系统软件 89
4.10 案例:租借公司 90
4.11 案例:共用讨论板 91
4.11.1 组的动态组合变更过程 91
4.11.2 界面层与控制层 92
4.11.3 同步及相关问题 94
4.12 案例:EJB的架构 94
4.12.1 静态结构 94
4.12.2 资源管理策略 97
4.12.3 实体豆的动态行为 97
小结 99
综合练习四 99
一、填空题 99
二、选择题 99
三、简答题 99
第5章 动态模型 100
5.1 事件和状态 100
5.1.1 事件 100
5.1.2 脚本和事件轨迹 101
5.1.3 状态 102
5.1.4 状态图 103
5.1.5 条件 104
5.2 操作 105
5.2.1 控制操作 105
5.2.2 操作的状态图小结 105
5.3 嵌套状态图 106
5.3.1 平状态图问题 106
5.3.2 嵌套状态图 106
5.3.3 状态概括 107
5.3.4 事件概括 108
5.4 并发性 109
5.4.1 聚合并发性 109
5.4.2 对象内部并发性 109
5.4.3 进入和退出动作 110
5.4.4 内部动作 111
5.4.5 自动变迁 111
5.4.6 发送事件 111
5.4.7 并发活动的同步 112
5.5 动态模型的实例 113
5.6 对象模型和动态模型的关系 115
5.7 实践技巧 116
小结 116
综合练习五 116
一、填空题 116
二、选择题 117
三、简答题 117
第6章 功能模型 118
6.1 功能模型 118
6.2 数据流图 119
6.2.1 处理 119
6.2.2 数据流 120
6.2.3 施动者 120
6.2.4 数据存储 121
6.2.5 嵌套数据流图 121
6.2.6 控制流 122
6.3 指定的操作 122
6.4 约束 123
6.5 数据库应用中的功能模型 124
6.5.1 伪码 124
6.5.2 ONN的伪代码 125
6.5.3 ONN的构造 126
6.5.4 组合ONN构造 130
6.5.5 添加ONN特性 131
6.5.6 其他范型 132
6.5.7 实践技巧 134
6.6 功能模型的实例(飞行模拟机
装置) 135
6.7 功能模型与对象模型和
动态模型的关系 137
小结 138
综合练习六 138
一、填空题 138
二、选择题 139
三、简答题 139
第7章 发现对象、建立对象类 140
7.1 对象、主动对象以及它们的类 140
7.2 表示法 141
7.3 研究问题域和用户需求 142
7.3.1 研究用户需求,明确系统责任 142
7.3.2 研究问题域 143
7.3.3 确定系统边界 144
7.4 发现对象 144
7.4.1 发现对象技术概要 144
7.4.2 正确地运用抽象原则 145
7.4.3 策略与启发 145
7.4.4 审查和筛选 147
7.4.5 识别主动对象 149
7.5 对象分类,建立类图的对象层 149
7.5.1 异常情况的检查和调整 149
7.5.2 类的命名 150
7.5.3 建立类图的对象层 150
7.6 电梯例子 151
7.6.1 功能需求 151
7.6.2 发现对象 151
7.6.3 对象层表示 152
小结 152
综合练习七 152
一、填空题 152
二、选择题 153
三、简答题 153
第8章 定义属性与服务 154
8.1 对象的属性和服务 154
8.2 表示法 155
8.3 定义属性 155
8.3.1 策略与启发 155
8.3.2 审查与筛选 156
8.3.3 推迟到OOD考虑的问题 157
8.3.4 属性的命名和定位 158
8.3.5 属性的详细说明 158
8.4 定义服务 158
8.4.1 对象的状态与状态转换图 158
8.4.2 行为分类 160
8.4.3 发现服务的策略与启发 161
8.4.4 审查与调整 161
8.4.5 认识对象的主动行为 162
8.4.6 服务的命名和定位 162
8.4.7 服务的详细说明 162
8.5 建立类图的特征层 163
8.6 电梯例子 163
8.6.1 电梯系统的属性描述 163
8.6.2 电梯系统的服务定义 165
8.6.3 电梯系统的特征层 170
小结 171
综合练习八 171
一、填空题 171
二、选择题 171
三、简答题 171
第9章 定义结构与连接 172
9.1 整体-部分结构 172
9.1.1 整体-部分结构及其用途 172
9.1.2 表示法 174
9.1.3 如何发现整体-部分结构 175
9.1.4 审查与筛选 175
9.1.5 简化对象的定义 176
9.1.6 支持软件复用 176
9.1.7 整体-部分结构的进一步运用 177
9.1.8 调整对象层和属性层 1799.2 一般-特殊结构 179
9.2.1 一般-特殊结构及其用途 179
9.2.2 表示法 180
9.2.3 如何发现一般-特殊结构 180
9.2.4 审查与调整 181
9.2.5 多继承及多态性问题 182
9.2.6 一般-特殊结构的简化 184
9.2.7 调整对象层和特征层 1859.3 实例连接 1859.3.1 简单的实例连接 185
9.3.2 复杂的实例连接及其表示 186
9.3.3 三元关联问题 188
9.3.4 如何建立实例连接 189
9.3.5 对象层、特征层的增补及
实例连接说明 1909.4 消息连接 1909.4.1 消息的定义 190
9.4.2 顺序系统中的消息 190
9.4.3 并发系统中的消息 191
9.4.4 消息对OOA的意义 194
9.4.5 OOA对消息的表示
–––消息连接 1949.5 如何建立消息连接 1969.5.1 建立控制线程内部的消息连接 1969.5.2 建立控制线程之间的消息连接 1969.5.3 对象分布问题及其消息的影响 1979.6 消息的详细说明 1989.7 电梯例子 1989.7.1 一般-特殊关系 1989.7.2 整体-部分关系 198
9.7.3 连接 199
9.7.4 电梯控制系统的关系层 199
小结 199
综合练习九 200
一、填空题 200
二、选择题 200
三、简答题 200
第10章 面向对象方法的转换 201
10.1 从布什的面向对象升级到UML 201
10.2 对象模块化技术升级到UML 202
10.3 一般性的升级方式 203
10.4 模块化会议 204
小结 206
综合练习十 206
一、填空题 206
二、选择题 206
三、简答题 207
第11章 面向对象设计原则 208
11.1 类型一致性与闭合行为 208
11.1.1 类与类型 208
11.1.2 类型一致性原则 208
11.1.3 闭合行为原则 209
11.2 封装与共生性 210
11.2.1 封装结构 210
11.2.2 共生性 211
11.2.3 面向对象系统中共生性的
滥用 213
11.2.4 共生性的术语 214
11.3 领域、依附集和内聚 214
11.3.1 对象类的领域 214
11.3.2 依附集 216
11.3.3 类的内聚:一个类和
它的特性 218
11.4 继承与多态性的危险性 220
11.4.1 继承的滥用 220
11.4.2 错误的聚集 220
11.4.3 倒置的层次结构 221
11.4.4 混淆类及其实例 221
11.4.5 误用 222
11.4.6 多态性的危险性 22211.5 状态空间和行为 22411.5.1 一个类的状态空间和行为 22411.5.2 子类的状态空间 22511.5.3 子类的行为 225
11.5.4 状态空间的一个约束条件:
类的不变式 225
11.5.5 前置条件和后置条件 226
11.5.6 类接口中支持的状态 227
11.5.7 类接口中支持的行为 228
11.5.8 类接口中操作的聚合 229小结 229综合练习十一 229一、填空题 229二、选择题 229
三、简答题 230
第12章 控制驱动部分的设计 231
12.1 什么是控制驱动部分 23112.2 相关技术问题 231
12.2.1 系统总体方案 231
12.2.2 软件体系结构 232
12.2.3 分布式系统的体系结构风格 233
12.2.4 系统的并发性 23612.3 如何设计控制驱动部分 23912.3.1 选择软件体系结构风格 239
12.3.2 确定系统分布方案 239
12.3.3 识别控制流 243
12.3.4 用主动对象表示控制流 245
12.3.5 把控制驱动部分看作
一个主题 247小结 247综合练习十二 247一、填空题 247
二、选择题 247
三、简答题 248
第13章 设计软件构件 24913.1 构件的构成与表达方式 249
13.2 构件与对象的相似性和区别 250
13.3 构件技术简介 251
13.3.1 构件技术的概念及发展 251
13.3.2 当前的三种构件标准规范 252
13.3.3 三种分布式构件的比较分析 254
13.4 构件的大小与分类 255
13.4.1 构件的大小 255
13.4.2 构件的分类 256
13.5 如何用好构件 256
13.5.1 原则 257
13.5.2 过程 258
13.5.3 Java应用构件平台 259
13.6 构件的优点和缺点 260
13.6.1 构件的优点 260
13.6.2 构件的缺点 260
小结 261
综合练习十三 261
一、填空题 261
二、选择题 262
三、简答题 262第14章 对象设计 26314.1 对象设计综述 263
14.1.1 从分析和系统结构着手 263
14.1.2 对象设计的步骤 264
14.1.3 对象模型工具 264
14.2 组合三种模型 26414.3 设计算法 265
14.3.1 选择算法 265
14.3.2 选择数据结构 267
14.3.3 定义内部类和操作 267
14.3.4 指定操作的职责 26814.4 设计优化 268
14.4.1 添加冗余关联获取有效访问 269
14.4.2 重新安排执行次序以
获得效率 270
14.4.3 保存导出属性避免重复计算 270
14.5 控制实现 271
14.5.1 在程序内进行状态设置 271
14.5.2 状态机器引擎 272
14.5.3 控制作为并发任务 272
14.6 继承的调整 272
14.6.1 重新安排类和操作 272
14.6.2 抽象出公共的行为 273
14.6.3 使用授权共享实现 274
14.7 关联设计 275
14.7.1 分析关联遍历 275
14.7.2 单向关联 275
14.7.3 双向关联 276
14.7.4 链接属性 276
14.8 对象的表示 277
14.9 物理打包 277
14.9.1 信息隐藏 278
14.9.2 实体的相关性 278
14.9.3 构造模块 279
14.10 设计决策文档 279
小结 280
综合练习十四 280
一、填空题 280
二、选择题 280
三、简答题 281
第15章 数据库及其接口设计 282
15.1 数据管理系统及其选择 282
15.2 数据库系统 289
15.2.1 面向对象技术 293
15.2.2 面向对象数据库的应用 295
15.2.3 应用程序设计程序 296
15.2.4 面向对象数据库的最佳化 297
15.3 技术整合 297
15.4 数据接口 298
15.5 对象存储方案和数据接口的
设计策略 300
15.5.1 针对文件系统的设计 300
15.5.2 针对RDBMS的设计 304
15.5.3 使用OODBMS 313
小结 313
综合练习十五 313
一、填空题 313
二、选择题 314
三、简答题 314
第16章 人机交互部分的设计 315
16.1 什么是人机交互部分 315
16.2 人机交互部分的需求分析 315
16.2.1 分析活动者
——与系统交互的人 316
16.2.2 从Use Case分析人机交互 316
16.2.3 分析处理异常事件的
人机交互 319
16.2.4 命令的组织 320
16.2.5 输出信息的组织结构 323
16.2.6 总结与讨论 324
16.3 人机界面的设计准则 325
16.4 人机界面(OO)设计 326
16.4.1 界面支持系统 326
16.4.2 界面元素 327
16.4.3 设计过程与策略 328
16.5 可视化编程环境下的
人机界面设计 332
16.5.1 问题的提出 332
16.5.2 设计的必要性 332
16.5.3 基于可视化编程环境的
设计策略 334
小结 336
综合练习十六 337
一、填空题 337
二、选择题 337
三、简答题 337
第17章 面向对象分析与软件复用 338
17.1 软件开发方法 338
17.1.1 结构化方法 338
17.1.2 Jackson方法 338
17.1.3 维也纳开发方法 339
17.1.4 面向对象方法 340
17.2 软件复用 340
17.2.1 软件复用的层次 340
17.2.2 软件复用所遭遇的问题 341
17.3 对象模型化技术 341
17.3.1 OMT的三大模型 341
17.3.2 基本结构技术 343
17.3.3 抽象类技术 343
17.3.4 组件技术 343
17.3.5 设计样板技术 344
17.4 统一建模语言(UML) 344
17.4.1 UML的发展 344
17.4.2 统一建模语言(UML)的
内容 345
17.4.3 统一建模语言(UML)的
主要特点 347
17.4.4 统一建模语言(UML)的
应用领域 347
17.5 面向对象技术的新应用 347
17.5.1 可重用软件组件 348
17.5.2 分布式对象中间件 350
17.5.3 并发面向对象技术 351
17.5.4 基于面向对象技术的
应用软件体系结构 352
17.6 面向对象的分布式开发系统 355
17.6.1 概述 355
17.6.2 分布式系统所应具有的
体系结构 355
17.6.3 分布式系统的关键技术 357
17.6.4 分布式系统对开发流程的
改进 360
小结 361
综合练习十七 361
一、填空题 361
二、选择题 361
三、简答题 361第18章 实时系统 362
18.1 实时系统的简介及其分类 362
18.1.1 实时系统简介 362
18.1.2 实时系统的分类 363
18.2 实时系统的相关概念 363
18.2.1 实时系统的概念 364
18.2.2 前后台系统 364
18.2.3 任务与多任务 364
18.2.4 共享资源与临界区 366
18.2.5 内核 366
18.2.6 调度 368
18.2.7 同步 370
18.2.8 互斥 371
18.2.9 中断 376
18.2.10 使用实时内核的优缺点 380
18.3 实时系统与通用系统的区别 380
18.4 多种实时系统的比较 381
18.4.1 基本特征概述 381
18.4.2 体系结构异同 382
18.4.3 调度策略分析 382
18.4.4 系统开放性对比 383
18.4.5 系统服务比较 384
18.5 实时系统与面向对象 385
小结 386
综合练习十八 386
一、填空题 386
二、选择题 386
三、简答题 386
第19章 模糊面向对象数据模型 387
19.1 模糊集合理论 387
19.1.1 模糊理论简介 387
19.1.2 模糊集合及逻辑 388
19.2 数据系统模型和结构 390
19.2.1 层次模型 391
19.2.2 网状模型 392
19.2.3 关系模型 393
19.3 模糊数据模型 394
19.3.1 模糊网状数据模型 394
19.3.2 模糊层次数据模型 397
19.3.3 模糊实体-联系数据模型 398
19.3.4 模糊关系数据模型 400
19.3.5 面向对象的模糊数据模型 407
19.4 模糊数据库语言 411
19.4.1 语言的模糊模型 411
19.4.2 面向对象的模糊数据库语言 412
小结 414
综合练习十九 414
一、填空题 414
二、选择题 415
三、简答题 415
参考文献 416
猜您喜欢