《大象-Thinking in UML》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:谭云杰著
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2009
  • ISBN:9787508460468
  • 页数:481 页
图书介绍:本书以UML为载体,将面向对象的分析设计思想巧妙地融入建模过程中,通过贯穿全书的实例将软件系统开发过程中方方面面的知识有机地结合在一起,用生动的语言和精彩的事例将复杂枯燥的软件过程讲解得津津有味。全书分为准备篇、基础篇、进阶篇和总结篇四个部分。准备篇讲述面向对象分析的一些基本概念,及学习建模需要了解的一些基本知识。基础篇对UML的基础概念重新组织和归纳整理,进行扩展和讨论,引申出针对UML的这些概念在面向对象方法中应用方法的思考。进阶篇以一个实例贯穿全篇,阐述如何使用UML从头到尾地实施一个项目。总结篇针对在现实中经常遇到并且较难掌握的问题进行深入的探讨,升华在前几篇学习到的知识。 本书适用于正在学习编程、软件工程等知识,准备将来从事IT行业的读者、正努力向设计师或系统分析员转变的技术人员。

大象希形 2

写给读者的话 2

关于本书 2

如何阅读本书 2

光盘使用说明 2

第一部分 准备篇—需要了解 2

第1章 为什么需要UML 2

1.1 面向过程还是面向对象 2

1.1.1 面向过程方法 3

1.1.2 面向过程的困难 4

1.1.3 面向对象方法 6

1.1.4 面向对象的困难 8

1.2 UML带来了什么 10

1.2.1 什么是UML 10

1.2.2 统一语言 11

1.2.3 可视化 12

1.2.4 从现实世界到业务模型 14

1.2.5 从业务模型到概念模型 15

1.2.6 从概念模型到设计模型 17

1.2.7 面向对象的困难解决了吗 18

1.2.7.1 从现实世界到业务模型 18

1.2.7.2 从业务模型到概念模型 19

1.2.7.3 从概念模型到设计模型 19

1.3 统一过程简介 20

1.3.1 RUP是什么 20

1.3.2 RUP与UML 22

1.3.3 RUP与软件工程 23

1.3.4 RUP与最佳实践 25

1.3.5 RUP与本书 25

第2章 建模基础 27

2.1 建模 27

2.2 用例驱动 29

2.3 抽象层次 31

2.4 视图 32

2.5 对象分析方法 34

第二部分 基础篇—在学习中思考 38

第3章 UML核心元素 38

3.1 版型 38

3.2 参与者 39

3.2.1 基本概念 39

3.2.1.1 参与者位于边界之外 39

3.2.1.2 参与者可以非人 40

3.2.2 发现参与者 40

3.2.3 业务主角 42

3.2.4 业务工人 43

3.2.5 参与者与涉众的关系 44

3.2.6 参与者与用户的关系 45

3.2.7 参与者与角色的关系 45

3.2.8 参与者的核心地位 45

3.2.9 检查点 46

3.3 用例 47

3.3.1 基本概念 47

3.3.2 用例的特征 48

3.3.3 用例的粒度 50

3.3.4 用例的获得 52

3.3.5 用例和功能的误区 54

3.3.6 目标和步骤的误区 57

3.3.7 用例粒度的误区 59

3.3.8 业务用例 61

3.3.9 业务用例实现 62

3.3.10 概念用例 63

3.3.11 系统用例 64

3.3.12 用例实现 64

3.4 边界 65

3.4.1 边界决定视界 66

3.4.2 边界决定抽象层次 66

3.4.3 灵活使用边界 67

3.5 业务实体 68

3.5.1 业务实体的属性 68

3.5.2 业务实体的方法 69

3.5.3 获取业务实体 69

3.6 包 71

3.7 分析类 73

3.7.1 边界类 74

3.7.2 控制类 75

3.7.3 实体类 75

3.7.4 分析类的三高 76

3.8 设计类 77

3.8.1 类 78

3.8.2 属性 78

3.8.3 方法 78

3.8.4 可见性 78

3.9 关系 79

3.9.1 关联关系(association) 79

3.9.2 依赖关系(dependency) 80

3.9.3 扩展关系(extends ) 80

3.9.4 包含关系(include) 81

3.9.5 实现关系(realize) 81

3.9.6 精化关系(refine) 82

3.9.7 泛化关系(generalization) 83

3.9.8 聚合关系(aggregation) 83

3.9.9 组合关系(composition) 83

3.10 组件 84

3.10.1 完备性 85

3.10.2 独立性 85

3.10.3 逻辑性 85

3.10.4 透明性 85

3.10.5 使用组件 85

3.11 节点 87

3.11.1 分布式应用环境 88

3.11.2 多设备应用环境 88

第4章 UML核心视图 90

4.1 静态视图 90

4.1.1 用例图 90

4.1.1.1 业务用例视图 90

4.1.1.2 业务用例实现视图 92

4.1.1.3 概念用例视图 92

4.1.1.4 系统用例视图 92

4.1.1.5 系统用例实现视图 93

4.1.2 类图 94

4.1.2.1 概念层类图 95

4.1.2.2 说明层类图 95

4.1.2.3 实现层类图 95

4.1.3 包图 97

4.2 动态视图 97

4.2.1 活动图 98

4.2.1.1 用例活动图 98

4.2.1.2 对象活动图 101

4.2.1.3 泳道 101

4.2.1.4 业务场景建模 102

4.2.1.5 用例场景建模 103

4.2.2 状态图 104

4.2.3 时序图 106

4.2.3.1 业务模型时序图 106

4.2.3.2 概念模型时序图 109

4.2.3.3 设计模型时序图 110

4.2.4 协作图 110

4.2.4.1 业务模型协作图 112

4.2.4.2 概念模型协作图 113

4.2.4.3 设计模型协作图 113

第5章 UML核心模型 116

5.1 用例模型概述 116

5.2 业务用例模型 118

5.2.1 业务用例模型主要内容 120

5.2.2 业务用例模型工件的取舍 120

5.2.3 何时使用业务用例模型 121

5.3 概念用例模型 122

5.3.1 概念用例模型的主要内容 123

5.3.2 获得概念用例 124

5.3.3 何时使用概念用例模型 124

5.4 系统用例模型 125

5.4.1 系统用例模型的主要内容 125

5.4.2 获得系统用例 127

5.5 领域模型 128

5.6 分析模型 130

5.6.1 如何使用分析模型 131

5.6.2 分析模型的主要内容 133

5.6.3 分析模型的意义 134

5.7 软件架构和框架 135

5.7.1 软件架构 136

5.7.1.1 业务架构 136

5.7.1.2 软件架构 138

5.7.1.3 架构描述 139

5.7.2 软件框架 141

5.7.3 何时使用架构和框架 142

5.8 设计模型 142

5.8.1 设计模型的应用场合 143

5.8.2 设计模型的主要内容 144

5.8.3 从分析模型映射到设计模型 146

5.9 组件模型 147

5.9.1 何时使用组件模型 149

5.9.2 广义组件的用法 149

5.10 实施模型 150

第6章 统一过程核心工作流简介 152

6.1 业务建模工作流程 153

6.1.1 工作流程 153

6.1.2 活动集和工件集 153

6.1.3 业务建模的目标和场景 156

6.1.3.1 场景#1—组织图 156

6.1.3.2 场景#2—领域建模 156

6.1.3.3 场景#3—单业务多系统 156

6.1.3.4 场景#4—通用业务模型 157

6.1.3.5 场景#5—新业务 157

6.1.3.6 场景#6—修改 157

6.2 系统建模工作流程 157

6.2.1 工作流程 157

6.2.1.1 分析问题 158

6.2.1.2 理解涉众需求 158

6.2.1.3 定义系统 159

6.2.1.4 改进系统定义 159

6.2.1.5 管理系统规模 159

6.2.1.6 管理需求变更 159

6.2.2 活动集和工件集 160

6.2.2.1 前景 160

6.2.2.2 涉众请求 161

6.2.2.3 需求属性 162

6.2.2.4 软件需求规约 162

6.2.2.5 用例示意板 162

6.2.3 系统建模的目标 162

6.3 分析设计建模工作流程 163

6.3.1 工作流程 163

6.3.1.1 定义和改进架构 164

6.3.1.2 分析行为 165

6.3.1.3 设计组件(构件) 166

6.3.1.4 设计数据库 169

6.3.2 活动集和工件集 170

6.3.3 分析设计的目标 171

6.3.4 推荐的分析设计工作流程简介 171

6.4 实施建模工作流程 173

6.4.1 工作流程 173

6.4.2 活动集和工件集 174

6.4.3 推荐的实施建模工作流程 175

第7章 迭代式软件生命周期 179

第三部分 进阶篇—在实践中思考 182

第8章 准备工作 182

8.1 案例说明 182

8.2 了解问题领域 183

8.2.1 了解业务概况 183

8.2.2 整理业务目标 183

8.3 做好涉众分析 184

8.3.1 什么是涉众 184

8.3.2 发现和定义涉众 184

8.3.2.1 业主 185

8.3.2.2 业务提出者 185

8.3.2.3 业务管理者 185

8.3.2.4 业务执行者 186

8.3.2.5 第三方 186

8.3.2.6 承建方 186

8.3.2.7 相关的法律法规 186

8.3.2.8 用户 187

8.3.3 涉众分析报告 187

8.3.3.1 涉众概要 187

8.3.3.2 涉众简档 189

8.3.3.3 用户概要 190

8.3.3.4 用户简档 191

8.3.3.5 消费者统计 192

8.4 规划业务范围 193

8.4.1 规划业务目标 193

8.4.2 规划涉众期望 193

8.5 整理好你的思路 194

8.5.1 划分优先级 194

8.5.1.1 涉众优先级标准 195

8.5.1.2 期望优先级标准 195

8.5.1.3 优先级矩阵 195

8.5.2 规划需求层次 196

8.5.2.1 第一层次:业务架构 196

8.5.2.2 第二层次:业务流程 196

8.5.2.3 第三层次:工作细节 197

8.5.3 需求调研计划 197

8.6 客户访谈技巧 198

8.6.1 沟通的困难 198

8.6.2 沟通技巧 199

8.6.2.1 建立平等的对话平台 200

8.6.2.2 做足准备工作 200

8.6.2.3 以我为主 200

8.2.4 改变沟通策略 201

8.6.2.5 把握需求节奏 201

8.6.2.6 记录与反馈 201

8.7 提给读者的问题 202

第9章 获取需求 203

9.1 定义边界 203

9.1.1 盘古开天—从混沌走向清晰 203

9.1.2 现在行动:定义边界 204

9.1.3 进一步讨论 206

9.1.3.1 第一个讨论 206

9.1.3.2 第二个讨论 207

9.1.3.3 第三个讨论 208

9.1.4 提给读者的问题 209

9.2 发现主角 210

9.2.1 女娲造人—谁来掌管这个世界 210

9.2.2 现在行动:发现主角 210

9.2.2.1 第一个例子 211

9.2.2.2 第二个例子 211

9.2.3 进一步讨论 214

9.2.3.1 第一个讨论 214

9.2.3.2 第二个讨论 215

9.2.3.3 第三个讨论 215

9.2.3.4 第四个讨论 216

9.2.3.5 第五个讨论 216

9.2.4 提给读者的问题 217

9.3 获取业务用例 217

9.3.1 炎黄之治—从愚昧走向文明 217

9.3.2 现在行动:获取业务用例 218

9.3.2.1 第一个例子 218

9.3.2.2 第二个例子 221

9.3.2.3 第三个例子 224

9.3.3 进一步讨论 224

9.3.3.1 第一个讨论 224

9.3.3.2 第二个讨论 226

9.3.3.3 第三个讨论 226

9.3.4 提给读者的问题 228

9.4 业务建模 228

9.4.1 商鞅变法—强盛的必由之路 228

9.4.2 现在行动:建立业务模型 229

9.4.2.1 业务用例场景示例 229

9.4.2.2 业务用例规约示例 235

9.4.2.3 业务对象模型 237

9.4.2.4 业务用例实现视图 237

9.4.2.5 业务用例实现场景示例 238

9.4.2.6 包图 239

9.4.3 进一步讨论 240

9.4.3.1 第一个讨论 240

9.4.3.2 第二个讨论 241

9.4.3.3 第三个讨论 241

9.4.3.4 第四个讨论 242

9.4.3.5 第五个讨论 242

9.4.4 提给读者的问题 243

9.5 领域建模 243

9.5.1 风火水土—寻找构成世界的基本元素 243

9.5.2 现在行动:建立领域模型 244

9.5.2.1 提出领域问题 245

9.5.2.2 分析领域问题 246

9.5.2.3 建立领域模型 248

9.5.2.4 验证领域模型 250

9.5.2.5 领域建模归纳 250

9.5.3 进一步讨论 252

9.5.3.1 第一个讨论:为什么需要领域模型 252

9.5.3.2 第二个讨论:怎样选择问题领域 252

9.5.3.3 第三个讨论:领域模型与用例模型 253

9.5.3.4 第四个讨论:领域模型和设计模型 254

9.5.3.5 第五个讨论:领域模型要做到什么程度 254

9.5.4 提给读者的问题 255

9.6 提炼业务规则 255

9.6.1 牛顿的思考—揭穿苹果的秘密 255

9.6.2 现在行动:提炼业务规则 256

9.6.2.1 全局规则 256

9.6.2.2 交互规则 258

9.6.2.3 内察规则 258

9.6.2.4 分类业务规则的意义 258

9.6.3 进一步讨论 259

9.6.3.1 第一个讨论:需求管理和业务规则管理 259

9.6.3.2 第二个讨论:分类业务规则对于开发的意义 260

9.6.4 提给读者的问题 260

9.7 获取非功能性需求 261

9.7.1 非物质需求—精神文明是不可缺少的 261

9.7.2 现在行动:获取非功能性需求 262

9.7.2.1 可靠性 263

9.7.2.2 可用性 264

9.7.2.3 有效性 265

9.7.2.4 可移植性 266

9.7.3 进一步讨论 266

9.7.3.1 第一个讨论:如何采集非功能性需求 266

9.7.3.2 第二个讨论:如何记录非功能性需求 270

9.7.4 提给读者的问题 270

9.8 主要成果物 270

第10章 需求分析 273

10.1 关键概念分析 273

10.1.1 阿基米德杠杆—找到撬动地球的支点 273

10.1.2 现在行动:建立概念模型 274

10.1.2.1 获取概念用例 274

10.1.2.2 分析概念用例 278

10.1.2.3 建立概念模型 280

10.1.3 进一步讨论 285

10.1.3.1 第一个讨论:概念模型和领域模型 285

10.1.3.2 第二个讨论:软件架构的引入 285

10.1.4 提给读者的问题 286

10.2 业务架构 286

10.2.1 拼图游戏—我们也想造个世界 286

10.2.2 现在行动:建立业务架构 287

10.2.3 进一步讨论 292

10.2.3.1 第一个讨论:结构化设计方法和业务架构方法 292

10.2.3.2 第二个讨论:业务构件和业务实体 293

10.2.3.3 第三个讨论:业务架构和软件架构 294

10.2.3.4 第四个讨论:建模的价值 294

10.2.4 提给读者的问题 296

10.3 系统原型 296

第11章 系统分析 299

11.1 确定系统用例 299

11.1.1 开始规划—确定新世界的万物 299

11.1.2 现在行动:确定系统用例 301

11.1.3 现在行动:描述系统用例 305

11.1.4 进一步讨论 308

11.1.5 提给读者的问题 310

11.2 分析业务规则 310

11.2.1 设定规则—没有规矩不成方圆 310

11.2.2 现在行动:分析业务规则 311

11.2.3 提给读者的问题 318

11.3 用例实现 318

11.3.1 绘制蓝图—世界将这样运行 318

11.3.2 现在行动:实现用例 319

11.3.3 进一步讨论 324

11.3.4 提给读者的问题 328

11.4 软件架构和框架 329

11.4.1 设计架构—新世界的骨架 329

11.4.2 什么是软件架构 331

11.4.3 什么是软件框架 332

11.4.4 软件架构的基本构成 333

11.4.5 应用软件架构 336

11.4.6 提给读者的问题 337

11.5 分析模型 338

11.5.1 设计功能零件—让世界初步运转起来 338

11.5.2 现在行动:建立分析模型 338

11.5.3 进一步讨论 345

11.5.4 提给读者的问题 347

11.6 组件模型 348

11.6.1 设计功能部件—构建世界的基础设施 348

11.6.2 现在行动:建立组件模型 349

11.6.3 进一步讨论 355

11.6.4 提给读者的问题 360

11.7 部署模型 360

11.7.1 安装零部件—组装一个新世界 360

11.7.2 现在行动:建立部署模型 361

11.7.3 提给读者的问题 363

第12章 系统设计 364

12.1 系统分析与系统设计的差别 364

12.2 设计模型 365

12.2.1 按图索骥—为新世界添砖加瓦 365

12.2.2 现在行动:将分析模型映射到设计模型 366

12.2.3 进一步讨论 370

12.2.4 提给读者的问题3 72

12.3 接口设计 373

12.3.1 畅通无阻—构建四通八达的神经网络 373

12.3.2 现在行动:设计接口 374

12.3.3 进一步讨论 380

12.3.4 提给读者的问题 382

12.4 包设计 383

12.4.1 分工合作—组织有序世界才能更好 383

12.4.2 现在行动:设计包 388

12.4.3 进一步讨论 392

12.5 提给读者的问题 395

第13章 开发 396

13.1 生成代码 396

13.1.1 现在行动:生成代码 397

13.1.2 进一步讨论 401

13.2 分工策略 402

13.2.1 纵向分工策略 402

13.2.2 横向分工策略 407

13.2.3 选择适合你的开发分工策略 409

第14章 测试 410

14.1 质量保证—新世界需要稳健运行 410

14.2 设计和开发测试例 411

14.3 提给读者的问题 417

第四部分 高级篇—在提炼中思考 419

第15章 理解用例的本质 419

15.1 用例是系统思维 419

15.2 用例是面向服务的 423

15.3 善用用例方法 425

第16章 理解用例驱动 427

16.1 用例与项目管理 427

16.2 用例与可扩展架构 428

第17章 理解建模的抽象层次 431

17.1 再讨论抽象层次 431

17.1.1 层次高低问题 431

17.1.2 层次不交叉问题 432

17.2 如何决定抽象层次 432

17.3 抽象层次与UML建模的关系 433

第18章 划分子系统的问题 434

18.1 面向对象的子系统问题 434

18.2 UC矩阵还适用吗 434

18.3 如何划分子系统 435

第19章 学会使用系统边界 439

19.1 边界是面向对象的保障 439

19.2 利用边界来分析需求 439

19.2.1 边界分析示例一 440

19.2.2 边界分析示例二 442

19.3 边界意识决定设计好坏 444

第20章 学会从接口认知事物 446

20.1 怎样描述一件事物 446

20.2 接口是系统的灵魂 447

第21章 学会正确选择 449

21.1 屁股决定脑袋—学会综合权衡 449

21.2 理辩则明—学会改变视角 450

第22章 学会使用设计模式 455

22.1 如何学习设计模式 455

22.2 如何使用设计模式 459

附录 UML视图常用元素参考 466

图目录 471

表目录 479

后记 480