你的位置:软件知识原创基地 >> 知识海洋 >> 软件设计 >> 详细内容 在线投稿

大话UML

热度3830票  浏览1658次 时间:2009年11月27日 11:55


UML的信任危机

有一次我在做这个课程培训时,有位同学跟我说,他曾经听过不少UML培训,以为UML培训就是这个样子,没想到我的课程让他大开眼界,重新认识了UML!他对课程的赞美让我非常高兴,但目前业内UML面临着比较普遍的信任危机,批评UML、认为UML用处不大的文章随处可见,这让我十分担忧。

我读书时从来没有听说过UML这回事,仅是在工作后才开始学习。很多书籍将UML讲得过于复杂、过于理论化,其实完全没有必要,学以致用才是学习的最终目的。在实际工作中我不断地体会UML的魅力,逐步形成了自己的一套理解,我在大量的项目中使用UML了,并且将我的经验传授给同事。UML在很多公司没有能用好,在业内有严重的信任危机,我觉得是以下的原因导致的:

原因一:合适的UML学习资料不多。
市面上的资料、书籍主要是两类,一类是国外骨灰级高手写的,一类是国内的UML理论家写的。
国外高手的书籍,很多写得过于高深抽象,又加上翻译后影响了原意,这些书籍一般都难以让我们理解。
国内理论家写的书籍,内容确实很丰富,部分书让人读了还会觉得很兴奋,问题是没有能处于“学以致用”的目标来编写,我甚至怀疑有些作者基本上没有实际在项目中使用UML的经验。
UML大师 Martin Fowler 编著的《UML Distilled》(中文译名:UML精炼),我觉得是难得的一本UML好书,推荐大家阅读。

特别声明:
如需转载此文,请给出指向本网站的连接,如下:
作者:张传波
摘自:http://www.umlonline.cn
如不能按此要求,请不要转载此文。

 

原因二:有实战经验的UML讲师太少。
不少UML讲师是来自某某大学、学院或者是研究所的,很少见到来自企业的。如果不能处于实战的角度讲授UML,UML的威力就会大打折扣,这样的培训训练出来的学生,实战水平不会得到很大提升。

原因三:对学习UML普遍存在严重误解。
我觉得学习UML最难的应该是转变思维习惯、提升思维水平,而不是UML的语法。UML中的每种符号,都有很特定的含义,你需要在实际案例中去体会,而不是只听理论讲解。不要指望学习了UML你就会马上提高了一个档次,如果你的思维方法不得到提升,你只是UML理论家,你可能不学UML会更好,这些UML理论反而会在实际工作中限制你的发挥。

 

UML知识超级扫盲

UML这三个字母的全称乃Unified Modeling Language,直接翻译就是统一建模语言,简单地说就是一种有特殊用途的语言。你可能会说,语什么言,一堆图形,还说是语言?此言差矣,咱们的文字还不是从图形(象形文字)开始的嘛,语言是包括文字和图形的。其实有很多内容文字是无法表达的,你见过建筑设计图纸吗?里面还不是很多图形,光用文字能表达清楚建筑设计吗?在建筑界,有一套标准来描述设计,同样道理,在软件开发界,我们也需要一套标准来帮助我们做好软件开发的工作。UML就是其中的一种标准,注意这可不是唯一标准,只是UML是大家比较推崇的一种标准而已,说不定以后有一个更好的标准可能会取代她呢!UML并不是官方的标准,也没有法律规定你在软件开发中一定要用UML,不能用其它的,我们的目标就是善用包括UML在内的各种标准,来提高我们软件开发的水平。

UML由1.0版发展到1.1、1.2、...,到现在的2.0、2.x,本论坛将会以2.0版本为基础开展讨论。网络上、书籍、还有各种UML工具软件,各自基于的UML版本可能会不一样,大家在学习过程中可能会有一些困惑,不过没关系,本课程在某些关键地方会描述1.x与2.0的差异的。

UML有很多种图,大体可以分为两类:
1.结构型的图(Structure Diagram)
类图(Class Diagram)
对象图(Object Diagram)
组件图(Component Diagram)
部署图(Deployment Diagram)
包图(Package Diagram)
2.行为型的图(Behavior Diagram)
活动图(Activity Diagram)
用例图(Use Case Diagram)
状态机图(State Machine Diagram)
序列图(Sequence Diagram)
协作图(Communication Diagram)
时序图(Timing Diagram)

注:UML图的中文名字,因为翻译的原因可能会有所不一样,大家要留意看英文名字噢!

在我们软件设计时,我们需要考虑需要那些类、哪些组件、系统最后怎样部署等,这些内容可以看成是“静态”的,我们可以利用UML的结构型的图来设计。
同时,我们也需要考虑软件如何和用户交互,类、组件、模块之间如何联系等“动态”内容,我们可以利用行为型的图来设计。
当然所谓“静态”和“动态”不是绝对的,对UML还不是很熟悉的朋友,先大致这样了解便可。

TAG: UML
顶:230 踩:262
对本文中的事件或人物打分:
当前平均分:-0.65 (1110次打分)
对本篇资讯内容的质量打分:
当前平均分:-0.24 (1061次打分)
【已经有1167人表态】
212票
感动
114票
路过
138票
高兴
166票
难过
134票
搞笑
125票
愤怒
118票
无聊
160票
同情
上一篇 下一篇
软件知识大学