第1章 面向对象分析与设计引论 1
1.1 软件系统概述 1
1.1.1 软件的概念和特点 1
1.1.2 软件的本质 2
1.1.3 软件工程 3
1.2 面向对象的含义 4
1.2.1 什么是面向对象 4
1.2.2 对象 5
1.2.3 类 5
1.2.4 消息 5
1.2.5 封装 6
1.2.6 继承 6
1.2.7 多态 6
1.3 面向对象的有效性 7
1.3.1 面向过程方法的困难 7
1.3.2 面向对象方法的有效性 7
1.4 面向对象项目开发 8
1.4.1 面向对象建模 8
1.4.2 面向对象编程 9
1.4.3 面向对象编程语言 9
1.4.4 面向对象系统开发过程 10
1.4.5 面向对象分析与面向对象设计 11
1.5 总结 12
习题 13
第2章 统一建模语言UML与建模工具Rational Rose 14
2.1 模型与建模 14
2.1.1 软件开发模型 14
2.1.2 分析模型与设计模型 16
2.2 UML简介 16
2.2.1 什么是UML 16
2.2.2 UML发展历史 17
2.2.3 UML与软件开发 18
2.2.4 UML的模型、视图、图与系统架构建模 19
2.3 UML视图、图与建模元素 20
2.3.1 用例视图 20
2.3.2 逻辑视图 21
2.3.3 构件视图 21
2.3.4 并发视图 21
2.3.5 部署视图 21
2.3.6 UML图 22
2.3.7 UML模型元素 26
2.4 通用机制和扩展机制 27
2.4.1 通用机制 27
2.4.2 扩展机制 28
2.5 UML建模工具概述 29
2.6 Rational Rose安装与基本操作 31
2.6.1 Windows XP系统下Rational Rose安装步骤 31
2.6.2 Windows 7系统安装Rational Rose启动报错处理 36
2.6.3 Rational Rose启动与主界面 37
2.6.4 使用Rational Rose建模 42
2.6.5 Rational Rose全局选项设置 44
2.7 Rational Rose的四种视图模型 45
2.7.1 用例视图 45
2.7.2 逻辑视图 47
2.7.3 构件视图 49
2.7.4 部署视图 50
2.8 Rational Rose双向工程 51
2.8.1 正向工程 51
2.8.2 逆向工程 53
2.8.3 用Rational Rose对VC++进行逆向工程 54
2.9 总结 61
习题 61
第3章 需求分析与用例模型 63
3.1 需求分析面面观 63
3.1.1 需求分析的难点 63
3.1.2 需求分析的要点 64
3.1.3 需求分析建模 65
3.2 用例模型基本概念 66
3.3 用例图组成要素及表示方法 67
3.3.1 参与者 67
3.3.2 用例 68
3.3.3 关系 69
3.4 描述用例 72
3.4.1 事件流 72
3.4.2 描述用例模板 74
3.5 用例图建模及案例分析 75
3.5.1 创建用例图 75
3.5.2 用例图工具箱按钮 75
3.5.3 创建参与者与用例 76
3.5.4 创建关系 77
3.5.5 用例图建模案例 78
3.6 总结 80
习题 80
第4章 系统静态分析与静态模型 82
4.1 类图 82
4.1.1 类图概述 82
4.1.2 类及类的表示 82
4.1.3 接口 86
4.1.4 类之间的关系 87
4.2 关联关系 87
4.2.1 二元关联 87
4.2.2 导航性 87
4.2.3 标注关联 88
4.2.4 聚合与组合 88
4.2.5 关联、组合与聚合关系辨析 89
4.3 泛化关系 91
4.3.1 泛化及其表示方法 91
4.3.2 抽象类与多态 92
4.4 依赖关系与实现关系 93
4.5 类图建模及案例分析 94
4.5.1 创建类 94
4.5.2 创建类与类之间的关系 95
4.5.3 案例分析 96
4.6 对象图 99
4.6.1 对象图的组成 99
4.6.2 类图和对象图的区别 100
4.6.3 创建对象图 100
4.7 总结 101
习题 101
第5章 系统动态分析与交互模型 103
5.1 交互模型概述 103
5.2 序列图定义和组成要素 104
5.2.1 序列图定义 104
5.2.2 序列图组成要素 104
5.3 序列图建模及案例分析 108
5.3.1 创建对象 108
5.3.2 创建生命线 111
5.3.3 创建消息 112
5.3.4 销毁对象 115
5.4 协作图定义和组成要素 119
5.4.1 协作图定义 119
5.4.2 协作图组成要素 120
5.5 协作图建模及案例分析 123
5.5.1 创建对象 123
5.5.2 创建消息 125
5.5.3 创建链 126
5.6 总结 128
习题 129
第6章 系统动态分析与行为模型 131
6.1 基于状态的对象行为建模 131
6.1.1 状态机 131
6.1.2 状态图基本概念 132
6.2 状态图组成要素 133
6.2.1 状态 133
6.2.2 转换 138
6.2.3 判定 140
6.2.4 同步 140
6.2.5 事件 141
6.3 状态图建模及案例分析 143
6.3.1 创建状态图 143
6.3.2 创建初始和终止状态 144
6.3.3 创建状态 144
6.3.4 创建状态之间的转换 146
6.3.5 创建事件 146
6.3.6 创建动作 146
6.3.7 创建监护条件 147
6.4 基于活动的系统行为建模 149
6.4.1 活动图概述 149
6.4.2 活动图基本概念 149
6.4.3 活动图与流程图的区别 150
6.5 活动图组成要素 152
6.5.1 动作状态 152
6.5.2 活动状态 152
6.5.3 组合活动 153
6.5.4 分叉与结合 153
6.5.5 分支与合并 154
6.5.6 泳道 154
6.5.7 对象流 155
6.6 活动图建模及案例分析 157
6.6.1 创建活动图 157
6.6.2 创建初始和终止状态 158
6.6.3 创建动作状态 158
6.6.4 创建活动状态 159
6.6.5 创建转换 159
6.6.6 创建分叉与结合 159
6.6.7 创建分支与合并 160
6.6.8 创建泳道 160
6.6.9 创建对象流 161
6.7 总结 164
习题 165
第7章 系统设计与实现模型 168
7.1 系统体系结构概述 168
7.1.1 系统设计主要任务 168
7.1.2 系统体系结构建模主要活动 169
7.2 包图 169
7.2.1 包图的基本概念 169
7.2.2 包的表示方法 171
7.2.3 可见性 171
7.2.4 包之间的关系 172
7.2.5 使用Rational Rose创建包图 172
7.3 构件图的基本概念 174
7.3.1 构件 175
7.3.2 构件图 177
7.4 部署图的基本概念 178
7.4.1 结点 178
7.4.2 部署图 180
7.5 构件图与部署图建模及案例分析 180
7.5.1 创建构件图 180
7.5.2 创建部署图 184
7.5.3 案例分析 188
7.6 总结 189
习题 190
第8章 软件工程引论与统一软件过程RUP 191
8.1 软件开发中的经典阶段 191
8.2 传统软件开发方法学 192
8.2.1 传统软件开发方法学简介 192
8.2.2 瀑布模型 193
8.3 软件开发新方法学 194
8.3.1 什么是统一过程RUP 194
8.3.2 RUP的发展历程及其应用 194
8.3.3 RUP二维模型 195
8.3.4 RUP的核心工作流 200
8.3.5 RUP的迭代开发模型 201
8.3.6 RUP的应用优势和局限性 202
8.4 其他软件开发模型 203
8.4.1 喷泉模型 203
8.4.2 原型模型 203
8.4.3 XP模型 204
8.5 总结 205
习题 205
第9章 综合实例——银行核心业务系统 206
9.1 需求分析 206
9.2 系统建模 206
9.2.1 创建系统用例模型 206
9.2.2 创建系统静态模型 208
9.2.3 创建系统动态模型 212
9.2.4 创建系统部署模型 225
9.3 总结 226
参考文献 227