《UML面向对象建模与设计》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)布莱哈,(美)朗博著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2011
  • ISBN:9787115224248
  • 页数:378 页
图书介绍:本书是“面向对象建模与设计”领域的经典著作。全书由四个部分组成。第一个部分描述面向对象的概念,以及UML表示法;第二部分描述了软件开发的面向对象方法学;第三部分描述了面向对象设计的实现;第四部分描述了成功的面向对象开发所需要的软件工程实践。

第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

第一部分 建模的概念 12

第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

第二部分 分析和设计 130

第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

第三部分 实现 238

第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

第四部分 软件工程 310

第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

附录A UML图形化表示法 334

附录B 术语表 335

部分习题答案 346

索引 368