第1章 面向对象分析与设计 1
1.1 认识论 1
1.2 工程方法与软件工程方法 1
1.3 分析与设计的区别 2
1.4 面向对象的设计过程 3
1.5 面向对象分析与面向过程分析的区别 4
第2章 UML简介 6
第3章 RUP统一软件过程 13
3.1 软件过程 13
3.2 统一过程 13
3.3 RUP主要特点 14
3.4 RUP最佳实践 15
3.5 RUP过程框架模型 15
3.6 开发过程的静态结构 16
3.7 9个核心过程工作流 18
3.8 RUP的角色 21
3.9 RUP与软件工程 21
第4章 UML工具Rational Rose 23
4.1 建模概论 23
4.2 Rational Rose2003简介 23
4.2.1 RationalRose概述 23
4.2.2 RationalRose的安装 24
4.2.3 Rational Rose的使用 29
4.3 Rose的双向工程 36
4.3.1 双向工程概述 36
4.3.2 正向工程 36
4.3.3 逆向工程 38
第5章 用例图 40
5.1 衍生型 40
5.2 使用者 40
5.3 用例 46
5.3.1 业务用例 47
5.3.2 业务用例实现 48
5.3.3 概念用例 48
5.3.4 系统用例 48
5.3.5 系统用例实现 49
5.3.6 业务用例模型与系统用例模型之间的关系 49
5.3.7 用例的特征 51
5.3.8 用例的优势 52
5.3.9 用例的局限性 52
5.3.10 用例方法与SRS方法比较 52
5.3.11 设计用例的标准 53
5.3.12 什么才是有效用例 53
5.3.13 发现用例 53
5.3.14 使用用例的误区 56
5.3.15 用例的适用性 60
5.4 边界 60
5.5 用例之间的关系 61
5.5.1 关联关系 61
5.5.2 包含关系 61
5.5.3 扩展关系 63
5.5.4 用例的纵向方面的关系——泛化 64
5.5.5 关系之间的比较 66
5.6 用例图 68
5.6.1 业务用例视图 69
5.6.2 业务用例实现视图 70
5.6.3 概念用例视图 70
5.6.4 系统用例视图 70
5.6.5 系统用例实现视图 71
5.7 用例描述 71
第6章 类图与包图 75
6.1 类图 75
6.2 类图中的类 76
6.2.1 类的表示 76
6.2.2 类的种类 77
6.2.3 类之间的关系 79
6.3 类的衍生型 80
6.3.1 边界类 80
6.3.2 实体类 81
6.3.3 控制类 82
6.4 类图的抽象层次 83
6.4.1 概念层 83
6.4.2 说明层 84
6.4.3 实现层 84
6.5 如何构造类图 85
6.5.1 建立类图的步骤 85
6.5.2 识别、寻找类的方法 85
6.5.3 类图建模技术 87
6.6 包图 87
6.6.1 包 87
6.6.2 分包的原则 88
6.6.3 包的表示法 89
6.6.4 包图 90
6.6.5 UML工具:从代码逆向工程产生包图 91
6.6.6 使用层进行设计 91
6.6.7 包与子系统、层、组件等关系 91
第7章 状态图 93
7.1 举例与图示 93
7.2 状态图的元素 93
7.2.1 状态 93
7.2.2 状态图元素 94
7.3 状态图 97
7.4 实例 101
第8章 活动图 103
8.1 举例与图示 103
8.2 状态图元素 103
8.2.1 动作状态 104
8.2.2 活动状态 104
8.2.3 动作流 104
8.2.4 分支与合并 105
8.2.5 分叉与汇合 105
8.2.6 泳道 106
8.2.7 对象流 106
8.2.8 分解 107
8.3 活动图 108
8.4 实例 110
第9章 时序图 112
9.1 交互模型 112
9.2 举例与图示 112
9.3 组成元素 113
9.3.1 对象 114
9.3.2 消息 114
9.3.3 生命线 118
9.3.4 激活(控制焦点) 118
9.3.5 组合片段 119
9.3.6 总结 121
9.4 时序图 123
9.5 实例 129
第10章 协作图 131
10.1 举例与图示 131
10.2 协作图元素 131
10.2.1 消息 131
10.2.2 链 132
10.2.3 对象 132
10.3 协作图 132
10.4 实例 138
10.5 几种建模图形的表达焦点和语言特点 141
10.6 状态图、时序图、合作图和活动图之间的比较 142
第11章 组件图与部署图 143
11.1 组件图 143
11.1.1 举例与图示 143
11.1.2 组件图元素 143
11.1.3 组件图 144
11.2 部署图(配置图) 145
11.2.1 举例与图示 145
11.2.2 组成元素 145
11.2.3 配置图建模技术 147
第12章 架构模式 148
12.1 模式 148
12.2 架构 149
12.3 软件框架 152
12.4 分层模式 153
12.5 管道——过滤器 159
12.6 黑板模式 162
12.7 MVC模式 163
12.8 客户/服务器 165
12.9 端到端 167
第13章 通用职责分配模式 170
13.1 通用职责分配模式概述 170
13.2 信息专家 171
13.3 创建者 171
13.4 高内聚 172
13.5 低耦合 173
13.6 控制者 174
13.7 多态 175
13.8 纯虚构 176
13.9 间接性 177
13.10 变化预防 178
第14章 设计原则 180
14.1 面向对象设计原则简介 180
14.2 对象单一职责原则 180
14.3 里氏替换原则 182
14.4 依赖倒置原则 184
14.5 接口隔离原则 187
14.6 迪米特法则 188
14.7 开闭原则 190
第15章 设计模式 193
15.1 综述 193
15.2 单例模式 193
15.3 抽象工厂模式 195
15.4 建造者模式 196
15.5 工厂方法模式 197
15.6 原型模式 198
15.7 适配器模式 198
15.8 桥接模式 199
15.9 组合模式 200
15.10 装饰模式 201
15.11 外观模式 202
15.12 享元模式 203
15.13 代理模式 204
15.14 责任链模式 205
15.15 命令模式 206
15.16 解释器模式 207
15.17 迭代器模式 207
15.18 中介者模式 208
15.19 备忘录模式 209
15.20 观察者模式 210
15.21 状态模式 211
15.22 策略模式 212
15.23 模板方法 213
15.24 访问者模式 213
第16章 图书馆管理系统 215
16.1 用例模型——系统需求的获取 215
16.2 分析模型——开发者的视野 217
16.3 系统设计——实现方案 221
第17章 在线考试系统 226
17.1 用例模型图示 226
17.1.1 网上考试管理系统功能概述 226
17.1.2 网上考试管理系统中各种角色的划分 226
17.1.3 考试模块用例图 226
17.1.4 账户管理用例图 227
17.2 分析模型图示 228
17.2.1 管理账户域模型 228
17.2.2 修改账户信息域模型 228
17.2.3 用户登录域模型 229
17.2.4 注册账户域模型 229
17.3 组件图 230
17.3.1 在线考试管理表示层组件图 230
17.3.2 在线考试管理系统业务层组件图 230
17.3.3 在线考试管理系统数据访问层组件图 231
17.3.4 在线考试管理系统组件图 231
17.4 包图 232
17.4.1 采用Struts+Spring+Hibernate框架技术的经典系统架构图 232
17.4.2 紧密耦合架构示例图示 232
17.4.3 松耦合架构示例图示 234
17.5 类图 235
17.5.1 在线考试管理系统表示层类图 235
17.5.2 在线考试管理系统控制层类图 235
17.5.3 在线考试管理系统业务层类图 235
17.5.4 在线考试管理系统业务实体类图 235
17.5.5 在线考试管理系统数据访问层类图 237
17.6 时序图 237
17.6.1 在线考试管理系统用户登录时序图 237
17.6.2 在线考试管理系统查询题库信息时序图 238
17.7 协作图 239
17.7.1 在线考试管理系统用户登录协作图 239
17.7.2 在线考试管理系统查询题库信息协作图 239
17.8 活动图 240
17.8.1 在线考试管理系统学生申请考试活动图 240
17.8.2 在线考试管理系统教师新建题库活动图 241
17.9 状态图 241
17.9.1 在线考试管理系统学生状态图 241
17.9.2 在线考试管理系统教师状态图 242