UML面向对象建模与设计(第2版)
4推荐 收藏
8.1K阅读
图灵计算机科学丛书

UML面向对象建模与设计(第2版)

James R.Rumbaugh , Michael R.Blaha , William Premerlani , Frederick Eddy , William Lorensen (作者) 车皓阳 , 杨眉 (译者)
终止销售
本书是“面向对象建模与设计”领域的经典著作。全书由四个部分组成。第一部分以一种高层的、独立于语言的方式描述面向对象的概念,以及UML表示法;第二部分从问题陈述到分析、系统设计和类设计,一步一步地描述了软件开发的面向对象方法学;第三部分用面向对象语言和关系数据库描述了面向对象设计的实现;第四部分描述了成功的面向对象开发所需要的软件工程实践。本书还配有丰富的习题,覆盖了一系列应用领域以及实现目标,而且在书的后面给出了部分习题的答案。
本书可以作为高年级本科生或研究生软件工程或面向对象技术课程的教材,也可以供相关技术人员参考。

出版信息

  • 书  名UML面向对象建模与设计(第2版)
  • 系列书名图灵计算机科学丛书
  • 执行编辑关于本书的内容有任何问题,请联系 傅志红
  • 出版日期2011-07-25
  • 书  号978-7-115-22424-8
  • 定  价59.00 元
  • 页  数404
  • 开  本16开
  • 出版状态终止销售
  • 原书名Object-Oriented Modeling and Design with UML
  • 原书号0-13-015920-4

同系列书

本书特色

本书涵盖了大量新内容,增加了用例、活动模型和顺序图,兼容UML 2。
过程更为健壮,增加了迭代开发、实现建模和反向工程。
配有大量习题,除了书后的部分习题解答之外,网上还提供了多达200页的在线解题手册。
强调实用性和问题的求解。

目录

第1章 简介  1
1.1 什么是面向对象 1
1.2 什么是OO开发  3
1.2.1 对概念而非实现建模  3
1.2.2 OO方法论  3
1.2.3 三种模型  4
1.3 OO主题  5
1.3.1 抽象  5
1.3.2 封装  5 
1.3.3 组合数据和行为  5
1.3.4 共享  6
1.3.5 强调对象的本质  6
1.3.6 协同  6
1.4 关于OO开发有效性的证据  7
1.5 OO建模历史  7 
1.6 本书的组织结构  8
参考文献注释   8
参考文献   9
习题  9
第一部分 建模的概念
第2章 建模是一种设计技术  12
2.1 建模  12
2.2 抽象  12
2.3 三种模型  13
2.3.1 类模型  13
2.3.2 状态模型  13
2.3.3 交互模型  14
2.3.4 模型间的关系  14
2.4 小结  14
参考文献注释  14
习题  15
第3章 类建模  17
3.1 对象和类的概念  17
3.1.1 对象  17
3.1.2 类  17
3.1.3 类图  18
3.1.4 值和属性  19
3.1.5 操作和方法  20
3.1.6 类表示法小结  21
3.2 链接和关联的概念  21
3.2.1 链接和关联  21
3.2.2 多重性  23
3.2.3 关联端名  24
3.2.4 排序  26
3.2.5 包和序列  26
3.2.6 关联类  26
3.2.7 限定关联  28
3.3 泛化和继承  29
3.3.1 定义  29
3.3.2 泛化的用途  31
3.3.3 覆写特征  31
3.4 类模型的一个示例  32
3.5 类模型导航  34
3.5.1 遍历类模型的OCL构件  35
3.5.2 构建OCL表达式  35
3.5.3 OCL表达式的示例  36
3.6 实践技巧  37
3.7 小结  38
参考文献注释  39
参考文献  40
习题  40
第4章 高级类建模  47
4.1 高级对象和类的概念  47
4.1.1 枚举  47
4.1.2 多重性  48
4.1.3 作用域  48
4.1.4 可见性  49
4.2 关联端  49
4.3 n元关联  50
4.4 聚合  51
4.4.1 聚合与关联  52
4.4.2 聚合与组合  53
4.4.3 操作的传播  53
4.5 抽象类  54
4.6 多重继承  55
4.6.1 多重继承的种类  55
4.6.2 多重分类  56
4.6.3 应对方案  57
4.7 元数据  58
4.8 具体化  59
4.9 约束  59
4.9.1 对象上的约束  60
4.9.2 泛化集上的约束  60
4.9.3 链接上的约束  60
4.9.4 使用约束  61
4.10 派生数据  61
4.11 包  62
4.12 实践技巧  62
4.13 小结  63
参考文献注释  64
参考文献  64
习题  65
第5章 状态建模  69
5.1 事件  69
5.1.1 信号事件  69
5.1.2 变更事件  70
5.1.3 时间事件  70
5.2 状态  71
5.3 迁移和状态  72
5.4 状态图  73
5.4.1 状态图示例  73
5.4.2 单触发状态图  74
5.4.3 状态图的基本表示法小结  75
5.5 状态图行为  76
5.5.1 活动效应  76
5.5.2 do活动  76
5.5.3 进入和退出活动  77
5.5.4 完成迁移  78
5.5.5 发送信号  78
5.5.6 带有活动的状态图示例  78
5.6 实践技巧  79
5.7 小结  80
参考文献注释  80
参考文献  81
习题  81
第6章 高级状态建模  85
6.1 嵌套状态图  85
6.1.1 平面状态图的问题  85
6.1.2 扩展状态  85
6.2 嵌套状态  86
6.3 信号泛化  88
6.4 并发  89
6.4.1 聚合并发  89
6.4.2 对象内的并发  90
6.4.3 并发活动的同步  90
6.5 状态模型示例  91
6.6 类状态模型的关系  95
6.7 实践技巧  96
6.8 小结  97
参考文献注释  97
参考文献  98
习题  98
第7章 交互建模  102
7.1 用例模型  102
7.1.1 参与者  102
7.1.2 用例  103
7.1.3 用例图  104
7.1.4 用例模型的准则  105
7.2 顺序模型  106
7.2.1 场景  106
7.2.2 顺序图  106
7.2.3 顺序模型的准则  108
7.3 活动模型  109
7.3.1 活动  110
7.3.2 分支  110
7.3.3 初始和终止  111
7.3.4 并发活动  111
7.3.5 可执行活动图  111
7.3.6 活动模型的准则  111
7.4 小结  112
参考文献注释  112
参考文献  112 
习题  113
第8章高级交互建模  115
8.1 用例关系  115
8.1.1 包含关系  115
8.1.2 扩展关系  115
8.1.3 泛化  116
8.1.4 用例关系的组合  117
8.1.5 用例关系的准则  118
8.2 过程式顺序模型  118
8.2.1 带有被动对象的顺序图  118
8.2.2 带有临时对象的顺序图  119
8.2.3 过程化顺序模型的准则  120
8.3 活动模型的特殊结构  120
8.3.1 发送和接收信号  120
8.3.2 泳道  121
8.3.3 对象流  122
8.4 小结  122
参考文献  123
习题  123
第9章 概念小结  126
9.1 类模型  126
9.2 状态模型  126
9.3 交互模型  126
9.4 模型之间的关系  127
9.4.1 泛化  127
9.4.2 聚合  128
第二部分 分析和设计
第10章 过程概述  130
10.1 开发阶段  130
10.1.1 系统构思  130
10.1.2 分析  131
10.1.3 系统设计  131
10.1.4 类设计  132
10.1.5 实现  132
10.1.6 测试  132
10.1.7 培训  132
10.1.8 部署  132
10.1.9 维护  132
10.2 开发生命周期  133
10.2.1 瀑布式开发  133
10.2.2 迭代开发  133
10.3 小结  133
参考文献注释  134
习题  134
第11章 系统构思  135
11.1 形成系统概念  135
11.2 阐释概念  135
11.3 准备问题陈述  137
11.4 小结  139
习题  139
第12章 领域分析  141
12.1 分析概述  141
12.2 领域类模型  142
12.2.1 寻找类  143
12.2.2 保留正确的类  144
12.2.3 准备数据词典  145
12.2.4 寻找关联  145
12.2.5 保留正确的关联  146
12.2.6 寻找属性  150
12.2.7 保留正确的属性  150
12.2.8 使用继承来细化  151
12.2.9 测试访问路径  153
12.2.10 迭代类模型  154
12.2.11 变换抽象的层次  155
12.2.12 把类分组打包  156
12.3 领域状态模型  157
12.3.1 确定具有状态的类  157
12.3.2 寻找状态  158
12.3.3 寻找事件  158
12.3.4 构建状态图  158
12.3.5 评价状态图  159
12.4 领域交互模型  159
12.5 将分析迭代  159
12.5.1 细化分析模型  160
12.5.2 重述需求  160 
12.5.3 分析和设计  161
12.6 小结  161
参考文献注释  161
参考文献  162
习题  162
第13章 应用分析  169
13.1 应用程序交互模型  169
13.1.1 确定系统边界  169
13.1.2 寻找参与者  170
13.1.3 寻找用例  170
13.1.4 寻找初始和终止事件  171
13.1.5 准备普通场景  171
13.1.6 增加变化和异常场景  172
13.1.7 寻找外部事件  172
13.1.8 编制复杂用例的活动图  175
13.1.9 组织参与者和用例  175
13.1.10 检查领域类模型  175
13.2 应用类模型  176
13.2.1 确定用户界面  176
13.2.2 定义边界类  177
13.2.3 确定控制器  177
13.2.4 检查交互模型  178
13.3 应用状态模型  178
13.3.1 使用状态来确定应用类  179
13.3.2 寻找事件  179
13.3.3 构建状态图  179
13.3.4 检查其他状态图  181
13.3.5 检查类模型  182
13.3.6 检查交互模型  182
13.4 增加操作  183
13.4.1 来自类模型的操作  183
13.4.2 来自用例的操作  183
13.4.3 购物清单操作  183
13.4.4 简化操作  183
13.5 小 结  184
参考文献注释  185
参考文献  185
习题  185
第14章 系统设计  188
14.1 系统设计概述  188
14.2 估算性能  189
14.3 制订复用计划  189
14.3.1 库  189
14.3.2 框架  190
14.3.3 模式  190
14.4 将系统拆分成子系统  191
14.4.1 分层  192
14.4.2 分区  192
14.4.3 组合分层和分区  192
14.5 确定并发性  193
14.5.1 识别内部的并发性  193
14.5.2 定义并发任务  194
14.6分 配子系统  194
14.6.1 估算硬件资源需求  194
14.6.2 权衡硬件和软件  195
14.6.3 给处理器分配任务  195
14.6.4 确定物理连通性  196
14.7 管理数据存储  196
14.8 处理全局资源  197
14.9 选择软件控制策略  198
14.9.1 过程驱动型控制  198
14.9.2 事件驱动型控制  199
14.9.3 并发控制  199
14.9.4 内部控制  199
14.9.5 其他范型  199
14.10 处理边界条件  200
14.11 设定权衡优先级  200
14.12 常见的架构风格  201
14.12.1 批处理转换  201
14.12.2 连续型转换  202
14.12.3 交互式界面  203
14.12.4 动态仿真  203
14.12.5 实时系统  204
14.12.6 事务管理器  204
14.13 ATM系统的架构  204
14.14 小结  205
参考文献注释  206
参考文献  207
习题  207
第15章 类设计  212
15.1 类设计概述  212
15.2 填补空白区  213
15.3 实现用例  214
15.4 设计算法  215
15.4.1 选择算法  215
15.4.2 选择数据结构  216
15.4.3 定义内部类和操作  217
15.4.4 把操作分配给类  217
15.5 向下递归  219
15.5.1 功能分层  219
15.5.2 机制分层  219
15.6 重构  220
15.7 设计优化  220
15.7.1 为了高效访问而增加冗余的关联  221
15.7.2 为了效率而重新调整执行顺序  222
15.7.3 将派生值保存下来以避免重新计算  222
15.8 行为具体化  223
15.9 调整继承  224
15.9.1 重新调整类和操作  224
15.9.2 提取公共行为  224
15.9.3 使用委托来共享行为  225
15.10 组织类设计  227
15.10.1 信息隐藏  227
15.10.2 实体的内聚性  227
15.10.3 微调包  228
15.11 ATM示例  228
15.12 小结  229
参考文献注释  230
参考文献  230
习题  231
第16章 过程小结  235
16.1 系统构思  235
16.2 分析  236
16.2.1 领域分析  236
16.2.2 应用分析  236
16.3 设计  236
16.3.1 系统设计  236
16.3.2 类设计  236
第三部 分实现
第17章 实现建模  238
17.1 实现概述  238
17.2 微调类  238
17.3 微调泛化  240
17.4 实现关联  241
17.4.1 分析关联遍历  241
17.4.2 单向关联  242
17.4.3 双向关联  242
17.4.4 高级关联  243
17.4.5 ATM示例  243
17.5 测试  244
17.5.1 单元测试  244
17.5.2 系统测试  244
17.6 小结  245
参考文献注释  245
参考文献  245
习题  246
第18章 OO语言  247
18.1 简介  247
18.1.1 C++简介  247
18.1.2 Java简介  248
18.1.3 比较C++和Java  249
18.2 简化的ATM模型  250
18.3 实现结构  250
18.3.1 数据类型  251
18.3.2 类  253
18.3.3 访问控制  253
18.3.4 泛化  255
18.3.5 关联  258
18.4 实现功能  260
18.4.1 创建对象  261
18.4.2 对象的生存期  263
18.4.3 对象销毁  264
18.4.4 链接创建  265
18.4.5 链接销毁  267
18.4.6 派生属性  267
18.5 实践技巧  268
18.6 小结  269
参考文献注释  270
参考文献  270
习题  270
第19章 数据库  274
19.1 简介  274
19.1.1 数据库的概念  274
19.1.2 关系数据库的概念  275
19.1.3 范式  276
19.1.4 选择DBMS产品  276
19.2 简化的ATM模型  277
19.3 实现结构——基础  277
19.3.1 类  277
19.3.2 关联  278
19.3.3 泛化  280
19.3.4 标识  281
19.3.5 RDBMS实现的基本规则小结  282
19.4 实现结构——高级  283
19.4.1 外键  283
19.4.2 检查约束  284
19.4.3 索引  284
19.4.4 视图  284
19.4.5 小结RDBMS实现的高级规则  285
19.5 为ATM示例实现结构  285
19.6 实现功能  288
19.6.1 将程序设计语言耦合到数据库中  288
19.6.2 数据转换  290
19.6.3 封装与查询优化  290
19.6.4 使用SQL代码  291
19.7 面向对象数据库  291
19.8 实践技巧  292
19.9 小结  293
参考文献注释  293
参考文献  293
习题  294
第20章 程序设计风格  298
20.1 面向对象的风格  298
20.2 可复用性  298
20.2.1 可复用性的类别  298
20.2.2 可复用性的风格准则   299
20.2.3 使用继承  300
20.3 可扩展性  301
20.4 健壮性  302
20.5 大规模程序设计  303
20.6 小结  305
参考文献注释  306
参考文献  306
习题  306
第四部分 软件工程
第21章 迭代开发  310
21.1 迭代开发概述  310
21.2 迭代开发与瀑布式开发  310
21.3 迭代开发与快速原型法  311
21.4 迭代的适用范围  311
21.5 执行一次迭代  312
21.6 规划下一次迭代  313
21.7 建模和迭代开发  313
21.8 识别风险  314
21.9 小结  314
参考文献注释  315
参考文献  315
第22章 管理建模  316
22.1 管理建模概述  316
22.2 模型的类型  316
22.3 建模的缺陷  317
22.4 建模会话  318
22.4.1 密室建模  318
22.4.2 轮转建模  319
22.4.3 实况建模  319
22.5 组织人员  320
22.6 学习技术  321
22.7 教授技术  322
22.8 工具  322
22.8.1 建模工具  322
22.8.2 配置管理工具  323
22.8.3 代码生成器  323
22.8.4 模拟工具  323
22.8.5 库  324
22.9 估算建模工作量  324
22.10 小结  324
参考文献注释  325
参考文献  325
第23章 遗留系统  327
23.1 逆向工程  327
23.1.1 逆向工程与正向工程  327
23.1.2 逆向工程的输入  327
23.1.3 逆向工程的输出结果  328
23.2 构造类模型  328
23.2.1 实现复原  328
23.2.2 设计复原  329
23.2.3 分析复原  329
23.3 构造交互模型  329
23.4 构造状态模型  330
23.5 逆向工程的技巧  330
23.6 包装  330
23.7 维护  331
23.8小结  332
参考文献注释  332
参考文献  332
附录AUML图形化表示法  334
附录B术语表  335
部分习题答案  346
索引  368

相关文章

  • 熊猫夜未眠 2推荐

    认识UML工具

    摘要:本文并不会介绍具体的某种UML工具如何操作,总结了一些我使用UML工具的心得体会,希望对大家有帮助! 作者:张传波软件知识园地基地 正文: 常见的可以绘制UML的工具有… ...

  • warren2lynch 推荐

    类图示例:电话(使用协会)

    [什么是类图][1]? Class是用于创建Object的蓝图。Class定义了对象可以做什么。类图给出了应用程序的静态视图。类图是UML的核心。它们基于面向对象的原则,可以在项目的各个阶段实施。类图描述了系统中对象的类型以及它们之间存在的不同类型的关系。UML类图通过显示类…...

  • 关注UML。
    曾少宁  发表于 2011-08-23 09:54:14
    推荐