UML for Java Programmers中文共享版

UML for Java Programmers中文版 UML for Java Programmers中文版.pdf 立即下载

 

                                             UML for Java Programmers中文共享版(待插图片)

著:Robert Cecil Martin
翻译:Wanghaibo; Melthaw Zhang; Orient Sun; LishiFeng
目 录
第一章 针对 Java 程序员的 UML 概述..........................................................10
各种类型的图 .....................................................................................................11
类图(Class Diagram)........................................................................................11
对象图(Object Diagram) ........................................................................... ......13
序列图(sequence diagram)........................................................................ ....14
协作图(collaboration diagram)............................................................... ......15
状态图(State Diagrams)........................................................................ 15
小结 .................................................................................................................. 16
参考文献 ........................................................................................................... 16
第二章 使用图(Diagrams) ..............................................................................17
为什么用模型?................................................................................................. 17
为什么给软件建模? .................................................................................. 17
我们为什么应该在编码前构造一个全面的设计? .......................................18
有效地使用 UML ...............................................................................................18
人员之间传达............................................................................................. 18
最后的文档................................................................................................. 21
保留什么,舍弃什么?............................................................................... 22
迭代精化 ...........................................................................................................22
行为(Behavior)优先.................................................................................... 22
检查结构 .................................................................................................... 24
在脑海中想像这些代码............................................................................... 26
迭代精化 .................................................................................................... 27
最低纲领 ........................................................................................................... 27
什么时候和如何画图 ......................................................................................... 28
什么时候画 UML 图,什么时候停止........................................................... 28
Case 工具.................................................................................................. 29
用文档如何?............................................................................................. 29
用 Javadocs............................................................................................... 30
小结 .................................................................................................................. 30
第 3 页 共 247 页Matrix-与 Java 共舞 (http://www.Matrix.org.cn)
第三章 类(Class)图...................................................................................................... 32
基础知识 ........................................................................................................... 32
类............................................................................................................... 32
关联 ........................................................................................................... 33
多重性........................................................................................................ 33
继承 ........................................................................................................... 33
一个类图的例子................................................................................................. 35
细节 .................................................................................................................. 36
类的构造型................................................................................................. 36
抽象类........................................................................................................ 37
属性 ........................................................................................................... 38
聚合 ........................................................................................................... 38
组合 ........................................................................................................... 39
多重性........................................................................................................ 40
关联构造型................................................................................................. 41
内部类........................................................................................................ 42
匿名内部类................................................................................................. 42
关联类........................................................................................................ 43
关联限定符................................................................................................. 44
小结 .................................................................................................................. 44
参考文献 ........................................................................................................... 44
第四章 序列(Sequence)图............................................................................................. 45
基础 .................................................................................................................. 45
对象、生命线、消息 .................................................................................. 45
创建和销毁................................................................................................. 46
简单的循环................................................................................................. 47
案例和场景................................................................................................. 48
高级概念 ........................................................................................................... 50
循环和条件................................................................................................. 50
花时间的消息............................................................................................. 52
第 4 页 共 247 页Matrix-与 Java 共舞 (http://www.Matrix.org.cn)
异步消息 .................................................................................................... 53
多线程........................................................................................................ 55
活动对象 .................................................................................................... 56
发送消息给接口 ......................................................................................... 57
小结 .................................................................................................................. 58
第五章 用例(use case)................................................................................................. 59
编写用例 ........................................................................................................... 59
什么是用例................................................................................................. 59
主要课程 .................................................................................................... 60
预备课程 .................................................................................................... 60
其他 ........................................................................................................... 61
用例图............................................................................................................... 61
系统边界图................................................................................................. 61
用例关系 .................................................................................................... 62
小结 .................................................................................................................. 62
第六章 面向对象设计(OOD)原则................................................................................. 63
设计质量 ........................................................................................................... 63
臭哄哄的设计............................................................................................. 63
依存关系管理............................................................................................. 64
单一职责原则(SRP)...................................................................................... 64
开放-封闭原则(OCP).................................................................................... 66
Liskov 替换原则(LSP) ....................................................................................... 79
依存关系倒置原则(DIP)..................................................................................... 81
接口隔离原则(ISP) ....................................................................................... 81
小结 .................................................................................................................. 83
参考文献 ........................................................................................................... 83
第七章 dX 实践 85
迭代开发 ........................................................................................................... 85
初始探索 .................................................................................................... 85
功能特征评估............................................................................................. 86
第 5 页 共 247 页Matrix-与 Java 共舞 (http://www.Matrix.org.cn)
探究 ........................................................................................................... 86
计划 .................................................................................................................. 87
发布计划 .................................................................................................... 87
迭代计划 .................................................................................................... 87
中点 ........................................................................................................... 88
速度反馈 .................................................................................................... 88
将迭代组织进管理各阶段 .................................................................................. 89
一次迭代中包括了什么? .................................................................................. 89
结对开发 .................................................................................................... 89
可验收测试................................................................................................. 90
单元测试 .................................................................................................... 90
重构 ........................................................................................................... 91
开放式办公环境 ......................................................................................... 91
持续集成 .................................................................................................... 91
小结 .................................................................................................................. 92
参考文献 ........................................................................................................... 92
第八章 包(Packages) .................................................................................................... 94
Java Packages ................................................................................................. 94
Packages................................................................................................... 94
依赖(Dependencies) ............................................................................. 95
二进制组件.jar 文件(Binary Components) ................................................... 95
包设计的原则(Principles of Package Design)............................................... 96
发布/重用等价原则(The Release/Reuse Equivalency Principle )(REP) 96
公共闭合原则(The Common Closure Principle) (CCP)......................... 97
公共重用原则(The Common Reuse Principle) (CRP)........................... 97
非循环依赖原则(The Acyclic Dependencies Principle) (ADP) .............. 97
稳定依赖原则(The Stable Dependencies Principle) (SDP)................... 97
稳定抽象原则(The Stable Abstractions Principle) (SAP) ...................... 98
小结 .................................................................................................................. 99
第九章 对象图(Object Diagrams) ........................................................................... 100
第 6 页 共 247 页Matrix-与 Java 共舞 (http://www.Matrix.org.cn)
快照 ................................................................................................................ 100
主动对象(Active Objects) ........................................................................... 101
小结 ................................................................................................................ 104
第十章 状态图(State Diagrams) .................................................................................. 105
基础知识 ......................................................................................................... 105
专用事件 .................................................................................................. 106
超状态...................................................................................................... 107
初始伪状态和结束伪状态 ......................................................................... 109
有限状态机图的使用 ....................................................................................... 109
SMC..........................................................................................................110
ICE:案例研究..........................................................................................113
小结 .................................................................................................................118
第十一章 咖啡的启发.....................................................................................................119
Mark IV 专用咖啡机..........................................................................................119
一个挑战 .................................................................................................. 122
常见的烂方案........................................................................................... 123
缺少方法 .................................................................................................. 123
虚类 ......................................................................................................... 124
假抽象...................................................................................................... 124
巨类 ......................................................................................................... 125
咖啡机的解决方案........................................................................................... 126
交叉线...................................................................................................... 126
咖啡机的用户接口.................................................................................... 127
Use Case 1:用户按下”冲煮”按钮......................................................... 127
Use Case 2: Containment Vessel 未准备就绪 ......................................... 128
Use Case 3:冲煮完成............................................................................... 129
Use Case 4:全部结束............................................................................... 130
实现抽象模型........................................................................................... 131
Use Case 1.用户按下”冲煮”按钮(Mark IV) .......................................... 131
实现 isReady()函数.................................................................................. 133
第 7 页 共 247 页Matrix-与 Java 共舞 (http://www.Matrix.org.cn)
实现 start()函数........................................................................................ 134
M4UserInterface.checkButton 怎么样被调用的?.................................... 135
完成咖啡机............................................................................................... 136
这种设计的优势 ....................................................................................... 137
我是怎么样设计出来的? ......................................................................... 138
第十二章 SMC 远程服务:案例学习............................................................................. 151
“货物出门,概不退换” ................................................................................ 151
单元测试 ......................................................................................................... 151
SMCRemote 系统........................................................................................... 152
SMCRemoteClient .......................................................................................... 152
SMCRemoteClient 命令行(SMCRemoteClient Command Line) ............. 152
SMCRemote 通讯协议............................................................................. 153
SMCRemoteClient................................................................................... 154
日志(Loggers) .......................................................................................... 161
The Remote Sessions. ............................................................................ 162
RemoteSessionBase ............................................................................... 163
远程注册 .................................................................................................. 167
远程编译器............................................................................................... 170
文件运载器 FileCarrier ............................................................................. 176
SMCRemoteClient 小结.......................................................................... 178
SMCRemoteServer......................................................................................... 178
SocketService.......................................................................................... 178
SMCRemoteService ................................................................................ 183
SMCRemoteServer.................................................................................. 189
ServerSession ......................................................................................... 192
Three Level FSM ..................................................................................... 194
用户资料库(UserRepository).................................................................... 203
邮件发送器(OReillyEmailSender) ............................................................ 206
代码生成器(PasswordGenerator) ............................................................ 207
小结 ................................................................................................................ 208
第 8 页 共 247 页Matrix-与 Java 共舞 (http://www.Matrix.org.cn)
SMCRemoteClient 单元测试........................................................................... 208
SocketService 单元测试.................................................................................. 217
SMCRemoteServer 单元测试 ......................................................................... 220
其他单元测试 .................................................................................................. 233
ServerController (SMC 生成) .......................................................................... 237
参考文献 ......................................................................................................... 246
第 9 页 共 247 页UML for Java Programmers 中文共享版 Matrix(http://www.matrix.org.cn)
第一章 针对 Java 程序员的 UML 概述
UML(统一建模语言)是一个绘制软件概念图的图形化记法(notation)。人们可以用它
绘制图形,用这些图形来表示一个计划进行的软件设计的问题域,或者用这些图来表示一个
已经完成的软件实现。Fowler(译者注:著名 IT 技术作家)描述它们时分成了三种不同的层次:
概念层(Conceptual)、规格说明层(Specification)和实现层(Implementation),我
们将细述后面两种。
规格说明层和实现层的图形与源代码有明显的关系,实际上,规格说明层的图是准备用
来转换成成源代码的,类似地,实现层的图是打算用来描述已经存在的源代码的。在这些层
次的图形,有许多规则和语义学要遵从,这些图较少有歧义,基本上都有严格的格式。
在另外一方面,概念层上的图形与源代码没有什么严格的关系,它们与人类自然语言相
关。它们是用来描述有关已经存在的人类的问题领域的概念和抽象的速记。它们无须遵从严
格的语义规则,因此它们的意思理解会有歧义、主题可被解释。
考虑一下,以这个句子为例:一条狗(Dog)是一只动物(Animal)。我们能够创建表示这
句话的一个概念层次的 UML 图,见 Figure 1-1。
这个图描绘了通过泛化(generalization)关系连接起来的称为 Animal (动物)和 Dog(狗)
的两个实体。一个 Animal 是一条 Dog 的泛化,一条 Dog 是一种特定的 Animal。这是所有
这张图的意义了,没有什么其他意思可以从中推断出来了。我们可以声称,我们的这条叫
Sparky 的宠物狗是一只动物,我们或者可以谈到属于动物界的生物学的分类上去。因此,
这张图是主题可解释的。
不过,这张图在规格说明层次和实现层次上有更明确的意思:
第 10 页 共 247 页UML for Java Programmers 中文共享版 Matrix(http://www.matrix.org.cn)
这些代码定义了通过继承关系连接的 Animal 类和 Dog 类。但是这个概念模型没有涉及
任何
问题的解决方法的规格说明层次上的图,它不
会去
要有可能,都会伴有对应
的源代码。我们已经看完了我们最后的一个概念层次上的图了。
各种类型的图
UML 图。其余那些将在接下来的章节中要叙述的是那些
你熟
的物理实体有源文
件、
现了一个基于简单的二元树算法的图。
在你思考接下的图之前先自己熟悉一下这些代码。
类图(Class Diagram)
实现了 Comparable 接口的
实例的引用,这个 itsValue 变量简单地持有有些对象的引用。
有关计算机、数据处理和程序,这个规格说明模型描述了程序的一部分。
不幸的是,这些图本身并不能说明它们描绘在哪个层次上了。无法识别出图的层次是造
成程序员和系统分析员无法进行有意义的表达的根源。一个概念层次上的图没有定义源代
码,也不应该去定义源代码。一个描述了某个
寻找任何像概念层那样的问题的描述。
在本书中其余的所有图将是有关规格说明层或实现层的,并只
以下是在 UML 中的主要使用的图的一个非常快速的教程,一旦你读完了它,你将能够
阅读和编写那些你常用的大多数的
练掌握 UML 的细节和体系。
UML 有三类主要的图,静态图(static diagrams)描述了那些不发生变化的软件元素的
逻辑结构,描绘了类、对象、数据结构及其存在于它们之间的关系。动态图(Dynamic
diagrams)展示了在运行期间的软件实体的变化,描绘了执行流程、实体改变状态的方式。
物理图(Physical diagrams)显示了软件实体的不变化的物理结构,描绘
库文件、字节文件、数据文件等等,以及存在于它们之间的关系。
考虑一下在 Listing 1-1 所示的代码,这个程序实
在 Figure 1-2 中的类图(Class Diagram)显示了在 Listing 1-1 所指的程序中的主要类及
其它们之间的关系。它说明了一个 TreeMap 类有一个叫 add 和 get 的公共方法,说明了
TreeMap 持有一个到 TreeMapNode 类的实例 topName 的变量的引用(reference)。它也
说明了每个 TreeMapNode 类持有一个到在某种容器中的其他的两个 TreeMapNode 类的实
例--命名为 nodes 的引用,并且它说明了每个 TreeMapNode 实例持有到命名为 itsKey 和
itsKey 的其他两个实例变量的引用,这个 itsKey 变量持有一个
第 11 页 共 247 页UML for Java Programmers 中文共享版 Matrix(http://www.matrix.org.cn)
我们将下一章节中仔细体会类图的微妙之处。对此现在来说,你仅仅需要知道如下一些
事情:

UML for Java Programmers(中文版).pdf 立即下载

相关推荐

UML for Java Programmers中文版.pdf

UML for Java Programmers中文版.pdf

UML For Java Programmers(1)

读的是matrix的中文共享版.1.UML是一种绘制软件概念图的图形记忆法.可分为3个层次:概念层,规格说明层和实现层.其中规格说明层是用来实现源代码,而实现层是用来描述已经存在的代码2.UML的有三类图:A.静态图:描述不发生变化的软件元素的逻辑结构B.动态图:描述运行期间,软件实体的变化,如执行流程,实体改变状态的方式等C.物理图:软件实体不变化的物理结构,如源文件,字节文

花非花 2543

《UML for Java Programmers》学习笔记

阅读 《UML for Java Programmers.pdf 》后的 学习笔记

《UML:Java程序员指南》的读书笔记

1.  英文版电子书下载:    http://hnwhb.go.nease.net/Prentice Hall - UML for Java Programmers.rar    2.  完全翻译的中文版电子书下载     http://61.172.250.46/yang/private/blog/UML_for_Java_Programmers_cn.rar        相关网站(可惜,已

心静思远 5494

UML For Java Programmers

<br>UML:Java程序员指南<br><br>【原 书 名】 UML For Java Programmers <br>【原出版社】 Pearson Education Prentice Hall/Pearson <br>【作 者】Robert C. Martin <br>【译 者】 黄晓春 <br>【丛 书 名】 软件工程实践丛书 <br><br><br>【内容简介】<br>面向对象大师Robert Martin新作,直言不讳地指出UML的局限性,指导程序员高效地使用UML,以避免盲目使用UML所带来的灾难性后果。<br>Amazon网站读者对本书的评价:<br>● 实际的智慧、提示、技术和技巧<br>● 杰出的UML和OO设计基础读物 极佳的学习材料!<br>● 这本UML书是你惟一所需的<br>● C++程序员也应该看看这本书<br>● 有助于Java设计团队<br>● 团队程序员(和他们的经理)必读<br>● 对UML的最佳诠释,对Java程序员而言,尤其如此<br>● 杰出的UML和OO设计基础读物<br>这是世界一流面向对象大师Robert C. Martin的最新著作。作者以独特的视角,着重为Java程序员描述了UML的利与弊,指导他们何时应该使用UML,以及如何使用UML。通过本书的阅读,Java程序员将能更加恰如其分地使用UML,进一步提高开发效率。<br>可作为软件开发人员的参考书,也可供高等院校\"UML课程\"使用。本书源代码和授课用的幻灯片可在 http://www.objectmentor.com/resources/bookstore/books/UMLFJP获得。<br><br><br>www.objectmentor.com/UMLFJP<br><br><br>http://images.china-pub.com/ebook15001-20000/19998/shupi.jpg<br><br><br><br>http://www.china-pub.com/19998<br><br>

UML for Java Programmers 中文版

UML for Java Programmers 中文版

程序员参考资料汇总_伊甸干果园

本公众号所汇聚的IT资源一律向IT同仁免费开放,望大家奔走相告,如果您对以下汇总资源感兴趣,可以先关注伊甸干果园yd-ggy,然后向公众号索取下载资料的地址。由于汇聚的资源太多,无法全部展示,如果需要的资源不在汇总列表上面,也可以把电子版书名提交给公众号,我们会尽力提供你所需要的资源。同时提供免费技术咨询。 最近遇到一些成员员心浮气躁,刚关注下公众号立马跑路,这样怎么能得到自己想要的资源呢。当我看见留言准备把资源发给你的时候,人呢去哪里了? 向公众号提交5获取下载地址,由于这10年开发积累的资源比较多,百度

yangtonggan的专栏 2827

UML for java programmers(英文版)

一本关于uml 和java的书,是Bob Martin写的,

程序员经典电子书下载(超全)

程序员常下载的电子书! 下载的兄弟注意了,点击下载后,可以在url中看到后缀名:),如果把后缀名改错了就看不了了,所有的资料都有人下载过了,应该都能看。  Python相关的资料还可以看:http://jythoner.iteye.com/blog/569987  新书区  Python源码剖析:下載文件 Python源码剖析.chm (670.21 KB) 

mandagod的博客 1万+

手机OIS马达拆解:从苹果的悬丝到三星的滚珠,不同方案如何影响你的拍照体验?

本文深度解析手机OIS马达技术,对比苹果悬丝式、三星滚珠式和LG记忆合金式三种主流方案的机械原理与成像体验差异。通过详实的数据和测试结果,揭示不同OIS技术如何影响防抖性能、模组厚度及长期可靠性,为摄影爱好者和技术爱好者提供实用选购建议。

weixin_42554408的博客 309

AIDC智算中心建设:资源池化核心技术解析

AI 应用的POD在运行的时候,通过池化运行时访问虚拟GPU、执行AI任务,池化运行时拦截对虚拟GPU的访问请求、转递给池化服务代理执行,池化服务代理通过向智算池化控制器查询虚拟GPU所对应的真实智算资源位置、规格,按查询结果分配智算资源、执行AI任务,如果真实的智算资源位于远程计算节点,则由本地池化服务代理将访问请求转递给远程计算节点上的池化服务代理处理,相关通信经由参数面网络。

u013891230的博客 2432

《UML for Java Programmers》读书笔记——第二章

为了整理自己写的代码,重看了《UML for Java Programmers》。觉得第二章的《Working with Diagrams》特别精彩,讲清了用UML的目的,什么时候用UML,什么时候不用。 作者从为什么要建模开始讨论。so,为什么建模? 1. Models are built to find out if something will work. 2. We i

swimmer2000的专栏 520

Win11下USB-Blaster驱动安装全攻略:Quartus用户必看(附常见问题解决)

本文详细介绍了在Windows 11系统下为Intel FPGA开发工具Quartus安装USB-Blaster驱动的完整流程与常见问题解决方案。针对Win11更严格的驱动签名验证机制,提供了从标准安装步骤到高级故障排查(如禁用驱动强制签名、使用测试模式)的实用指南,帮助用户快速解决驱动安装失败问题,确保FPGA编程调试顺利进行。

weixin_29256771的博客 665

鲍勃大叔的组合拳——清华社[UML for Java Programmers]

2003-09-24 15:18:16 孟岩Robert C.Martin开始发力了。这件事情令我颇为欣喜,也颇为疑惑。号称鲍勃大叔的Martin,在面向对象开发领域素以经验丰富,一言九鼎著称。设计模式四大天王之一的John Vlissides曾不无敬畏地说:“Robert Martin开口说话的时候,最好闭上你的嘴巴乖乖听着。”在2002年之前的漫长岁月里,这位大叔只撰写过一部专著,即1995年

nonocast 2965

逆变器专题(6)-正负序分离(二阶广义积分器DSOGI)

相应仿真原件请移步资源下载DSOGI作为一种常用的正负序分离方法,其可以在电压三相不平衡的状态下实现较为精准的锁相环。

cyc19980105的博客 8808

VASP计算层错能(SFE)全攻略2

本文介绍了使用VASP计算纯镍(Ni)层错能(SFE)的具体步骤。首先构建Ni的FCC单胞并扩展为超胞,通过修改原子位置引入堆垛层错;随后分别计算完美晶体和含层错结构的能量;最后通过能量差与层错面积之比求得SFE值。计算需注意k点网格、截断能和超胞尺寸的收敛性测试,并推荐使用PAW赝势和ASE等工具辅助结构构建。

weixin_50519490的博客 1992

<<UML for Java Programmers>> 第11章读书笔记

这一章提到新手做设计时的常见错误。 我最喜欢这一章,以前看的时候,为了追求所谓的速度,把书中的实例统统略过,真有点买椟还珠的味道。另外说明一下,读书笔记为什么突然跳到第11章。 最简单的原因是因为我对这一章有感觉,觉得有必要做笔记。 常见的如下: 1. 没有方法的类(MissingMethods)。没有方法的类是没有存在价值的,“programs are about behavior!”,

swimmer2000的专栏 3197

PMF5.0计算

EPA PMF5.0 计算步骤

nuistsy的博客 4546

COM6050 - Java and UML for Programmers

News The lecture on Thursday 17 October is cancelled (SJR at meeting in Switzerland) ContentsLectures: Notes, code, exercises

为天加朵云... 779

Verilog中用于时序验证的系统任务[setup][hold][skew][width][recovery][removal]【STA静态时序分析】

下列时序检查语句错误的是() A. $setup(posedge clk, data, tSU) B. $hold(posedge clk, data, tHLD) C. $setuphold(posedge clk, data, tSU, tHLD) 答案:A 解析: 在时序检查函数中,$setup 函数比较特殊,格式是: $setup(data_event, reference_event, limit); 其他常见的检查是: $......(reference_...

DengFengLai123的博客 1万+

【Unity3D渲染】Unity3d实现Photoshop的各种图层混合模式

Adobe Photoshop图层混合原理、Unity ShaderLab图层混合实现

a310989583的专栏 2438
上一篇: Thinking in Enterprise Java by Bruce Eckel et. Al.
下一篇: 使用帮助
SunnyJavaMoon
博客等级 码龄21年 20粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值