第1章 基础知识 1
1.1 软件开发方法概述 2
1.1.1 软件生命周期法 2
1.1.2 原型法 4
1.1.3 面向对象技术 6
1.1.4 面向对象的软件开发语言与工具 8
1.2 面向对象的系统分析与设计 9
1.2.1 面向对象的主要概念 9
1.2.2 面向对象的系统分析与设计方法 12
1.3 UML概述 16
1.3.1 UML简史 16
1.3.2 UML概貌 16
1.3.3 UML的特点和用途 18
小结 19
习题 20
第2章 面向对象的软件开发过程 21
2.1 RUP 21
2.1.1 项目开发阶段 22
2.1.2 过程成分 22
2.1.3 螺旋上升式开发 23
2.1.4 RUP的产物 24
2.1.5 RUP的特点 25
2.2 项目开端阶段 26
2.3 精化阶段 27
2.3.1 问题领域分析 27
2.3.2 建立系统架构 29
2.3.3 开发风险处理 31
2.3.4 构建规划 32
2.4 系统构建 33
2.5 系统提交 34
2.6 循环节的生命周期活动 34
小结 36
习题 36
第3章 UML 37
3.1 UML语言结构 37
3.2 元模型 40
3.3 符号与图形 45
3.3.1 图形符号 45
3.3.2 语义规则 47
3.4 图与模型组织 47
3.4.1 模型组织 47
3.4.2 图 49
3.4.3 视图 50
3.5 公共机制 50
3.6 扩展机制 51
3.6.1 构造型 51
3.6.2 标记值 53
3.6.3 约束 54
3.7 UML 2.0 55
3.7.1 图的表示 55
3.7.2 图的分类 56
小结 57
习题 57
第4章 Use Case图 58
4.1 概述 58
4.2 活动者 59
4.2.1 系统范围与系统边界 59
4.2.2 活动者 60
4.2.3 活动者的确定 61
4.3 Use Case 62
4.3.1 Use Case概念 62
4.3.2 业务Use Case与系统Use Case 63
4.3.3 Use Case图 64
4.4 Use Case的联系 66
4.4.1 泛化关联 66
4.4.2 使用关联 67
4.4.3 包含关联 67
4.4.4 扩展关联 67
4.5 Use Case图的应用 68
4.5.1 Use Case的确定 68
4.5.2 建立Use Case模型 69
小结 70
习题 70
第5章 对象类图与对象图 72
5.1 对象类图 72
5.1.1 对象类 73
5.1.2 属性 74
5.1.3 操作 75
5.2 对象类的关联 76
5.2.1 对象类的关联 76
5.2.2 自返关联、二元关联与N元关联 78
5.2.3 关联的约束 79
5.3 聚合与组合 79
5.3.1 聚合 79
5.3.2 组合 80
5.4 泛化 81
5.4.1 泛化/特化 81
5.4.2 继承 81
5.4.3 重载与多态性 83
5.5 依赖 83
5.6 对象图 84
5.6.1 对象 84
5.6.2 对象图 85
5.7 接口与端口 86
5.8 对象类的高级概念 87
5.8.1 抽象类 87
5.8.2 参数对象类 88
5.8.3 型与实现对象类 89
5.8.4 导出属性与导出关联 89
5.9 对象类图的应用 90
5.9.1 对象类图的建立 90
5.9.2 模型景象与粒度控制 91
5.9.3 系统的三层结构与对象类的类型 93
5.9.4 边界类的应用 96
5.9.5 例外情况建模 97
小结 99
习题 99
第6章 交互图 101
6.1 顺序图 101
6.1.1 顺序图的组成 102
6.1.2 对象的创建与销毁 105
6.1.3 同步消息与异步消息 106
6.1.4 交互框架 107
6.1.5 分支 108
6.1.6 循环 109
6.1.7 自调用与回调 111
6.2 通信图 113
6.2.1 通信图的组成 114
6.2.2 说明层与实例层 115
6.2.3 对象的创建与销毁 117
6.2.4 同步消息与异步消息 117
6.2.5 多对象 118
6.2.6 自调用与回调 119
6.3 协同 119
6.3.1 概述 119
6.3.2 Use Case与协同 121
6.3.3 参数化协同 121
6.4 计时图 122
6.5 交互图的应用 123
小结 124
习题 125
第7章 状态机图 126
7.1 状态机 126
7.2 状态机图 127
7.3 状态 130
7.3.1 概述 130
7.3.2 组合状态 131
7.3.3 顺序状态 132
7.3.4 历史状态 133
7.4 转移 134
7.4.1 事件 134
7.4.2 条件 137
7.4.3 动作 137
7.4.4 转移的类型 138
7.5 并发状态机图 140
7.5.1 并发子状态 140
7.5.2 同步 141
7.6 状态机图的应用 142
小结 144
习题 144
第8章 活动图 146
8.1 概述 146
8.2 活动图的基本元素 147
8.2.1 动作状态与活动状态 147
8.2.2 动作流 148
8.2.3 泳道 149
8.2.4 对象流 150
8.3 活动分解 151
8.4 并发 152
8.4.1 并发与同步 152
8.4.2 条件线程 152
8.4.3 同步状态 153
8.4.4 动态并发 154
8.5 活动图的应用 154
8.5.1 用途 154
8.5.2 工作流建模 155
8.5.3 UML 2.0中的相关变化 156
8.6 交互概观图 159
小结 160
习题 160
第9章 包图 162
9.1 包 162
9.1.1 包的语义和表示 162
9.1.2 包的嵌套 163
9.1.3 标准构造型 164
9.2 包的联系 165
9.2.1 依赖与输入依赖 165
9.2.2 泛化 166
9.2.3 合并 167
9.3 包图 168
9.4 包图的应用 168
9.4.1 包图的建立 168
9.4.2 系统建模 169
9.4.3 开发跟踪 170
小结 171
习题 171
第10章 物理图与对象约束语言 172
10.1 组件图 172
10.1.1 组件 172
10.1.2 组件的种类 174
10.1.3 组件的联系 174
10.1.4 组件图的应用 176
10.1.5 UML 2.0中的相关变化 179
10.2 复合结构 180
10.3 配置图 181
10.3.1 节点 181
10.3.2 节点的联系 182
10.3.3 配置图的应用 184
10.3.4 UML 2.0中的相关变化 186
10.4 对象约束语言 187
10.4.1 标准型 188
10.4.2 表达式 190
10.4.3 对象性质的约束 191
小结 192
习题 193
第11章 软件开发工具Rational Rose 194
11.1 Rational Rose的主要功能 195
11.1.1 对面向对象模型的支持 195
11.1.2 对螺旋上升式开发过程的支持 195
11.1.3 对往返工程的支持 196
11.1.4 对团队开发的支持 197
11.1.5 对工具的支持 198
11.2 Rational Rose的使用 198
11.2.1 系统主菜单窗口 198
11.2.2 模型与工作方式的组织 200
11.2.3 Use Case视图 201
11.2.4 逻辑视图 203
11.2.5 组件视图 203
11.2.6 配置视图 204
第12章 简易教学管理系统的分析与设计 206
12.1 系统需求 206
12.2 分析问题领域 208
12.2.1 确定系统范围和系统边界 208
12.2.2 定义活动者 208
12.2.3 定义Use Case 208
12.2.4 绘制Use Case图 210
12.2.5 绘制主要交互图 212
12.3 静态结构模型 213
12.3.1 建立对象类图 213
12.3.2 建立数据库模型 217
12.3.3 建立包图 218
12.4 动态行为模型 220
12.4.1 建立顺序图 220
12.4.2 建立协同图 221
12.4.3 建立状态机图 223
12.4.4 建立活动图 225
12.5 物理模型 225
12.5.1 建立组件图 225
12.5.2 建立配置图 226
第13章 数据库分析与设计 228
13.1 数据库设计概述 228
13.1.1 数据库与数据库设计 228
13.1.2 数据模型 229
13.1.3 数据库设计方法与过程 229
13.2 UML用于数据库设计的规范 231
13.2.1 表 231
13.2.2 关键字与索引 232
13.2.3 约束 232
13.2.4 联系 233
13.2.5 视图 234
13.2.6 数据库与数据库模式 235
13.2.7 表空间与节点 236
13.3 关系数据库逻辑模型设计 237
13.3.1 逻辑数据模型设计 237
13.3.2 从类创建表 238
13.3.3 联系的映射 239
13.3.4 触发器与存储过程 245
13.4 关系数据库物理设计 246
小结 249
习题 249
第14章 Web应用系统分析设计 250
14.1 概述 250
14.1.1 Web应用系统的组成 250
14.1.2 Web应用系统的开发 251
14.2 Web应用系统架构 252
14.3 Web页模型元素 254
14.3.1 Web页 254
14.3.2 超链接 255
14.3.3 表单 256
14.3.4 脚本 257
14.3.5 Web页诸元素的协作 257
14.3.6 框架 258
14.4 Web应用系统建模 259
14.4.1 Web页模型元素及其协同的映射与建模 259
14.4.2 组件设计 260
14.5 简易网上超市系统示例 261
小结 265
习题 265
参考文献 266