目 录 1
第1章面向对象技术概述 1
1.1软件危机及软件工程 1
1.2对软件开发的基本认识 2
1.3软件的固有复杂性 3
1.4控制软件复杂性的基本方法 4
1.5面向对象技术 5
1.6 面向对象领域中的基本概念 6
1.6.1对象和实例 7
1.6.2类 7
1.6.3封装 7
1.6.4继承 7
1.6.5 多态 9
1.7 小结 10
1.6.6 消息 10
第2章UML概述 11
2.1为什么要学习UML 11
2.2 UML的历史 12
2.3 UML的特点 14
2.4 UML的构成 14
2.5 UML中的视图 16
2.6 UML的应用领域 17
2.7支持UML的工具 17
2.8一个UML的例子 18
2.9小结 20
第3章 用例和用例图 21
3.1用例 21
3.2参与者 24
3.4.2包含关系 25
3.4.1泛化关系 25
3.4用例间的关系 25
3.3脚本 25
3.4.3扩展关系 26
3.4.4用例的泛化、包含、扩展关系的比较 27
3.5 用例图 28
3.6用例的描述 29
3.7寻找用例的方法 34
3.8常见问题分析 35
3.9 小结 36
第4章顺序图和协作图 37
4.1交互图概述 37
4.2顺序图 37
4.3顺序图中的消息 38
4.3.3 返回消息 39
4.3.2 异步消息 39
4.3.1 调用消息 39
4.3.4阻止消息和超时消息 40
4.3.5消息的语法格式 40
4.4建立顺序图的步骤 41
4.5协作图 42
4.6建立协作图的步骤 43
4.7顺序图和协作图的比较 43
4.8工具支持 43
4.9常见问题分析 44
4.10 小结 46
第5章类图和对象图 48
5.1 类的定义 48
5.1.1类的属性 48
5.1.2类的操作 49
5.2.1关联 50
5.2类之间的关系 50
5.2.2聚集和组合 56
5.2.3泛化关系 57
5.2.4依赖关系 57
5.3派生属性和派生关联 58
5.4抽象类和接口 58
5.5 版型 59
5.6边界类、控制类和实体类 60
5.6.1边界类 60
5.6.2实体类 61
5.6.3控制类 61
5.7类图 62
5.7.1类图的抽象层次 62
5.7.2构造类图 63
5.8领域分析 64
5.9.1 开闭原则 65
5.9 OO设计的原则 65
5.9.2 Liskov替换原则 66
5.9.3依赖倒置原则 66
5.9.4接口分离原则 67
5.10对象图 69
5.11小结 70
第6章数据建模 72
6.1数据建模概述 72
6.2数据库设计的基本过程 72
6.3数据库设计的步骤 73
6.4对象模型和数据模型的相互转换 80
6.4.1对象模型转换为数据模型 80
6.4.2数据模型转换为对象模型 83
6.5小结 85
7.1包的基本概念 86
第7章包 86
7.2设计包的原则 87
7.2.1重用等价原则 88
7.2.2共同闭包原则 88
7.2.3共同重用原则 88
7.2.4非循环依赖原则 89
7.3包的应用 89
7.4小结 89
第8章状态图和活动图 90
8.1什么是状态图 90
8.2状态图中的基本概念 91
8.2.1状态 91
8.2.2组合状态和子状态 91
8.2.3历史状态 93
8.2.4转移 93
8.2.5事件 94
8.2.6 动作 96
8.3状态图的工具支持 96
8.4什么是活动图 97
8.5活动图中的基本概念 98
8.5.1 活动 98
8.5.2泳道 98
8.5.3分支 99
8.5.4分叉和汇合 99
8.5.5对象流 100
8.6活动图的用途 100
8.7活动图的工具支持 102
8.8 状态图和活动图的比较 102
8.9小结 102
第9章构件图 103
9.1什么是构件和构件图 103
9.2构件图的作用 104
9.3构件图的工具支持 105
9.4小结 111
第10章部署图 112
10.1什么是部署图 112
10.2部署图中的基本概念 112
10.2.1结点 112
10.2.2连接 113
10.3部署图的例子 113
10.4小结 114
第11章对象约束语言 115
11.1为什么需要OCL 115
11.2 OCL的特点 115
11.3 OCL的构成 116
11.4 OCL使用实例 118
11.5 OCL扩展讨论 119
11.6小结 120
第12章业务建模 121
12.1业务建模概述 121
12.2业务建模中的基本概念 122
12.3 UML的业务建模扩展 122
12.4业务体系结构 126
12.5从业务模型到软件模型 129
12.6小结 130
第13章Web建模 131
13.1 Web建模的基本概念 131
13.2 Web应用系统的体系结构 132
13.3 Web建模扩展WAE 134
13.3.2客户机页 135
13.3.3《Build》关联 135
13.3.1服务器页 135
13.3.4 《Link》关联 136
13.3.5表单 136
13.3.6《Submit》关联 137
13.3.7框架集 138
13.3.8 《Include》关联 139
13.3.9 《Forward》和《Redirect》关联 140
13.3.10 Session和JavaBean建模 140
13.3.11 Servlet建模 140
13.4 Rose的Web建模使用说明 141
13.5 Web建模实例 147
13.6小结 153
第14章UML与设计模式 154
14.1为什么要使用设计模式 154
14.2设计模式的历史 154
14.3设计模式的分类 155
14.4设计模式实例 156
14.4.1 Facade设计模式 156
14.4.2 Abstract Factory设计模式 159
14.4.3 Visitor设计模式 162
14.5 在Rose中使用设计模式 168
14.6小结 171
第15章面向对象实现技术 172
15.1面向对象程序设计语言概述 172
15.2几种典型的OOPL 173
15.2.1 Smalltalk 173
15.2.2 Eiffel 174
15.2.3 C++ 176
15.2.4 Java 176
15.2.5 Objective-C 177
15.2.6 CLOS语言的特色 177
15.4小结 178
15.3其他OOPL 178
第16章RUP软件开发过程 179
16.1什么是软件开发过程 179
16.2 RUP的历史 179
16.3 6个最佳开发经验 180
16.3.1迭代式开发 181
16.3.2管理需求 181
16.3.3使用基于构件的体系结构 181
16.3.4可视化软件建模 181
16.3.5验证软件质量 182
16.3.6控制软件变更 182
16.4 RUP软件开发生命周期 182
16.5 RUP中的核心概念 184
16.6.2以体系结构为中心 185
16.6.1用例驱动 185
16.6 RUP的特点 185
16.6.3迭代和增量 186
16.7 RUP裁剪 187
16.8 RUP Builder 187
16.9小结 192
第17章UML开发工具 193
17.1 支持UML的常见工具 193
17.1.1 Together 193
17.1.2 ArgoUML 193
17.1.3 MagicDraw UML 194
17.1.4 Visual UML 194
17.1.5 Visio 194
17.1.6 Poseidon for UML 194
17.2 Rational Suite 2003开发工具 195
17.2.1 Rational RequisitePro 195
17.1.7 BridgePoint 195
17.2.2 Rational ClearCase 196
17.2.3 Rational ClearQuest 196
17.2.4 Rational PureCoverage 197
17.2.5 Rational Purify 197
17.2.6 Rational Quantify 197
17.2.7 Rational SoDA for Word 198
17.2.8其他工具 198
17.3 Rose 2003 198
17.4 Rose Model Integrator 199
17.5 Rose Web Publisher 199
17.6 Rose脚本 200
17.7 Rose插入件 203
17.8在Rose 中增加新的Stereotype 206
17.9小结 210
18.2问题陈述 211
第18章实例应用分析 211
18.1引言 211
18.3分析阶段模型说明 214
18.3.1分析阶段的用例图 214
18.3.2分析阶段的逻辑视图 217
18.4设计阶段模型说明 221
18.4.1设计阶段的用例图 221
18.4.2设计阶段的逻辑视图 221
18.4.3设计阶段的进程视图 227
18.4.4设计阶段的部署视图 228
18.5课程注册系统实例总结 229
第19章综合练习 230
附录 234
附录A模拟试题(一)及答案 234
附录B模拟试题(二)及答案 248
参考文献 263