走下神坛的Rose--揭开UML的面纱

最近几日一直在画Case,进入最后的整理阶段,连做几日以前我最女人的女人孙野最擅长的工作,I want nobody nobody But You。


终于抑制不住地想起、想起以前曾答应过N回给吴楠、小青、VV和孙野上一课UML,通常这个时候芝芝都会说“我也要”,(*^__^*) ……

 

今天晚上翻出我2007年9月给同事们培训用的幻灯片,我想还是从最简单的基础知识开始讲起吧,后边会专门讲用例图、状态图这些常用Diagram,并将侧重于和需求分析相关的部分。水瓶月的Rose系列培训响应节能号召,不用电灯、不用会议室、不用投影仪。

 

我先说一下我和Rational Rose的相识,我们是经人介绍才认识的,⊙﹏⊙b。一般在我给人初次讲Rose的时候都会讲这个故事:记得在2000年左右(偏右些),有一个很牛的同事跟我说:在北京找工作,只要面试时候说出Rose这个单词,哪怕你不用去讲什么UML的具体内容,你的薪水都可以要到8K以上。他也成功地一次跳槽拿到了原有薪水的四倍。当时听闻他如此说,我脑海里顿时呈现四个黄金灿灿的英文字母,Rose给我的第一印象就是个高高在上的金山银库。但在随后工作里实际应用中却发现它应该走下神坛。很幸运地遇到一个给予时间和机会、鼓励学习并应用最新技术的老板,在此多说一句,其实并不是所有的领导都“愿意”或者“能够”给予员工学习、培训的时间和机会,所以如果你能遇到这样的机会,请千万把握住,这个年头,找一份工作是很容易的事情,找一份薪水满意的工作也不难,但找一个能正确指引你成长的领导确实是个难事儿。跑题了,赶紧回来,刚才说到神坛,在第一次听同事培训讲UML和Rose的时候,会议室里面所有的人都是头晕状态,没有人能够真真正正地理解它,但由于我们实际项目的整个生命周期中放弃继续使用其他建模工具,全部都使用Rose,从需求的收集和分析、类和接口的设计、数据库的设计等等,所有的系统分析和设计类工作只基于Rose,因此当时也就用了一周的时间,“走下神坛的Rose!”这一口号就开始传遍公司每个人。

 

VV也许这个时候会说了:我的Rose啥时候能走下神坛?

 

我觉得学Rose和学打字差不多,分三个阶段。以前我通常都拿打字举例,不过今天我突然间想起《英雄》里秦王说的那段话:剑道的第一层境界,是“人剑合一”;剑就是人、人就是剑,手中寸草也是利器。第二层境界,是 “无剑之剑”;讲求手中无剑、剑在心中,虽然赤手空拳,却能以剑气杀敌于百步之外。第三层境界,是剑术的最高境界,即手中无剑、心中也无剑,是以大胸怀包容一切,那便是“不杀”,是“和平”。蕙心兰质的芝芝,能悟出点什么?

 

来说说这三个阶段吧!


第一阶段,人剑合一:打字首先需要记住每个字母在哪个位置,Rose也一样,你需要理解什么是用例图、什么是活动图、什么是依赖、什么是聚合……


第二阶段,无剑之剑:打字需要知道如何拼读,只有懂得如何组合这些字母才能打出别人能够理解的文字,Rose也一样,你需要知道在什么情况下用什么图能够表达清楚你的思路和分析结论,也需要知道线的学问,比如在老子和儿子中间需要画继承而不是包含。


第三阶段,手中无剑、心中也无剑:此时你无须关注工具和语法,全部的注意力都只需要放在你需要分析的对象身上即可。

 

因为我参加过全体头晕迷糊的UML培训,深受其害。所以我希望我能尽可能浅显地讲述Rose的故事,举一些有意思的例子让开会爱做垂头栽地运动的吴楠清醒一些。


 

 

看一下目录吧,用活动图做的,这种类型的图大家应该很快可以理解,在之前ROO和互联网的项目中,这一类的图我们通常用Visio来做,以泳道的形式区隔操作主体对象,和这张图的分析思路相同,仅仅是呈现层的不同而已。

 

 

 

UML的定义、特性如下所示,不再重复。需要强调的一点关于书的问题,我把市面上被评价为超级经典的几本UML书全部买下并仔细研读过,发现问题还是蛮多的。切记尽信书不如无书,自从自己开始码字写书,已经深刻地明白这铅字的不能承受之轻。当你看到书上有和我不同的地方,那么极有可能是你没理解它的方言(也许它没错,但肯定我没错,其实就是你错了)。
 

 

 

还记得为赵敏画眉的无忌GG吗?这里讲的是源和目标的依赖关系(包含),我们经常用到它。在使用依赖关系(包含)时,需要想清楚这两个问题:1、源目标是否依赖于目标元素?2、目标元素的改变是否会影响源元素?通常,我们在画某个产品包含什么子模块时,会使用这种关系。
 

 

 

继承,也叫泛化。非常容易理解的一种关系,通常我们在画产品1.0版本和产品2.0版本时会用到继承关系。这里只需要记住箭头是儿子指向父亲方向就可以了。

 

 

有缘来相聚,聚合关系表示目标元素是源元素的部分。这是一种松散的对象间关系,目标元素可有可无,并且可以与其他源元素共享。这个用例图存在错误,你知道错在哪里吗?
 

 

 

 

 

下面这是正确的聚合关系的一张图。九阳神功张无忌可以练习,吴楠也可以练习成为更出色的女人中的男人。返回头看上面那张图,你应该可以明白上面错在哪里。
 

 

 

组合关系,表示目标元素是源元素的组成部分。有两点需要注意:1、部分在某一时刻仅仅只能属于一个整体,其他整体不可以共享部分的任何关系;2、如果整体销毁,它必须将它所有的部分销毁,或者把负责处理它们的权利交给其他的对象。
非常拗口的一段话。这张图也存在错误,是不?
 

 

 

下图所示是正确的组合关系。树叶的生命取决于书的生命,如果树死了,树叶通常会跟着殉情;而一片树叶也只能仅仅属于一颗树。
 

 

 

逆向工程会带来成就感,可惜现在你们几乎用不到。
 

 

 

如果你有好的思想,那么它也是我们的。如果我有好的方法,那么它也是你们的。
 

 

 

应用UML的三种方式,我喜欢边听用户需求边画草图,基本上用户说完,也就可以完成了对需求的简单表现,随后经过提炼、归纳和深入分析,完成蓝图。Rational Rose我只用过2003版本,据说2005支持C#语言,但从未用过,因此编程语言这部分我也未体验过。数据库建模中生成的SQL脚本不太好,还需手动修改才能在SQL Server中正确执行。
 

 

 

UML概念模型的小目录:
 

 

 

UML包括13类事务,4类关系,13类图。事务中,做需求分析时经常用到用例、协作、交互、活动、包、注释。四种关系,都需要掌握。图中经常用到用例图、状态图、活动图,对于非研发的需求分析师,类图、顺序图仅做了解即可。
 

 

 

结构良好的模型应该在语义上是自我一致的,并且与所有的相关模型协调一致。这样方便其他人正确的理解。
 

 

 

UML有4中贯穿整个语言且一致应用的公共机制,因此使得UML变的较为简单。
 

 

 

在这张体系结构的图中,你会发现UML的术语和Rose的用语不同,因此如果初学者不幸拿着一本纯粹的UML书对着Rose这个工具去找东东时会感觉有些不知所措。
 

 

 

小结一下:UML是什么,不是什么?
 

 

讲完啦,虽然这个幻灯是以前就做完的,但写完这篇博文还是花了我好几个小时的时间。
轻松一下,I want nobody nobody But You,看看这个搞笑的MV吧!

posted @ 2010-10-20 13:37  面试宝典  阅读(840)  评论(2编辑  收藏  举报