第一篇 引言 1
第1章 软件产品开发和软件建模 1
1.1 为什么要建模 1
1.2 软件建模及建模的原则 3
1.2.1 模型是对现实世界的简化 3
1.2.2 建模的原则 4
第2章 统一建模语言简介 6
2.1 UML和软件体系结构 6
2.2 UML概述 9
2.2.1 结构模型元素 9
2.2.2 行为模型元素 10
2.2.3 成组模型元素 11
2.2.4 注解元素 11
2.2.5 关系 11
2.2.6 模型图 13
2.2.7 UML建模规则 13
2.2.8 UML共用机制 14
第二篇 行为建模基础 16
第3章 需求分析和用例视图 16
3.1 需求分析 16
3.2 系统作用者 17
3.4 系统作用者和用例之间的联系:关联关系 18
3.3 用例 18
3.5 用例和系统交互者的绘制机制 21
3.6 用例的组织和用例图 23
第4章 交互与交互图 26
4.1 引例——用交互描述软件的动态行为 26
4.2 对象 29
4.3 消息 29
4.4 交互 32
4.5 交互图 32
4.6 序列图 32
4.7 协同图 33
4.8 建模指南 35
第三篇 结构建模基础 36
第5章 结构建模与逻辑视图 36
5.1 从交互图到类图——结构建模 36
5.2 对象的实现 36
5.3 类的表示 40
5.4 拥有和继承 40
5.5 调用和访问 41
5.6 协同图和通路 41
第6章 类 42
6.1 类的定义 42
6.2 属性 43
6.3 操作 44
6.5 类的职责 46
6.4 属性和操作的组织 46
6.6 建模指南 47
第7章 关系 49
7.1 关系的定义 49
7.2 依赖关系 50
7.3 泛化关系 51
7.4 关联关系 52
7.4.1 名字 53
7.4.2 关联关系中的角色 53
7.4.3 角色的重复度 54
7.4.4 聚合 55
7.5 建模指南 56
第8章 共用机制(Common Mechanism) 58
8.1 引言 58
8.2 概念和定义 59
8.2.1 标注(Note) 59
8.2.2 变体 60
8.2.3 标记值 61
8.2.4 约束 62
8.3 标准扩充 63
8.3.1 文档 63
8.3.2 标准变体 63
8.4 建模指南 65
9.2 类图的定义 66
9.1 引言 66
第9章 类图(class diagram) 66
9.3 类图的内容 67
9.4 类图的用途 67
9.4.1 为系统的词汇建模 68
9.4.2 为协同建模 69
9.4.3 为数据库模式建模 69
9.4.4 正向工程和逆向工程 70
9.5 建模指南 71
9.5.1 为协同建模 71
9.5.2 为数据库(常驻对象)建模 73
10.1 引言 74
10.2 可见性 74
第10章 类的详解 74
第四篇 结构建模 74
10.3 作用域 75
10.4 抽象类和多态性 76
10.5 类的重复度 78
10.6 属性的语法 79
10.7 操作的语法 79
10.8 模版类 80
10.9 标准扩充 83
10.10 类和分类符 84
10.11 建模指南 86
11.1 引言:UML关系 88
11.2 依赖关系 88
第11章 关系详解 88
11.2.1 类或对象之间的关系 89
11.2.2 连接类与对象的关系 92
11.2.3 模型包之间的依赖关系 94
11.2.4 用例之间的关系 95
11.2.5 对象之间的关系 95
11.2.6 建模元素和模型之间的关系:回溯依赖 96
11.3 泛化关系 96
11.3.1 泛化关系的约束 97
11.3.2 泛化关系的变体:实现继承 99
11.4.1 可访问性 100
11.4 关联关系 100
11.4.2 关联关系的可见性 101
11.4.3 限定关联(qualification) 102
11.4.4 接口标识 103
11.4.5 复合聚合(composition) 104
11.4.6 关联类 105
11.5 实现关系 106
11.6 建模指南 108
第12章 接口、类型、角色 110
12.1 引言 110
12.2 接口 110
12.2.1 定义 110
12.2.3 接口的名字 111
12.2.2 接口的图形化表示 111
12.2.5 接口的规格说明 112
12.2.4 接口的操作 112
12.3 实现关系 113
12.3.1 定义 113
12.3.2 实现关系的图形化表示 113
12.4 类型和角色 115
12.5 建模指南 117
第13章 模型包 118
13.1 引言 118
13.2 模型包的定义 118
13.3 模型包的名字 119
13.5 可见性 120
13.4 内含元素 120
13.6 导入和输出 121
13.7 泛化关系 123
13.8 标准扩充 124
13.9 建模指南 125
第14章 实例 127
14.1 引言 127
14.2 概念 127
14.2.1 实例和抽象的区别 128
14.2.2 对象的命名 128
14.2.3 对象的操作 129
14.2.5 对象的其他特性 130
14.2.4 对象的状态 130
14.2.6 与对象相关的标准扩充 132
14.3 建模指南 133
14.3.1 为真实存在的对象建模 133
14.3.2 为对象的交互建模 133
第15章 对象图 134
15.1 引言 134
15.2 概念 135
15.2.1 对象图的定义 135
15.2.2 对象留的内容 135
15.3 建模指南 136
15.3.1 为对象的结构建模 136
15.2.3 对象留的用途 136
15.3.2 正向工程和逆向工程 137
第五篇 行为建模 138
第16章 状态机和状态机图 138
16.1 引言 138
16.2 状态机的定义及构成 140
16.3 变迁的构成 141
16.3.1 起始状态和目标状态 141
16.3.2 触发事件 141
16.3.3 触发条件 141
16.3.4 变迁动作(action) 142
16.3.5 触发事件、触发条件、变迁动作的图形化表示 142
16.4.2 入口/出口动作 143
16.4 状态的构成 143
16.4.1 名字 143
16.4.3 内部变迁 144
16.4.4 延迟事件 145
16.4.5 状态活动 145
16.5 子状态 145
16.5.1 串行子状态 146
16.5.2 历史状态 147
16.5.3 并行子状态 149
16.6 状态机图 150
16.6.1 状态机图的定义和特点 150
16.6.2 状态机图的正向工程 151
17.2 活动图 155
第17章 活动图 155
17.1 引言 155
17.3 活动图的内容 156
17.3.1 动作状态 157
17.3.2 活动状态 157
17.3.3 无触发变迁 157
17.4 分支 158
17.5 循环 159
17.6 分解和汇合 160
17.7 泳道 161
17.8 对象流 163
17.9 活动图的作用 163