第1章 UML简介 3
1.1 UML的产生和成长 3
第一部分 UML入门 3
1.2 什么是UML 4
1.2.1 UML的架构 5
1.2.2 UML的模型、视图、图与系统架构建模 5
1.3 UML与面向对象的软件分析与设计(OOA D) 6
1.3.1 标准的表示方法 6
1.4.1 在不同类型系统中的应用 7
1.3.2 与软件开发的成功经验集成 7
1.4 UML的应用领域 7
1.4.2 在软件开发的不同阶段中的应用 8
第2章 UML语言概述 9
2.1 视图 9
2.1.1 用例视图 10
2.1.2 逻辑视图 10
2.2.1 用例图 11
2.2 图 11
2.1.4 并发视图 11
2.1.5 展开视图 11
2.1.3 组件视图 11
2.2.2 类图 12
2.2.3 对象图 13
2.2.4 状态图 13
2.2.5 序列图 14
2.2.6 协作图 14
2.2.7 活动图 15
2.2.8 组件图 15
6.4 展开图 15
2.2.9 展开图 16
2.3 模型元素 17
2.4 通用机制 18
2.4.1 修饰 18
2.4.2 笔记 18
2.4.3 规格说明 18
2.5.1 版类 19
2.5 扩展机制 19
2.5.2 加标签值 20
2.5.3 约束 20
2.6 用UML建模 21
2.7 工具的支持 23
2.7.1 绘图支持 24
2.7.2 模型积累 24
2.7.3 导航 25
2.7.4 多用户支持 25
2.7.5 代码生成 25
2.7.6 工程逆转 26
2.7.7 集成 26
2.7.8 模型互换 27
2.7.9 小结 27
第3章 静态建模:用例和用例图 29
3.1 用例图 30
3.2 系统 31
3.3 角色 31
3.3.1 发现角色 32
3.3.2 UML中的角色 32
3.3.3 角色之间的关系 33
3.4 用例 33
3.4.1 什么是用例 33
3.4.2 发现用例 34
3.4.3 UML中的用例 34
3.4.4 用例之间的关系 35
3.5 描述用例 37
3.7 实现用例 39
3.6 测试用例 39
3.8 小结 41
第4章 静态建模:类图和对象图 42
4.1 类和对象 42
4.2 类图 43
4.2.1 定义类 43
4.2.2 名字、属性和操作 44
4.3.1 关联关系 49
4.2.3 基本类型的使用 49
4.3 关系 49
4.3.2 通用化 61
4.3.3 依赖和精化关系 67
4.4 约束和派生规则 69
4.5 接口 71
4.6 包 72
4.7 模板 75
4.8 模型质量 75
4.8.1 什么是好的模型 76
4.8.2 模型是否符合目标 76
4.8.3 模型的协调性 77
4.8.4 模型的复杂性 77
4.9 小结 77
第5章 动态建模 78
5.1 对象之间的交互一消息 79
5.2 状态图 79
5.2.1 状态和转移 80
5.2.2 事件 84
5.2.3 Java实现 86
5.3 状态图之间发送消息 88
5.3.1 子状态 89
5.3.2 历史指示器 90
5.4 序列图 90
5.4.1 一般和实例格式 91
5.4.2 并发对象 92
5.4.3 定义迭代和约束的标签 92
5.4.4 创建和破坏对象 93
5.4.5 递归 94
5.5 协作图 95
5.5.1 消息流 96
5.5.2 链接 96
5.5.3 对象的生命周期 97
5.5.4 使用协作图 98
5.6活动图 99
5.6.1 动作和转移 100
5.6.2 泳道 101
5.6.3 对象 101
5.6.4 信号 102
5.6.5 运用活动图进行商业建模 104
5.7 小结 105
第6章 物理架构视图 107
6.1 逻辑架构 109
6.2 物理架构 109
6.2.1 硬件 110
6.2.2 软件 111
6.3 组件图 112
6.3.1 编译时的组件 113
6.3.2 链接时的组件 114
6.3.3 运行时的组件 114
6.4.1 节点 115
6.4.2 连接 115
6.4.3 组件 116
6.5 复杂节点的建模 117
6.4.4 对象 117
6.6 节点的组件配置 118
6.7 小结 120
第7章 UML的扩展 121
7.1 UML的架构 121
7.2 UML的核心语义 122
7.2.1 核心语义小结 128
7.3 加标签值和性质 128
7.3.1 元素的加标签值 129
7.3.2 类型、实例、操作和属性操作和属性的加标签值 129
7.3.3 模型元素和组件的加标签值 130
7.3.4 自定义加标签值 130
7.4 约束 131
7.4.1 对通用化的约束 131
7.4.2 对关联的约束 132
7.4.4 对消息、链接角色和对象的约束 133
7.4.3 对关联角色的约束 133
7.4.5 自定义约束 134
7.5 版类 134
7.5.1 版类对类型的应用 135
7.5.2 版类对相关性的应用 137
7.5.3 版类对组件的应用 138
7.5.4 版类对笔记的应用 139
7.5.5 版类对原始类型的应用 139
7.5.6 版类对通用化的应用 139
7.5.7 版类对包的应用 140
7.5.8 版类对类的应用 140
7.5.9 版类对操作的应用 142
7.5.10 版类对活动类的应用 143
7.5.11 自定义版类 143
7.6 小结 144
第二部分 UML高级应用 149
第8章 高级动态建模:实时系统 149
8.1 面向对象和实时系统 150
8.2 实时的概念 151
8.2.1 活动的类和对象 152
8.2.2 通信 153
8.2.3 同步 156
8.2.4 在JAVA中实现并发和同步 157
8.3 UML的实时建模手段 158
8.3.1 状态图 161
8.3.2 序列图 162
8.3.3 协作图 164
8.3.4 活动图 165
8.3.5 组件和展开图 165
8.4 如何适应实时系统 166
8.4.1 其它的与实时建模有关的事项 168
8.5 小结 169
第9章 使用UML的过程 170
9.1 定义和理解软件工程的过程概念 170
9.2 评价软件过程成熟度的标准:CMM 171
9.3 RATIONAL的统一过程和软件开发的六大经验 174
9.4 过程的两维空间 176
9.5 时间维:阶段和迭代 176
9.5.1 开始阶段 177
9.5.2 细节阶段 178
9.5.3 构造阶段 179
9.5.4 过渡阶段 179
9.5.5 迭代 180
9.6.1 活动、产品和工人 181
9.6 过程的静态结构 181
9.6.2 工作流程 182
9.7 核心工作流程 183
9.7.1 商业建模 184
9.7.2 需求 184
9.7.3 分析和设计 184
9.7.4 实现 185
9.7.5 测试 185
9.7.8 配置和变化管理 186
9.7.6 展开 186
9.7.7 项目管理 186
9.7.9 环境 187
9.8 如何在过程中使用UML 187
9.8.1 以架构为中心 187
9.8.2 用例驱动 187
9.8.3 UML对迭代开发过程的支持 188
9.8.4 UML的图与工作流程和模型之间的关系 189
9.9 小结 190
第10章 UML与设计模式 191
10.1 什么是模式 191
10.2为什么要使用设计模式 192
10.3 模式的分类 193
10.4 模式的组成元素 195
10.5 模式的质量 196
10.6 一个简单的模式例子:代理模式 197
10.7 UML对模式的支持 198
10.7.1 参数化协作 200
10.7.2 对使用模式的建议 201
10.7.3 模式和用例之间的联系 202
10.8 应用设计模式进行系统设计 203
10.8.1 应用设计模式的主要活动 203
10.8.2 实例化和标识模式的步骤 203
10.9 模式选择举例:评估项目 204
10.9.1 实例化模式:“存储商业对象类型”模式 204
10.9.2 标识模式候选:“过程控制”的例子 205
10.10 模式应用举例:形状编辑器 209
10.10.1 同一个图的多个视图 209
10.10.2 删除、取消删除和重做 213
10.10.3 用户可定义的复杂的复合形状 215
10.10.4 形状选择 220
10.10.5 使编辑器可扩展 223
10.11 小结 225
11.1 理解需求 226
第11章 图书馆信息系统UML实例 226
11.2 分析 227
11.2.1 需求分析 227
11.2.2 领域分析 228
11.3 设计 230
11.3.1 架构设计 232
11.3.2 细节设计 232
11.3.3 用户接口设计 237
11.4 实现 239
11.5 测试和配置 246
11.6 小结 247
第12章 UML在商业建模和商业工程再工程中的应用 248
12.1 商业、商业过程和商业过程再工程 248
12.2 商业工程再工程和商业建模 249
12.2.1 商业建模所描述的对象 249
12.2.2 商业对象 251
12.3 企业的建模和视图 252
12.4.1 商业动态 253
12.4 商业模型 253
12.4.2 商业概念 255
12.4.3 商业对象 257
12.4.4 验证和集成 259
12.5 系统设计模型 260
12.5.1 组件结构 261
12.5.2 用户角度 263
12.5.3 组件动态 264
12.6 实现模型 266
12.5.4 验证和集成 266
12.6.1 实现模型 267
12.6.2 配置 267
12.6.3 双向工程 267
12.6.4 设计映射以及设计的可跟踪性 267
12.7 企业建模工具的一般架构 268
12.7.1 多用户 268
12.7.6 可扩展性 269
12.7.5 方法支持 269
12.7.3 互操作性 269
12.7.2 用户接口 269
12.7.4 组件的架构 269
12.7.7 报告 270
12.8 企业建模工具概览 270
12.8.1 作图工具 270
12.8.2 过程建模和仿真工具 270
12.8.3 传统CASE工具 270
12.8.7 功能总结 271
12.9 方法的基础 271
12.8.5 OO A D 工具 271
12.8.6 三层Client/Server工具 271
12.8.4 数据库建模工具 271
12.10 为什么用UML进行商业建模 273
12.11 把工作流程中的概念映射到UML 274
12.12 设计产品的模式 278
12.13 项目知识库的结构化 280
12.14 小结 283