热门关键字:  听力密码  单词密码  新概念美语  巧用听写练听力  零起点
图书信息

大象——Thinking in UML(第二版)

中国水利水电出版社
    【作 者】谭云杰 著 【I S B N 】978-7-5084-9234-6 【责任编辑】宋俊娥 【适用读者群】本专通用 【出版时间】2012-02-27 【开 本】16开 【装帧信息】平装(光膜) 【版 次】第1版第1次印刷 【页 数】544 【千字数】788 【印 张】34 【定 价】68 【丛 书】 【备注信息】
图书详情

    本书以UML为载体,将面向对象的分析设计思想巧妙地融入建模过程中,通过贯穿全书的实例将软件系统开发过程中方方面面的知识有机地结合在一起,用生动的语言和精彩的事例将复杂枯燥的软件过程讲解得津津有味。

    全书分为四个部分。第一部分讲述面向对象分析的一些基本概念,及学习建模需要了解的一些基本知识。第二部分对UML的基础概念重新组织和归纳整理,进行扩展和讨论,引申出针对UML的这些概念在面向对象方法中应用方法的思考。第三部分以一个实例贯穿全篇,阐述如何使用UML从头到尾地实施一个项目。第四部分针对在现实中经常遇到并且较难掌握的问题进行深入的探讨,升华在前几篇学习到的知识。

    本书可供正在学习编程、软件工程等知识,准备将来从事IT行业的读者、正努力向设计师或系统分析员转变的技术人员及期望对软件分析设计更上一层楼的设计人员学习和提高之用。

    这是一本讲软件的分析、设计与建模的书

    这是一本让把晦涩的概念与项目的实践紧密结合的书

    这是一本让您与似是而非的感觉做个了断的书

    这是一本充满思想与智慧的书

    字字珠玑,醍醐灌顶

    软件江湖盛传的“UML第一书”,开发人员梦寐以求的“九阳真经”,真正助您打通软件开发“任督二脉”

    ●软件开发,想多复杂就多复杂

    软件其实就是客观世界在计算机中的映射,所以,客观世界有多复杂,软件开发就有多复杂。UML已经为了把客观世界模型化而生,这注定了UML是复杂的。

    ●软件开发,想多简单就多简单

    软件开发的本质,是把客观世界的人、事、物、规则这四个要素进行分析和抽象,然后用计算机的视角进行表达和实现。而UML建模的核心内容——参与者、用例及场景,与人、事、物、规则存在着精妙的对应关系。如果分析和抽象出完成一个任务而涉及的人、事、物、规则不是难事,UML又有何难?

    ●再见,那些似是而非或如鲠在喉的感觉!

    诸如框架、组件、分层开发、原型、迭代等这概念那概念,诸如反射、代理、工厂等这模式那模式,诸如TDD、DDD等这驱动那驱动,无论如何上窜下跳,其本质都无非是为了(或为了更好地)用软件来表达人、事、物、规则这四个要素。通过本书,您将与开发领域那些不太美妙的感觉byebye!

    《大象—Thinking in UML》自2009年出版以来,已经过去了三年。在这三年中,《大象》获得了我预期之中的关注,也获得了我意料之外的荣誉。

    我所预期的,是我坚信《大象》是我所知道的唯一一本结合了面向对象方法、软件工程方法、基于UML的建模方法的全程建模的书;我相信也是唯一一本不仅仅是授技,而是试图论道的书。最重要的是在决定写作本书时,我便决心不写那种引用、翻译、拼凑各种资料的书。因为我在工作中经过学习、思考和实践,已经形成了一套自己的面向对象的建模、分析和设计方法,至少在我自己的项目中用起来得心应手。我觉得应该将这套方法传播开来。既然这套方法能够让我自己的项目获益,我相信也能够让更多的IT从业者获益。我于是非常用心地写下每一个字,每一个观点都是自己的理解和经验总结,几乎倾尽了工作十年的所有经验和思考。我相信这样的书一定会获得读者的喜爱,所以自写作时就期望着能得到读者的肯定。

    而意料之外的,则是受欢迎的程度远远超过了我的预期。我没想到在本书出版的第一年,便在互动网的计算机图书销售排行版上冲上了销售榜的第三名;没想到在接下来的这三年里,销售也一直非常好,至今已经重印了6次之多;更没想到的是本书被许多学校采纳为教材或者课外资料。而最让我欣慰的则是读者的反馈。读者购买本书后的每一条反馈我都会看,不论是赞扬的还是批评的。更多的读者在阅读后会给我来信,要么询问书中不太明白的地方,要么指出书中的一些错误。甚至有读者建立了专门的QQ群来讨论与本书相关的一些问题。

    与冷冰冰的销售纪录相比,我更看重这些热乎乎的评论、讨论。这为《大象》赋予了生命,或者说,之所以会有今天的第二版,它的第二次生命就是由这些读者给予的。读者对《大象》的指正都改进到了第二版中;读者对《大象》更多的期待,更是直接促成了第二版的诞生。

    在准备第二版之前,我曾经想过要不要大动手术。但一方面大部分读者的反馈表明《大象》第一版挺合乎胃口。另一方面,在第一版出版后的这三年里,我应邀做了许多演讲、培训和公开课,在这些活动中我完全依据《大象》的思想和方法来讲课,获得了绝大多数学员的认可和肯定。学员们普遍反映这套方法颠覆了他们的认识,使得他们对面向对象方法、建模方法和UML的理解有了质的变化,经过学习,对软件本身也有了全新的认识。这让我意识到,《大象》里我所传达的思想和方法是符合现实需要的,目前我没有足够的理由对第一版进行大刀阔斧的更改。但第一版也绝不是完美的,除了错误、不严谨的地方,也有读者确实需要但在第一版中未涉及的内容。

    因此,第二版我决定维持原有的主体不变化,包括贯穿全书的例子。一方面改正错误、完善语言组织,更重要的是补充读者期望的内容。基于此,在第二版中,最大的改变是:第一,应许多读者的要求,专门增加了第13章,深入讨论了面向对象方法与面向关系方法的区别与联系,详细讨论了面向对象的数据建模的方法;第二,在第5章中澄清了第一版中所讲的“问题领域建模”与大家所熟知的“领域驱动建模”在概念上的不同,并在第17章中详细讲述了“领域驱动建模”与“用例驱动建模”方法的使用。

    在第二版即将完成的前夕,我完成了人生另一个重要的转变:随着小鱼鱼的出生,我成为了一个父亲。喜悦之情自不必多说,尽管两个月来我再没睡过完整的一觉。我相信孩子将从此永远改变我的生活方式,为了与他一起成长,我得把书送给他,并留下这段话。或许以后,他会拿着书说:看,这是爸爸为我写的,虽然我看不懂,但我知道大象鼻子很长……

    再次感谢您关注和购买本书。您的意见将是我最大的收获!我将与您一同成长。

    谭云杰

    2012年03月

    大象希形
    再版序
    写给读者的话
    关于本书
    如何阅读本书
    免费下载资源使用说明
    Part I 你需要了解

    第1章 为什么需要UML 2
    1.1 面向过程还是面向对象 2
    1.1.1 面向过程方法 3
    1.1.2 面向过程的困难 5
    1.1.3 面向对象方法 7
    1.1.4 面向对象的困难 9
    1.2 UML带来了什么 11
    1.2.1 什么是UML 11
    1.2.2 统一语言 13
    1.2.3 可视化 13
    1.2.4 从现实世界到业务模型 15
    1.2.5 从业务模型到概念模型 17
    1.2.6 从概念模型到设计模型 18
    1.2.7 面向对象的困难解决了吗 20
    1.3 统一过程简介 22
    1.3.1 RUP是什么 22
    1.3.2 RUP与UML 24
    1.3.3 RUP与软件工程 25
    1.3.4 RUP与最佳实践 26
    1.3.5 RUP与本书 27
    第2章 建模基础 29
    2.1 建模 29
    2.2 用例驱动 32
    2.3 抽象层次 34
    2.4 视图 36
    2.5 对象分析方法 37

    Part II 在学习中思考

    第3章 UML核心元素 42
    3.1 版型 42
    3.2 参与者 43
    3.2.1 基本概念 43
    3.2.2 发现参与者 45
    3.2.3 业务主角 46
    3.2.4 业务工人 48
    3.2.5 参与者与涉众的关系 49
    3.2.6 参与者与用户的关系 49
    3.2.7 参与者与角色的关系 50
    3.2.8 参与者的核心地位 50
    3.2.9 检查点 50
    3.3 用例 51
    3.3.1 基本概念 52
    3.3.2 用例的特征 53
    3.3.3 用例的粒度 55
    3.3.4 用例的获得 57
    3.3.5 用例和功能的误区 60
    3.3.6 目标和步骤的误区 62
    3.3.7 用例粒度的误区 64
    3.3.8 业务用例 67
    3.3.9 业务用例实现 67
    3.3.10 概念用例 68
    3.3.11 系统用例 69
    3.3.12 用例实现 70
    3.4 边界 71
    3.4.1 边界决定视界 72
    3.4.2 边界决定抽象层次 72
    3.4.3 灵活使用边界 73
    3.5 业务实体 74
    3.5.1 业务实体的属性 74
    3.5.2 业务实体的方法 75
    3.5.3 获取业务实体 75
    3.6 包 77
    3.7 分析类 79
    3.7.1 边界类 80
    3.7.2 控制类 81
    3.7.3 实体类 82
    3.7.4 分析类的三高 82
    3.8 设计类 83
    3.8.1 类 84
    3.8.2 属性 84
    3.8.3 方法 84
    3.8.4 可见性 85
    3.9 关系 85
    3.9.1 关联关系(association) 86
    3.9.2 依赖关系(dependency) 86
    3.9.3 扩展关系(extends) 87
    3.9.4 包含关系(include) 87
    3.9.5 实现关系(realize) 88
    3.9.6 精化关系(refine) 89
    3.9.7 泛化关系(generalization) 89
    3.9.8 聚合关系(aggregation) 90
    3.9.9 组合关系(composition) 90
    3.10 组件 90
    3.10.1 完备性 91
    3.10.2 独立性 92
    3.10.3 逻辑性 92
    3.10.4 透明性 92
    3.10.5 使用组件 92
    3.11 节点 94
    3.11.1 分布式应用环境 95
    3.11.2 多设备应用环境 95
    第4章 UML核心视图 97
    4.1 静态视图 97
    4.1.1 用例图 97
    4.1.2 类图 102
    4.1.3 包图 104
    4.2 动态视图 105
    4.2.1 活动图 105
    4.2.2 状态图 112
    4.2.3 时序图 114
    4.2.4 协作图 118
    第5章 UML核心模型 124
    5.1 用例模型概述 125
    5.2 业务用例模型 126
    5.2.1 业务用例模型主要内容 127
    5.2.2 业务用例模型工件的取舍 129
    5.2.3 何时使用业务用例模型 130
    5.3 概念用例模型 131
    5.3.1 概念用例模型的主要内容 132
    5.3.2 获得概念用例 133
    5.3.3 何时使用概念用例模型 133
    5.4 系统用例模型 134
    5.4.1 系统用例模型的主要内容 134
    5.4.2 获得系统用例 136
    5.5 领域模型 137
    5.5.1 读者须知 137
    5.5.2 基本概念 138
    5.5.3 领域模型的主要内容 139
    5.6 分析模型 141
    5.6.1 如何使用分析模型 142
    5.6.2 分析模型的主要内容 144
    5.6.3 分析模型的意义 145
    5.7 软件架构和框架 146
    5.7.1 软件架构 147
    5.7.2 软件框架 152
    5.7.3 何时使用架构和框架 153
    5.8 设计模型 154
    5.8.1 设计模型的应用场合 155
    5.8.2 设计模型的主要内容 155
    5.8.3 从分析模型映射到设计模型 157
    5.9 组件模型 158
    5.9.1 何时使用组件模型 160
    5.9.2 广义组件的用法 161
    5.10 实施模型 162
    何时使用实施模型 162
    第6章 统一过程核心工作流简介 164
    6.1 业务建模工作流程 165
    6.1.1 工作流程 165
    6.1.2 活动集和工件集 167
    6.1.3 业务建模的目标和场景 168
    6.2 系统建模工作流程 170
    6.2.1 工作流程 170
    6.2.2 活动集和工件集 172
    6.2.3 系统建模的目标 175
    6.3 分析设计建模工作流程 176
    6.3.1 工作流程 176
    6.3.2 活动集和工件集 183
    6.3.3 分析设计的目标 184
    6.3.4 推荐的分析设计工作流程简介 184
    6.4 实施建模工作流程 186
    6.4.1 工作流程 186
    6.4.2 活动集和工件集 187
    6.4.3 推荐的实施建模工作流程 188
    第7章 迭代式软件生命周期 192

    Part III 在实践中思考

    第8章 准备工作 195
    8.1 案例说明 195
    8.2 了解问题领域 196
    8.2.1 了解业务概况 196
    8.2.2 整理业务目标 197
    8.3 做好涉众分析 197
    8.3.1 什么是涉众 198
    8.3.2 发现和定义涉众 198
    8.3.3 涉众分析报告 200
    8.4 规划业务范围 207
    8.4.1 规划业务目标 207
    8.4.2 规划涉众期望 207
    8.5 整理好你的思路 208
    8.5.1 划分优先级 208
    8.5.2 规划需求层次 209
    8.5.3 需求调研计划 210
    8.6 客户访谈技巧 212
    8.6.1 沟通的困难 212
    8.6.2 沟通技巧 213
    8.7 提给读者的问题 215
    第9章 获取需求 217
    9.1 定义边界 217
    9.1.1 盘古开天——从混沌走向清晰 217
    9.1.2 现在行动:定义边界 219
    9.1.3 进一步讨论 221
    9.1.4 提给读者的问题 224
    9.2 发现主角 224
    9.2.1 女娲造人——谁来掌管这个世界 224
    9.2.2 现在行动:发现主角 225
    9.2.3 进一步讨论 229
    9.2.4 提给读者的问题 232
    9.3 获取业务用例 232
    9.3.1 炎黄之治——从愚昧走向文明 232
    9.3.2 现在行动:获取业务用例 233
    9.3.3 进一步讨论 240
    9.3.4 提给读者的问题 243
    9.4 业务建模 243
    9.4.1 商鞅变法——强盛的必由之路 243
    9.4.2 现在行动:建立业务模型 244
    9.4.3 进一步讨论 254
    9.4.4 提给读者的问题 258
    9.5 领域建模 259
    9.5.1 风火水土——寻找构成世界的
    基本元素 259
    9.5.2 现在行动:建立领域模型 259
    9.5.3 进一步讨论 267
    9.5.4 提给读者的问题 270
    9.6 提炼业务规则 271
    9.6.1 牛顿的思考——揭穿苹果的秘密 271
    9.6.2 现在行动:提炼业务规则 272
    9.6.3 进一步讨论 275
    9.6.4 提给读者的问题 276
    9.7 获取非功能性需求 277
    9.7.1 非物质需求——精神文明是
    不可缺少的 277
    9.7.2 现在行动:获取非功能性需求 278
    9.7.3 进一步讨论 282
    9.7.4 提给读者的问题 286
    9.8 主要成果物 287
    提给读者的问题 288
    第10章 需求分析 290
    10.1 关键概念分析 290
    10.1.1 阿基米德杠杆——找到撬动地球的
    支点 290
    10.1.2 现在行动:建立概念模型 291
    10.1.3 进一步讨论 301
    10.1.4 提给读者的问题 302
    10.2 业务架构 302
    10.2.1 拼图游戏——我们也想造个世界 302
    10.2.2 现在行动:建立业务架构 304
    10.2.3 进一步讨论 309
    10.2.4 提给读者的问题 311
    10.3 系统原型 312
    第11章 系统分析 315
    11.1 确定系统用例 315
    11.1.1 开始规划——确定新世界的万物 315
    11.1.2 现在行动:确定系统用例 318
    11.1.3 现在行动:描述系统用例 320
    11.1.4 进一步讨论 325
    11.1.5 提给读者的问题 327
    11.2 分析业务规则 327
    11.2.1 设定规则——没有规矩不成方圆 327
    11.2.2 现在行动:分析业务规则 328
    11.2.3 提给读者的问题 335
    11.3 用例实现 335
    11.3.1 绘制蓝图——世界将这样运行 335
    11.3.2 现在行动:实现用例 337
    11.3.3 进一步讨论 344
    11.3.4 提给读者的问题 346
    11.4 软件架构和框架 346
    11.4.1 设计架构——新世界的骨架 346
    11.4.2 什么是软件架构 349
    11.4.3 什么是软件框架 349
    11.4.4 软件架构的基本构成 350
    11.4.5 应用软件架构 354
    11.4.6 提给读者的问题 354
    11.5 分析模型 355
    11.5.1 设计功能零件——让世界初步
    运转起来 355
    11.5.2 现在行动:建立分析模型 355
    11.5.3 进一步讨论 362
    11.5.4 提给读者的问题 364
    11.6 组件模型 364
    11.6.1 设计功能部件——构建世界的
    基础设施 364
    11.6.2 现在行动:建立组件模型 365
    11.6.3 进一步讨论 372
    11.6.4 提给读者的问题 377
    11.7 部署模型 377
    11.7.1 安装零部件——组装一个新世界 377
    11.7.2 现在行动:建立部署模型 378
    11.7.3 提给读者的问题 380
    第12章 系统设计 381
    12.1 系统分析与系统设计的差别 381
    12.2 设计模型 382
    12.2.1 按图索骥——为新世界添砖加瓦 382
    12.2.2 现在行动:将分析模型映射到
    设计模型 383
    12.2.3 进一步讨论 388
    12.2.4 提给读者的问题 390
    12.3 接口设计 390
    12.3.1 畅通无阻——构建四通八达的
    神经网络 390
    12.3.2 现在行动:设计接口 391
    12.3.3 进一步讨论 398
    12.3.4 提给读者的问题 400
    12.4 包设计 401
    12.4.1 分工合作——组织有序世界
    才能更好 401
    12.4.2 现在行动:设计包 405
    12.4.3 进一步讨论 410
    12.5 提给读者的问题 413
    第13章 数据库设计 414
    13.1 关公战秦琼——面向对象与关系
    模型之争 414
    13.2 相辅相成——面向对象的数据库设计 416
    13.3 平衡的艺术——数据库设计的方法
    和策略 419
    13.3.1 OR-Mapping策略 421
    13.3.2 对象—关系平衡策略 427
    13.4 进一步讨论——数据库设计到底
    有多重要 428
    第14章 开发 430
    14.1 生成代码 430
    14.1.1 现在行动:生成代码 431
    14.1.2 进一步讨论 434
    14.2 分工策略 436
    14.2.1 纵向分工策略 436
    14.2.2 横向分工策略 442
    14.2.3 选择适合你的开发分工策略 444

    Part IV 在提炼中思考
    第15章 测试 446
    15.1 质量保证——新世界需要稳健运行 446
    15.2 设计和开发测试例 447
    15.3 提给读者的问题 453
    第16章 理解用例的本质 454
    16.1 用例是系统思维 454
    16.2 用例是面向服务的 459
    16.3 善用用例方法 461
    第17章 理解用例驱动 463
    17.1 用例与项目管理 463
    17.2 用例与可扩展架构 464
    第18章 用例驱动与领域驱动 468
    18.1 用例驱动与领域驱动的差异 468
    18.2 领域驱动的理想与现实 469
    18.3 如何决定是否采用领域驱动方法 471
    第19章 理解建模的抽象层次 473
    19.1 再讨论抽象层次 473
    19.1.1 层次高低问题 474
    19.1.2 层次不交叉问题 474
    19.2 如何决定抽象层次 475
    19.3 抽象层次与UML建模的关系 475
    第20章 划分子系统的问题 477
    20.1 面向对象的子系统问题 477
    20.2 UC矩阵还适用吗 477
    20.3 如何划分子系统 478
    第21章 学会使用系统边界 482
    21.1 边界是面向对象的保障 482
    21.2 利用边界来分析需求 483
    21.2.1 边界分析示例一 483
    21.2.2 边界分析示例二 486
    21.3 边界意识决定设计好坏 487
    第22章 学会从接口认知事物 489
    22.1 怎样描述一件事物 489
    22.2 接口是系统的灵魂 490
    第23章 学会正确选择 493
    23.1 屁股决定脑袋——学会综合权衡 493
    23.2 理辩则明——学会改变视角 496
    第24章 学会使用设计模式 499
    24.1 如何学习设计模式 499
    24.2 如何使用设计模式 503
    附录 UML视图常用元素参考 510
    图目录 515
    表目录 524
    后记 525

最新评论共有 1 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册