面向对象的分析与设计
2013年清华大学出版社出版的图书
《面向对象的分析与设计》是2013年1月清华大学出版社出版的图书,作者是邵维忠、杨芙清。
内容简介
本书是一本全面论述面向对象分析与设计方法的专著。全书分为3部分。第一部分为基础篇,论述面向对象方法的基本思想和主要概念,对不同的分析与设计方法进行综述,对统一建模语言(UML)和本书提出的方法做概要介绍。
第二部分为分析篇,详细介绍面向对象分析的全过程,围绕面向对象建模中的需求模型(用况图)、基本模型(类图)、辅助模型(包图、顺序图、活动图以及其他各种UML模型图)和模型规约,对面向对象的分析进行深入讨论,给出详细的过程指导和工程策略,并对相关的UML内容做较详细的介绍。第三部分为设计篇,介绍如何在面向对象分析模型基础上,针对具体的实现条件进行面向对象的系统设计,包括问题域部分、人机交互部分、控制驱动部分和数据接口部分4个主要部分的设计,最后介绍如何进行构件化与系统部署。
本书可供计算机软件领域的研究人员和工程技术人员,计算机软件专业的教师、研究生和高年级本科生阅读参考。
图书目录
第一部分 基 础 篇
第1章 面向对象方法概论31.1 什么是面向对象3
1.2 从认识论看面向对象方法的形成5
1.2.1 软件开发--对事物的认识和描述5
1.2.2 语言的鸿沟5
1.2.3 编程语言的发展使鸿沟变窄5
1.2.4 软件工程学的作用8
1.2.5 面向对象是软件方法学的返璞归真12
1.3 面向对象方法的基本概念12
1.3.1 对象13
1.3.2 类14
1.3.3 封装16
1.3.4 继承17
1.3.5 聚合18
1.3.6 关联20
1.3.7 消息21
1.3.8 多态性22
1.3.9 其他22
1.3.10 术语对照24
1.4 面向对象方法的历史及现状26
1.4.1 历史26
1.4.2 发展到软件生存周期全过程27
1.4.3 渗透到计算机软件的各个领域30
第2章 不同的分析与设计方法33
2.1 功能分解法33
2.2 结构化方法34
2.3 信息建模法35目录面向对象的分析与设计 2.4 面向对象方法36
2.4.1 什么是OOA36
2.4.2 什么是OOD37
2.4.3 面向对象方法的主要优点38
2.4.4 几种典型的面向对象方法41
2.4.4.1 Booch方法43
2.4.4.2 Coad/Yourdon方法45
2.4.4.3 Jacobson方法48
2.4.4.4 Rumbaugh方法52
第3章 统一建模语言UML简介56
3.1 UML的背景与发展历史56
3.2 UML1概况58
3.2.1 UML1规范的主要组成部分58
3.2.2 语言体系结构和定义方式59
3.2.3 UML1的各种图和扩展机制62
3.3 UML2概况66
3.3.1 从UML1到UML266
3.3.2 UML2的4个规范67
3.3.2.1 UML基础结构67
3.3.2.2 UML上层结构68
3.3.2.3 对象约束语言69
3.3.2.4 UML图交换70
3.3.3 UML2的各种图70
第4章 本书的OOA&D方法概貌74
4.1 引言74
4.2 主要概念74
4.2.1 主要模型元素75
4.2.2 面向对象建模的主要原则76
4.3 模型及其规约80
4.3.1 基本模型--类图80
4.3.2 需求模型--用况图81
4.3.3 辅助模型--其他各种图82
4.3.4 模型规约82
4.3.5 OOA模型框架OOA模型框架83
4.3.6 OOD模型框架OOD模型框架83
4.4 建模过程85
4.4.1 OOA过程85
4.4.2 OOD过程87
4.5 OOA与OOD的关系88
4.5.1 一致的概念与表示法88
4.5.2 不同的目标、内容和抽象层次89
4.5.3 在软件生存周期中的位置90
4.5.4 两种不同的分工观点90
4.5.5 从模型驱动的体系结构看OOA与OOD的关系92
第二部分 分 析 篇
第5章 建立需求模型--用况图975.1 需求分析和系统分析97
5.2 基于用况的需求分析基本思路98
5.3 系统边界与参与者98
5.3.1 系统边界98
5.3.2 参与者99
5.4 用况101
5.4.1 什么是用况101
5.4.2 用况的内容与格式103
5.4.3 如何定义用况104
5.5 用况图105
5.5.1 模型元素及表示法105
5.5.2 几个值得商榷的问题107
5.6 开发过程与建议110
第6章 发现对象、定义对象类113
6.1 对象和类的概念及其运用113
6.1.1 概念113
6.1.2 类的语义114
6.1.3 在类的抽象层次建模115
6.1.4 如何运用对象和类的概念117
6.2 表示法118
6.3 发现对象118
6.3.1 研究问题域118
6.3.2 正确地运用抽象原则119
6.3.3 策略与启发120
6.3.4 审查与筛选122
6.4 对象分类124
6.4.1 将对象抽象为类124
6.4.2 审查与调整124
6.4.3 类的命名125
第7章 定义对象的属性和操作127
7.1 属性和操作127
7.2 表示法128
7.3 定义属性129
7.3.1 策略与启发129
7.3.2 审查与筛选130
7.3.3 推迟到OOD考虑的问题131
7.3.4 属性的命名和定位131
7.4 定义操作132
7.4.1 行为分类132
7.4.2 策略与启发133
7.4.3 审查与筛选134
7.4.4 认识对象的主动行为134
7.4.5 描述操作流程134
7.4.6 操作的命名和定位135
7.5 接口的概念及其用途136
第8章 建立对象间的关系140
8.1 一般-特殊结构140
8.1.1 相关概念140
8.1.2 表示法142
8.1.3 如何发现一般-特殊结构143
8.1.4 审查与筛选145
8.1.5 一般-特殊结构的简化147
8.1.6 多继承及多态性问题150
8.2 整体-部分结构152
8.2.1 相关概念152
8.2.2 表示法153
8.2.3 如何发现整体-部分结构155
8.2.4 审查与筛选156
8.2.5 整体-部分结构的高级应用技巧156
8.2.5.1 简化对象的定义156
8.2.5.2 支持软件复用157
8.2.5.3 表示数量不定的组成部分158
8.2.5.4 表示动态变化的对象特征159
8.2.6 两种结构之间的变通162
8.3 关联163
8.3.1 相关概念163
8.3.2 表示法及实现技术165
8.3.2.1 基本表示法165
8.3.2.2 二元关联的实现166
8.3.3 运用简单的关联概念解决复杂的关联问题169
8.3.3.1 带有属性和操作的关联169
8.3.3.2 三元关联和?n?元关联171
8.3.3.3 一个类在关联中多次出现173
8.3.3.4 关联端点的复杂情况174
8.3.4 如何建立关联180
8.4 消息184
8.4.1 什么是消息184
8.4.1.1 顺序系统中的消息184
8.4.1.2 并发系统中的消息185
8.4.1.3 消息对面向对象建模的意义187
8.4.2 消息的表示法187
8.4.3 如何建立消息191
8.5 关于依赖关系193
8.5.1 什么是依赖193
8.5.2 依赖的定义方式和表示法194
8.5.3 依赖关系对面向对象建模的作用197
第9章 建立辅助模型199
9.1 类图与其他模型图之间的关系199
9.2 包图201
9.2.1 包的概念、用途及表示法201
9.2.2 包之间的关系及表示法202
9.2.3 如何建立包图205
9.2.3.1 将模型元素打包205
9.2.3.2 包的命名208
9.2.3.3 组织嵌套的包209
9.2.3.4 减少包的嵌套层次210
9.2.3.5 建立包之间的关系210
9.2.4 用包图控制系统的视野212
9.3 顺序图212
9.3.1 顺序图及其用途212
9.3.2 主要概念及表示法213
9.3.3 顺序图的组织机制与复用217
9.3.4 关于顺序图的若干问题讨论219
9.3.5 如何建立顺序图221
9.4 活动图223
9.4.1 活动图及其用途223
9.4.2 主要概念及表示法224
9.4.3 一个活动图的例子228
9.4.4 关于活动图的若干问题讨论230
9.4.5 如何建立活动图232
9.5 状态机图235
9.5.1 状态机图与状态建模235
9.5.2 主要概念及表示法236
9.5.3 一个状态机图的例子241
9.5.4 如何建立状态机图242
9.6 构件图245
9.6.1 构件图的由来及用途245
9.6.2 主要概念及表示法245
9.6.3 如何建立构件图248
9.7 UML的其他几种模型图249
9.7.1 对象图249
9.7.2 组合结构图250
9.7.3 通信图251
9.7.4 交互概览图252
9.7.5 定时图254
9.7.6 部署图257
第10章 模型规约259
10.1 相关概念及问题讨论259
10.1.1 什么是模型规约259
10.1.2 模型规约是给谁看的260
10.1.3 描述语言的选择260
10.1.4 模型规约的组织方式261
10.1.5 关于对象约束语言OCL262
10.2 类图的规约264
10.2.1 目标与措施264
10.2.2 类规约的内容266
10.2.3 类规约的格式268
10.3 其他模型图的规约270
10.4 模型规约的建立过程270第三部分 设 计 篇
第11章 问题域部分的设计27511.1 什么是问题域部分275
11.2 实现条件对问题域部分的影响276
11.3 设计过程277
11.3.1 设计准备277
11.3.2 设计内容及策略277
11.3.2.1 针对编程语言支持能力的调整277
11.3.2.2 增加一般类,提供共同协议282
11.3.2.3 为实现复用采取的设计策略283
11.3.2.4 提高性能285
11.3.2.5 为实现对象持久存储所做的修改290
11.3.2.6 完善对象的细节290
11.3.2.7 定义对象实例295
11.3.2.8 修改或补充辅助模型及模型规约296
11.3.3 建立与OOA文档的映射297
第12章 人机交互部分的设计300
12.1 什么是人机交互部分300
12.2 人机交互部分的需求分析300
12.2.1 分析参与者--与系统交互的人301
12.2.2 从用况分析人机交互302
12.2.3 分析处理异常事件的人机交互305
12.2.4 命令的组织306
12.2.5 输出信息的组织309
12.3 人机界面的设计准则310
12.4 人机界面的面向对象设计312
12.4.1 选择界面支持系统312
12.4.2 选用实现交互界面元素314
12.4.3 用面向对象概念表示界面元素316
12.5 可视化编程环境下的人机界面设计320
12.5.1 问题的提出320
12.5.2 所见即所得的界面开发320
12.5.3 设计的必要性323
12.5.4 基于可视化编程环境的设计策略324
第13章 控制驱动部分的设计330
13.1 什么是控制驱动部分330
13.2 相关技术问题330
13.2.1 系统总体方案系统总体方案330
13.2.2 软件体系结构331
13.2.3 网络环境中的软件体系结构332
13.2.4 系统的并发性334
13.2.4.1 顺序程序和并发程序334
13.2.4.2 进程和线程335
13.2.4.3 应用系统的并发性337
13.2.4.4 术语讨论340
13.3 如何设计控制驱动部分342
13.3.1 选择软件体系结构风格342
13.3.2 确定系统分布方案342
13.3.3 识别控制流347
13.3.4 用主动类表示控制流349
第14章 数据接口部分的设计351
14.1 什么是数据接口部分351
14.2 数据管理系统及其选择352
14.2.1 文件系统352
14.2.2 数据库管理系统353
14.2.2.1 关系数据库和数据库管理系统354
14.2.2.2 面向对象数据库和数据库管理系统356
14.2.3 数据管理系统的选择356
14.3 对象存储方案和数据接口的设计策略358
14.3.1 针对文件系统的设计358
14.3.1.1 对象在内存空间和文件空间的映像358
14.3.1.2 对象存放策略359
14.3.1.3 设计数据接口部分的类361
14.3.1.4 问题域部分的修改362
14.3.2 针对RDBMS的设计363
14.3.2.1 对象及其对数据库的使用363
14.3.2.2 对象在数据库中的存放策略366
14.3.2.3 数据接口部分类的设计和问题域部分的修改374
14.3.3 针对OODBMS的设计376
第15章 构件化与系统部署378
15.1 面向对象方法与构件技术378
15.2 面向对象模型的构件化379
15.3 系统部署380
15.3.1 软件制品的组织381
15.3.2 系统部署过程与策略382
索引385
参考文献389
第一部分 基 础 篇
第1章 面向对象方法概论31.1 什么是面向对象3
1.2 从认识论看面向对象方法的形成5
1.2.1 软件开发--对事物的认识和描述5
1.2.2 语言的鸿沟5
1.2.3 编程语言的发展使鸿沟变窄5
1.2.4 软件工程学的作用8
1.2.5 面向对象是软件方法学的返璞归真12
1.3 面向对象方法的基本概念12
1.3.1 对象13
1.3.2 类14
1.3.3 封装16
1.3.4 继承17
1.3.5 聚合18
1.3.6 关联20
1.3.7 消息21
1.3.8 多态性22
1.3.9 其他22
1.3.10 术语对照24
1.4 面向对象方法的历史及现状26
1.4.1 历史26
1.4.2 发展到软件生存周期全过程28
1.4.3 渗透到计算机软件的各个领域30
第2章 不同的分析与设计方法33
2.1 功能分解法33
2.2 结构化方法34
2.3 信息建模法35目录面向对象的分析与设计 2.4 面向对象方法36
2.4.1 什么是OOA36
2.4.2 什么是OOD37
2.4.3 面向对象方法的主要优点38
2.4.4 几种典型的面向对象方法41
第3章 统一建模语言(UML)简介56
3.1 UML的背景与发展历史56
3.2 UML1概况58
3.2.1 UML1规范的主要组成部分58
3.2.2 语言体系结构和定义方式59
3.2.3 UML1的各种图和扩展机制62
3.3 UML2概况66
3.3.1 从UML1到UML266
3.3.2 UML2的4个规范66
3.3.3 UML2的各种图70
第4章 本书的OOA&D方法概貌74
4.1 引言74
4.2 主要概念74
4.2.1 主要模型元素75
4.2.2 面向对象建模的主要原则76
4.3 模型及其规约80
4.3.1 基本模型--类图80
4.3.2 需求模型--用况图81
4.3.3 辅助模型--其他各种图82
4.3.4 模型规约82
4.3.5 OOA模型框架OOA模型框架83
4.3.6 OOD模型框架OOD模型框架83
4.4 建模过程85
4.4.1 OOA过程85
4.4.2 OOD过程87
4.5 OOA与OOD的关系88
4.5.1 一致的概念与表示法88
4.5.2 不同的目标、内容和抽象层次89
4.5.3 在软件生存周期中的位置90
4.5.4 两种不同的分工观点90
4.5.5 从模型驱动的体系结构看OOA与OOD的关系92
第二部分 分 析 篇
第5章 建立需求模型--用况图975.1 需求分析和系统分析97
5.2 基于用况的需求分析基本思路98
5.3 系统边界与参与者98
5.3.1 系统边界98
5.3.2 参与者99
5.4 用况101
5.4.1 什么是用况101
5.4.2 用况的内容与格式103
5.4.3 如何定义用况104
5.5 用况图105
5.5.1 模型元素及表示法105
5.5.2 几个值得商榷的问题107
5.6 开发过程与建议110
第6章 发现对象、定义对象类113
6.1 对象和类的概念及其运用113
6.1.1 概念113
6.1.2 类的语义114
6.1.3 在类的抽象层次建模115
6.1.4 如何运用对象和类的概念117
6.2 表示法118
6.3 发现对象118
6.3.1 研究问题域118
6.3.2 正确地运用抽象原则119
6.3.3 策略与启发120
6.3.4 审查与筛选122
6.4 对象分类124
6.4.1 将对象抽象为类124
6.4.2 审查与调整124
6.4.3 类的命名125
第7章 定义对象的属性和操作127
7.1 属性和操作127
7.2 表示法128
7.3 定义属性129
7.3.1 策略与启发129
7.3.2 审查与筛选130
7.3.3 推迟到OOD考虑的问题130
7.3.4 属性的命名和定位131
7.4 定义操作131
7.4.1 行为分类132
7.4.2 策略与启发132
7.4.3 审查与筛选133
7.4.4 认识对象的主动行为134
7.4.5 描述操作流程134
7.4.6 操作的命名和定位135
7.5 接口的概念及其用途136
第8章 建立对象间的关系140
8.1 一般-特殊结构140
8.1.1 相关概念140
8.1.2 表示法142
8.1.3 如何发现一般-特殊结构143
8.1.4 审查与筛选145
8.1.5 一般-特殊结构的简化147
8.1.6 多继承及多态性问题149
8.2 整体-部分结构152
8.2.1 相关概念152
8.2.2 表示法153
8.2.3 如何发现整体-部分结构154
8.2.4 审查与筛选155
8.2.5 整体-部分结构的高级应用技巧156
8.2.6 两种结构之间的变通161
8.3 关联163
8.3.1 相关概念163
8.3.2 表示法及实现技术164
8.3.3 运用简单的关联概念解决复杂的关联问题168
8.3.4 如何建立关联179
8.4 消息183
8.4.1 什么是消息183
8.4.2 消息的表示法187
8.4.3 如何建立消息190
8.5 关于依赖关系192
8.5.1 什么是依赖192
8.5.2 依赖的定义方式和表示法193
8.5.3 依赖关系对面向对象建模的作用197
第9章 建立辅助模型199
9.1 类图与其他模型图之间的关系199
9.2 包图201
9.2.1 包的概念、用途及表示法201
9.2.2 包之间的关系及表示法202
9.2.3 如何建立包图205
9.2.4 用包图控制系统的视野211
9.3 顺序图212
9.3.1 顺序图及其用途212
9.3.2 主要概念及表示法212
9.3.3 顺序图的组织机制与复用217
9.3.4 关于顺序图的若干问题讨论219
9.3.5 如何建立顺序图220
9.4 活动图223
9.4.1 活动图及其用途223
9.4.2 主要概念及表示法224
9.4.3 一个活动图的例子228
9.4.4 关于活动图的若干问题讨论229
9.4.5 如何建立活动图232
9.5 状态机图235
9.5.1 状态机图与状态建模235
9.5.2 主要概念及表示法236
9.5.3 一个状态机图的例子241
9.5.4 如何建立状态机图242
9.6 构件图244
9.6.1 构件图的由来及用途245
9.6.2 主要概念及表示法245
9.6.3 如何建立构件图248
9.7 UML的其他几种模型图249
9.7.1 对象图249
9.7.2 组合结构图250
9.7.3 通信图251
9.7.4 交互概览图252
9.7.5 定时图254
9.7.6 部署图256第10章 模型规约259
10.1 相关概念及问题讨论259
10.1.1 什么是模型规约259
10.1.2 模型规约是给谁看的260
10.1.3 描述语言的选择260
10.1.4 模型规约的组织方式261
10.1.5 关于对象约束语言(OCL)262
10.2 类图的规约264
10.2.1 目标与措施264
10.2.2 类规约的内容266
10.2.3 类规约的格式268
10.3 其他模型图的规约270
10.4 模型规约的建立过程270
第三部分 设 计 篇
第11章 问题域部分的设计27511.1 什么是问题域部分275
11.2 实现条件对问题域部分的影响276
11.3 设计过程277
11.3.1 设计准备277
11.3.2 设计内容及策略277
11.3.3 建立与OOA文档的映射297
第12章 人机交互部分的设计299
12.1 什么是人机交互部分299
12.2 人机交互部分的需求分析299
12.2.1 分析参与者--与系统交互的人300
12.2.2 从用况分析人机交互301
12.2.3 分析处理异常事件的人机交互304
12.2.4 命令的组织305
12.2.5 输出信息的组织308
12.3 人机界面的设计准则309
12.4 人机界面的面向对象设计311
12.4.1 选择界面支持系统311
12.4.2 选用实现交互界面元素313
14.4.3 用面向对象概念表示界面元素315
12.5 可视化编程环境下的人机界面设计319
12.5.1 问题的提出319
12.5.2 所见即所得的界面开发319
12.5.3 设计的必要性322
12.5.4 基于可视化编程环境的设计策略323
第13章 控制驱动部分的设计329
13.1 什么是控制驱动部分329
13.2 相关技术问题329
13.2.1 系统总体方案系统总体方案329
13.2.2 软件体系结构330
13.2.3 网络环境中的软件体系结构331
13.2.4 系统的并发性333
13.3 如何设计控制驱动部分341
13.3.1 选择软件体系结构风格341
13.3.2 确定系统分布方案341
13.3.3 识别控制流346
13.3.4 用主动类表示控制流348
第14章 数据接口部分的设计350
14.1 什么是数据接口部分350
14.2 数据管理系统及其选择351
14.2.1 文件系统351
14.2.2 数据库管理系统352
14.2.3 数据管理系统的选择355
14.3 对象存储方案和数据接口的设计策略357
14.3.1 针对文件系统的设计357
14.3.2 针对RDBMS的设计362
14.3.3 针对OODBMS的设计375
第15章 构件化与系统部署377
15.1 面向对象方法与构件技术377
15.2 面向对象模型的构件化378
15.3 系统部署379
15.3.1 软件制品的组织380
15.3.2 系统部署过程与策略381
索引384
参考文献388
参考资料
最新修订时间:2023-06-27 20:20
目录
概述
内容简介
参考资料