第1章 为什么需要UML建模 1
1.1 软件工程概述 1
1.1.1 软件工程的产生 1
1.1.2 什么是软件工程 2
1.1.3 软件生命周期 3
1.1.4 软件过程 3
1.2 UML概述 8
1.2.1 UML的产生和演变 8
1.2.2 UML的定义和特点 9
1.2.3 UML的应用领域 10
1.3 UML建模 10
1.3.1 为什么软件开发需要UML建模 11
1.3.2 为什么一些开发人员不选择UML建模 11
1.3.3 何时进行UML建模 12
1.3.4 如何进行UML建模 14
思考题 14
实训任务 15
第2章 UML建模工具 16
2.1 RSA与RUP 16
2.1.1 什么是RSA 16
2.1.2 RSA的安装 17
2.1.3 在RSA中应用RUP 18
2.2 RSA使用基础 18
2.2.1 RSA建模透视图 18
2.2.2 RSA操作常用技巧 20
2.3 其他UML建模工具简介 24
2.3.1 IBM Rational Rhapsody 24
2.3.2 PowerDesigner 25
2.3.3 Visio 25
2.3.4 Enterprise Architect 26
2.3.5 TOGETHER 26
2.3.6 一些免费的建模工具 26
思考题 27
实训任务 27
第3章 UML与面向对象开发方法 28
3.1 面向对象概念 28
3.1.1 对象和类 30
3.1.2 消息与方法 32
3.1.3 面向对象的要素 33
3.2 面向对象建模 36
3.2.1 按模型的用途对模型分类 36
3.2.2 按软件开发过程对模型分类 38
3.2.3 IBM RSA面向对象建模的主要步骤 38
3.3 面向对象的分析与设计 39
3.3.1 面向对象分析 40
3.3.2 面向对象设计 40
3.4 面向对象实现 42
3.4.1 C++ 43
3.4.2 Java 43
3.4.3 C#和ASP.NET 44
3.4.4 PHP 44
3.4.5 JavaScript 44
3.4.6 Python 44
3.4.7 Ruby 44
3.4.8 Groovy 44
3.4.9 Go 45
3.5 UML对面向对象开发的支持 45
3.5.1 用例模型 45
3.5.2 分析模型 45
3.5.3 设计模型 46
思考题 46
第4章 业务需求建模阶段的UML图 47
4.1 什么是业务需求建模 47
4.1.1 创建用例模型 48
4.1.2 用例模型的组织结构 50
4.2 业务需求建模阶段的UML图 51
4.2.1 用例图 51
4.2.2 活动图 58
思考题 64
实训任务 64
第5章 系统分析建模阶段的UML图 71
5.1 什么是系统分析建模 71
5.1.1 创建分析模型 72
5.1.2 分析模型的组织结构 73
5.2 系统分析建模阶段的UML图 74
5.2.1 类图——静态结构 74
5.2.2 顺序图(时序图) 88
思考题 97
实训任务 98
第6章 系统设计建模阶段的UML图 110
6.1 什么是系统设计建模 110
6.1.1 创建设计模型 111
6.1.2 设计模型的组织结构 113
6.2 系统设计建模阶段的UML图 113
6.2.1 组合结构图 114
6.2.2 状态图 119
6.2.3 组件图 126
6.2.4 部署图 130
思考题 135
实训任务 135
第7章 RSA对系统实现阶段的支持 137
7.1 从模型到实现 137
7.1.1 从UML模型转换为Java代码 137
7.1.2 从UML模型转换为C++代码 143
7.1.3 从UML模型转换为XML文档 145
7.2 用RSA进行模型驱动开发 146
7.2.1 模型驱动开发概述 146
7.2.2 模型驱动开发方法 151
7.2.3 用RSA进行模型驱动开发 154
7.3 RSA 中用逆向工程获得UML模型 167
7.3.1 用逆向工程从Java代码获得UML模型 167
7.3.2 用逆向工程从C++代码获得UML模型 167
思考题 169
实训任务 169
第8章 RSA数据库建模 170
8.1 数据库建模概述 170
8.1.1 什么是数据库建模 170
8.1.2 物理数据建模的一般步骤 171
8.1.3 在RSA中创建数据库设计项目 172
8.2 RSA数据透视图 175
8.2.1 常用视图与编辑器介绍 176
8.2.2 常用技巧 178
8.3 RSA数据库建模 180
8.3.1 表设计 180
8.3.2 视图设计 183
8.3.3 关系设计 185
8.4 用逆向工程从数据库获得数据库模型 187
8.5 物理数据模型生成DDL 192
思考题 194
实训任务 194
第9章 综合实训 195
9.1 项目概览 195
9.1.1 项目描述 195
9.1.2 创建UML项目 195
9.2 创建PiggyBank用例模型 196
9.2.1 创建用例图 196
9.2.2 创建活动图 197
9.3 创建PiggyBank分析模型 199
9.3.1 新建PiggyBank分析模型 199
9.3.2 识别分析类 200
9.3.3 创建PiggyBank领域模型 200
9.3.4 创建Account Operations用例实现概览图 202
9.3.5 创建Display Balance Participants图 202
9.3.6 创建Display Balance时序图 204
9.3.7 创建Transfer Money Participants图 205
9.3.8 创建Transfer Money时序图 207
9.3.9 创建Cash Check Participants图 211
9.3.10 创建CashCheck时序图 212
9.3.11 PiggyBank在线银行系统的分析类概览图 213
9.4 创建PiggyBank设计模型 215
9.4.1 新建PiggyBank设计模型 216
9.4.2 识别实现设计子包和创建包图 216
9.4.3 创建CityBank集成设计层 217
9.4.4 创建业务设计层包结构 218
9.4.5 创建framework组件层 219
9.4.6 创建EJB组件子包 224
9.4.7 创建EJB delegate组件包 229
9.4.8 对设计模型应用概要文件 231
实训任务 232
参考文献 249