第1章 基础知识 1
1.1 软件开发方法概述 1
1.1.1 软件生命周期法 1
1.1.2 原型法 4
1.1.3 面向对象技术 6
1.1.4 面向对象的软件开发语言与工具 8
1.2 面向对象的系统分析与设计 9
1.2.1 面向对象的主要概念 9
1.2.2 面向对象的系统分析与设计方法 13
1.3 UML概述 17
1.3.1 UML简史 17
1.3.2 UML概貌 18
1.3.3 UML的特点和用途 19
第2章 面向对象的软件开发过程 21
2.1 Rational统一过程 21
2.1.1 项目开发阶段 22
2.1.2 过程成分 22
2.1.3 螺旋上升式开发 23
2.1.4 RUP过程产物 24
2.1.5 RUP的特点 26
2.2 项目开端阶段 27
2.3 精化阶段 27
2.3.1 问题领域分析 27
2.3.2 建立系统架构 29
2.3.3 开发风险处理 31
2.3.4 构建规划 32
2.4 系统构建 33
2.5 系统提交 35
2.6 循环节的生命周期活动 35
第3章 UML语言 37
3.1 UML语言结构 37
3.2 元模型 41
3.3 符号与图形 46
3.3.1 图形符号 46
3.3.2 语义规则 48
3.4 图与模型组织 50
3.4.1 模型组织 50
3.4.2 图 52
3.4.3 视图 53
3.5 公共机制 53
3.6 扩展机制 55
3.6.1 构造型 55
3.6.2 标记值 57
3.6.3 约束 58
第4章 Use Case图 60
4.1 概述 60
4.2 活动者 61
4.2.1 系统范围与系统边界 61
4.2.2 活动者 62
4.3 Use Case 64
4.3.1 Use Case概念 64
4.2.3 活动者的确定 64
4.3.2 业务Use Case与系统Use Case 66
4.3.3 Use Case图 66
4.4 Use Case的联系 69
4.4.1 泛化关联 69
4.4.2 使用关联 69
4.4.3 包含关联 70
4.4.4 扩展关联 70
4.5 Use Case图的应用 71
4.5.1 Use Case的确定 71
4.5.2 建立Use Case模型 72
5.1 对象类图 74
第5章 对象类图与对象图 74
5.1.1 对象类 75
5.1.2 属性 76
5.1.3 操作 77
5.2 对象类的关联 79
5.2.1 对象类的关联 79
5.2.2 自返关联、二元关联与N元关联 81
5.2.3 关联的约束 82
5.3 聚合与组合 83
5.3.1 聚合 84
5.3.2 组合 84
5.4.1 泛化/特化 85
5.4.2 继承 85
5.4 泛化 85
5.4.3 重载与多态性 87
5.5 依赖 88
5.6 对象图 89
5.6.1 对象 89
5.6.2 对象图 89
5.7 接口 91
5.8 对象类的高级概念 92
5.8.1 抽象类 92
5.8.2 参数对象类 93
5.8.3 型与实现对象类 93
5.8.4 导出属性与导出关联 95
5.9 对象类图的应用 95
5.9.1 对象类图的建立 96
5.9.2 模型景象与粒度控制 97
5.9.3 数据库建模 98
5.9.4 例外情况建模 101
第6章 交互图 104
6.1 顺序图 104
6.1.1 顺序图的组成 104
6.1.2 对象的创建与销毁 108
6.1.3 同步消息与异步消息 109
6.1.4 分支 110
6.1.5 循环 111
6.1.6 自调用与回调 113
6.2 协同图 116
6.2.1 协同图的组成 116
6.2.2 说明层与实例层 118
6.2.3 对象的创建与销毁 120
6.2.4 同步消息与异步消息 121
6.2.5 多对象 121
6.2.6 自调用与回调 123
6.3 协同 124
6.3.1 概述 124
6.3.2 Use Case与协同 125
6.3.3 参数化协同 126
6.4 交互图的应用 127
第7章 状态图 130
7.1 状态机 130
7.2 状态图 132
7.3.1 概述 135
7.3 状态 135
7.3.2 组合状态 136
7.3.3 顺序状态 137
7.3.4 历史状态 139
7.4 转移 140
7.4.1 事件 140
7.4.2 条件 144
7.4.3 动作 144
7.4.4 转移的类型 145
7.5 并发状态图 148
7.5.1 并发子状态 148
7.5.2 同步 149
7.6 状态图的应用 150
第8章 活动图 152
8.1 概述 152
8.2 活动图的基本元素 154
8.2.1 动作状态与活动状态 154
8.2.2 动作流 155
8.2.3 泳道 156
8.2.4 对象流 156
8.3 活动分解 158
8.4 并发 159
8.4.1 并发与同步 159
8.4.2 条件线程 159
8.4.4 动态并发 160
8.4.3 同步状态 160
8.5 活动图的应用 162
8.5.1 用途 162
8.5.2 工作流建模 162
第9章 包图 164
9.1 包 164
9.1.1 包的语义和表示 164
9.1.2 包的嵌套 165
9.1.3 标准构造型 167
9.2 包的联系 167
9.2.1 依赖与输入依赖 167
9.2.2 泛化 169
9.3 包图 169
9.4.1 包图的建立 170
9.4 包图的应用 170
9.4.2 系统建模 171
9.4.3 开发跟踪 173
第10章 物理图与对象约束语言(OCL) 174
10.1 组件图 174
10.1.1 组件 174
10.1.2 组件的种类 176
10.1.3 组件的联系 177
10.1.4 组件图的应用 179
10.2 配置图 181
10.2.1 节点 182
10.2.2 节点的联系 183
10.2.3 配置图的应用 185
10.3 对象约束语言(OCL) 188
10.3.1 标准型 189
10.3.2 表达式 191
10.3.3 对象性质的约束 192
第11章 软件开发工具Rational Rose 195
11.1 Rational Rose的主要功能 196
11.1.1 对面向对象模型的支持 196
11.1.2 对螺旋上升式开发过程的支持 196
11.1.3 对往返工程的支持 197
11.1.4 对团队开发的支持 197
11.1.5 对工具的支持 198
11.2.1 系统主菜单窗口 199
11.2 Rational Rose的使用 199
11.2.2 模型与工作方式的组织 201
11.2.3 Use Case视图 202
11.2.4 逻辑视图 204
11.2.5 组件视图 206
11.2.6 配置视图 206
第12章 简易教学管理系统的分析与设计 208
12.1 系统需求 208
12.2 分析问题领域 210
12.2.1 确定系统范围和系统边界 210
12.2.2 定义活动者 210
12.2.3 定义Use Case 210
12.2.4 绘制Use Case图 212
12.2.5 绘制主要交互图 214
12.3 静态结构模型 216
12.3.1 建立对象类图 216
12.3.2 建立数据库模型 220
12.3.3 建立包图 220
12.4 动态行为模型 222
12.4.1 建立顺序图 222
12.4.2 建立协同图 224
12.4.3 建立状态图 225
12.4.4 建立活动图 227
12.5 物理模型 227
12.5.1 建立组件图 227
12.5.2 建立配置图 229