第1章 面向对象技术概论 1
1.1软件开发方法概述 2
1.1.1结构化方法 3
1.1.2模块化方法 4
1.1.3面向数据结构方法 4
1.1.4面向对象方法 5
1.1.5软件开发方法的评价与选择 6
1.2软件生存周期 7
1.2.1软件定义阶段 8
1.2.2软件开发阶段 8
1.2.3软件使用、维护和更新换代阶段 9
1.3面向对象的基本概念 10
1.3.1面向对象方法的特点 10
1.3.3类(Class) 12
1.3.2对象(Object) 12
1.3.4封装(Encapsulation) 13
1.3.5继承(Inheritance) 14
1.3.6消息(Message) 15
1.3.7多态性(Polymorphism) 16
1.4面向对象系统开发过程 17
1.5面向对象分析 19
1.5.1 OOA步骤 19
1.5.2 OOA过程 20
1.5.3建造对象类静态结构模型 26
1.5.4建造对象类动态结构模型 26
1.5.5建造对象类功能处理模型 27
1.6面向对象设计 27
1.6.1 OOD的步骤 27
1.6.2系统对象设计 28
1.6.3系统体系结构设计 29
1.6.4系统优化和审查 30
1.6.5通用设计样式 31
1.7系统文档、实现、测试和维护 31
1.7.1系统文档资料 31
1.7.2系统实现(OOI) 32
1.7.3系统测试(OOT) 32
1.7.4系统维护(OOM) 33
1.8几种典型的面向对象方法简介 34
1.8.1布什(Booch)的面向对象方法论 34
1.8.2雅寇森(Jacobson)的面向对象方法论 35
1.8.3尤顿(Coad-Yourdon)的面向对象方法论 36
1.8.4詹幕斯·云豹(James Rumbaugh)的面向对象方论 37
1.9本章小结 39
1.10习题 40
第2章 统一建模语言UML 41
2.1 UML简介 41
2.1.1 UML的发展历史 41
2.1.2 UML描述软件的体系结构 42
2.1.3 UML模型基本图标元素 43
2.2 UML模型图 44
2.2.1用例模型图 44
2.2.2静态结构模型图 45
2.2.3动态行为模型图 48
2.3 UML系统模型结构 52
2.3.1子系统的组织结构 52
2.3.2系统模型的组织结构 53
2.3.3系统结构层次 53
2.4 UML的公共机制 54
2.5.1构造型 56
2.5 UML的扩展机制 56
2.5.2标记值 57
2.5.3约束 58
2.6 UML软件开发过程 59
2.6.1项目开发的阶段 60
2.6.2 UML开发过程中的成分 61
2.6.3 UML软件开发过程的产物 64
2.6.4 UML软件开发过程的特征 65
2.7本章小结 67
2.8习题 68
第3章 用例建模 69
3.1 引言 69
3.2用例图 70
3.3定义系统 71
3.3.3系统的表示法 72
3.3.1定义系统的范围 72
3.3.2定义系统的边界 72
3.4确定行为者 73
3.4.1行为者 73
3.4.2寻找和确定行为者 74
3.5确定用例 75
3.5.1用例的特征 75
3.5.2寻找和确定用例 76
3.5.3描述用例 76
3.6用例之间的关联 78
3.6.1继承关联 78
3.6.2扩展关联 79
3.6.3包含关联 80
3.6.4使用关联 80
3.7.1用例分类 81
3.7用例建模 81
3.7.2建立用例图 82
3.7.3层次化用例图 82
3.7.4用例建模的过程 83
3.8本章小结 90
3.9习题 90
第4章 类和对象建模 92
4.1 引言 92
4.2定义对象类 95
4.2.1 定义属性 95
4.2.2定义操作 95
4.3 对象类的关联 96
4.3.1 关联 96
4.3.2聚集 101
4.3.3继承 102
4.4.1设计样式的特征 104
4.3.4依赖和细化 104
4.4通用对象设计样式 104
4.4.2几个简单的设计样式 105
4.4.3设计样式的描述与调用 109
4.5接口 110
4.6包与子系统 111
4.6.1包 111
4.6.2包的嵌套 112
4.6.3包之间的关系 113
4.7对象类建模 114
4.7.1确定和建立对象类图 115
4.7.2确定和建立系统包图 119
4.8本章小结 121
4.9习题 122
5.1.1消息 123
第5章 动态建模(一) 123
5.1引言 123
5.1.2消息的类型 124
5.2 时序图 125
5.2.1概述 125
5.2.2同步与异步消息 127
5.2.3带条件和分支的时序图 129
5.2.4带约束标记的时序图 130
5.2.5带循环标记的时序图 131
5.2.6创建对象和对象的消亡 132
5.3协作图 132
5.3.1协作图的成分 132
5.3.2协作图中对象的生存期 135
5.3.3协作图中消息的层次关系 136
5.3.4协作图中的自调用与回调 137
5.3.5协作图中的重复消息 139
5.4动态建模的应用(一) 139
5.4.1几个基本概念 139
5.4.2一个实例的分析 140
5.4.3系统的时序图 142
5.4.4系统的协作图 145
5.5本章小结 148
5.6习题 149
第6章 动态建模(二) 151
6.1状态图 151
6.1.1对象的状态图符 151
6.1.2状态的迁移 153
6.1.3状态图的描述 154
6.2 对象的状态 156
6.2.1嵌套状态 157
6.2.2顺序状态 158
6.2.3并发状态与同步 159
6.2.4历史指示器 160
6.3状态迁移 161
6.3.1事件 162
6.3.2条件 164
6.3.3动作表达式 164
6.3.4状态迁移的种类 164
6.3.5状态图之间发送的消息 165
6.4活动图 166
6.4.1活动图与状态图的异同 166
6.4.2基本概念 167
6.4.3并发与同步活动 170
6.4.4活动图的层次关系 172
6.5.1一个实例的分析 173
6.5动态建模的应用(二) 173
6.5.2系统的状态图 174
6.5.3系统的活动图 178
6.6本章小结 181
6.7习题 183
第7章 物理体系结构建模 185
7.1引言 185
7.1.1逻辑体系结构 185
7.1.2物理体系结构 188
7.2构件与构件图 188
7.2.1构件 189
7.2.2构件的种类 191
7.2.3构件的接口 192
7.2.4构件与构件图 193
7.2.5注意事项 196
7.3部署图 197
7.3.1节点 197
7.3.2节点与构件 198
7.3.3节点与对象 199
7.3.4节点之间的联系 200
7.3.5建立部署图 201
7.4物理体系结构建模 202
7.4.1一个实例的分析 202
7.4.2系统的构件图 204
7.4.3系统的部署图 205
7.5本章小结 208
7.6 习题 209
第8章 高级对象技术 210
8.1引言 210
8.2软件复用技术概述 211
8.2.1软件复用的过程和方式 212
8.2.2软件复用的规模 214
8.2.3 可复用软件构件的生产与使用 216
8.2.4构件及构件系统 217
8.2.5软件复用的实施与组织 220
8.3 COM+模型 222
8.3.1 COM+的基本结构与特点 223
8.3.2 COM+构件的特征 223
8.3.3 COM+系统组成 225
8.3.4 COM+系统服务 226
8.4 EJB/J2EE模型 228
8.4.1 EJB系统和体系结构 228
8.4.2 J2EE系统体系结构 231
8.5 CORBA 对象体系结构 232
8.5.1 CORBA模型 233
8.5.2 OMG接口定义语言IDL 235
8.5.3 CORBA系统的对象调用过程 236
8.6持久对象 238
8.6.1持久对象的安全性 238
8.6.2面向对象数据库 239
8.6.3关系数据库 240
8.6.4关系数据库与面向对象数据库的比较 241
8.7客户机/服务器模型和分布计算技术 242
8.7.1客户机/服务器模型 242
8.7.2分布计算环境与实现技术 244
8.8本章小结 245
8.9习题 247
9.1 CASE工具的种类 248
9.1.1 CASE工具的分类 248
第9章 CASE工具与集成化环境 248
9.1.2 CASE工具集成化 250
9.1.3集成化CASE环境的优点 252
9.2集成化CASE环境 252
9.2.1 CASE工具集成环境的演变 252
9.2.2 CASE工具集成环境的体系结构 254
9.2.3可移植CASE工具环境 256
9.3集成化OOCASE工具 257
9.3.1 OOCASE工具 257
9.3.2 OOCASE工具的特征 258
9.3.3集成化的OOCASE工具Rose 260
9.3.4在Rose环境下建立UML模型 264
9.4本章小结 272
9.5习题 273
参考文献 274