UML的价值,如何用,有何成就感

现在在做Microsoft Visio的tool validation,做到UML的时候,觉得,阿,没意思,内心快成一片死海了。

没感情,没激情。

那UML要不要用?如何对待?

我查了一下google的数据库,有一句话击中了我的心:

I think UML diagrams can only be useful if they express something in a higher level of abstraction than your code.

完整的答案在下面:

I think UML diagrams can only be useful if they express something in a higher level of abstraction than your code.

Writing UML just for the sake of writing UML becomes unneeded bureaucracy and makes the project and the code less adaptable to changes with no benefit whatsoever.

For example, a UML class diagram showing all the classes on a package, with all their attributes and methods --something that can be easily auto-generated-- provides no value at all: it is at the same level of abstraction than your code. Plus, the code will most surely be a better source for that information because it will always be up to date, and it will probably be documented and organized in a way that is easier to know which methods/attributes/things are more important.

On the other hand, if you have concepts of a higher level of abstraction than what can be expressed expressed on the code, documenting those on a diagram can be a good idea.

For example, a diagram showing the higher level abstract modules on a complex system, with their dependencies and maybe a little description of their responsibilities and what package/namespace they map to in the source-code can be a really useful for a new team member that needs to be introduced to the project, or can also be used to figure out where a new class/functionality should be thrown.

Another example of a useful diagram could be a sequence diagram showing the high-level steps to be taken in a communication protocol. Maybe each step of those have it‘s little quirks and complexities, but it‘s probably enough to describe them in the code itself. The higher level diagram can help a programmer to understand the "big picture" of things easily without needing to worry about the complexities of each interaction.

Anyway, those are just some examples; there are lots of cases where a simple diagram can be of a lot of help. Just remember that you should be doing them only when you cannot express something in the code itself. If you find yourself using UML diagrams to explain the source-code itself, make the soruce-code more self-documenting instead.

Finally, some of the general rules that apply to code can also apply to diagrams: avoid repeating yourself, keep it simple, don‘t fear of changing things (just because something is documented on a UML diagram doesn‘t mean it can‘t be changed) and always think of who will be reading/maintaining those diagrams in the future (probably your future-self) when writing them :)

https://softwareengineering.stackexchange.com/questions/144530/how-important-are-uml-diagrams-for-a-successful-project

只有在code无法描述的时候才用UML,更偏向的是抽象的描述。

Very good.

时间: 2024-10-11 11:23:52

UML的价值,如何用,有何成就感的相关文章

为什么现在UML很少用了

新霸哥发现UML在面向对象的设计中的需求,相关行为.一些体系结构的实现提供了一套综合完整的表示法,但是由于使用的人比较少,初学者不容易快速入门,所以就导致了UML不是那么的受欢迎. UML在开发中有什么样的意义? 架构师可以用UML非常清晰直观告诉开发人员,一套架构整体规划是什么样的,各自之间有什么样的关系,各自职责是什么.开发人员要用UML可以很好的告诉自己以及伙伴,自己的需要做什么任务,准备如何去做,需要什么帮助的资料.这些问题都可以通过UML非常清晰完整的表达出来,比起几十张的文档要简单实

乔春洋:文化资源与文化产业化

文化是人类创造和积累的宝贵财富,是人类生产资源和生活资料的重要源泉,因而被视为一种资源,谓之文化资源.文化资源可以像自然资源一样,通过人类的生产加工,赋予其具体的产品属性和更高的附加值而成为文化产品.       文化产品有广义与狭义之分.广义的文化产品是指人类生产的一切产品,狭义的文化产品是指以满足人类精神需求为主的产品,而以满足人类物质需求为主的产品则是物质产品.我们这里所说的文化产品是取其狭义.       和物质产品相比,文化产品能更好地满足人类新的消费需求,适应新的消费潮流,创造更好的

windows类书的学习心得(转载)

原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千,很多陌生的出版社,很多陌生的作者,很多陌生的译者,书名也是越来越夸张,什么××天精通××,精通××编程, ××宝典等等,书的印刷质量真的很好,纸张的质量也是今非昔比啊,但书的内容好象却是越来越让人失望,也许是我老了,我的思想我的观念已脱离现实社会,也许是外面的世界变化得太快,我编程数月,出去一走,

问答 | 35岁以后怎么混

在分答(在行的付费问答产品)上,有个小伙伴抛给我一个问题,"35 岁以后怎么混?".这个问题好大啊,我都不知道怎么回答,虽然我刚刚过了 35 岁.后来我回想和廖瑾老师(通过在行约的)聊天时她讲自己的精力分配时画的图,觉得正好可以回答这个问题,就从家庭.事业.灵性.健康四个方面蜻蜓点水做了简要描述.回答参考了下图: 60 秒语音很短,每一个方面都只能蜻蜓点水一带而过,来不及展开,所以,我当时回答完专门记下了这个问题,现在展开来聊一下. 这次先说灵性,它是一切的基础. 灵性 佛教里有一种说

如何用Python从海量文本抽取主题?

摘自https://www.jianshu.com/p/fdde9fc03f94 你在工作.学习中是否曾因信息过载叫苦不迭?有一种方法能够替你读海量文章,并将不同的主题和对应的关键词抽取出来,让你谈笑间观其大略.本文使用Python对超过1000条文本做主题抽取,一步步带你体会非监督机器学习LDA方法的魅力.想不想试试呢? 淹没 每个现代人,几乎都体会过信息过载的痛苦.文章读不过来,音乐听不过来,视频看不过来.可是现实的压力,使你又不能轻易放弃掉. 假如你是个研究生,教科书和论文就是你不得不读的

每个人都是超级英雄-《技巧:如何用一年的时间获得十年的经验》

读到这本<技巧:如何用一年的时间获得十年的经验>非常偶然,第一次看到这本书是在朋友茶茶的朋友圈里,于是关注了泰尼大哥的公众号,后来在腾格里沙漠之旅回来的机场上,自己带的书已看完,在机场书店转了好几圈才相中的这本书,原因有很多,但是我更相信人与书的相遇也是一种缘分,甚至与书的作者交流更是. 本书通篇没有什么的废话,更多的是方法论,以及通过真人真事折射出的道理,包括前妻的故事,公司CTO的故事等等.一直不认同文笔好的人是那种词藻华丽的“作家”,而是那种接地气的行文方式,读此书,有种邻家大哥跟你讲道

【Python】初学编程适合学Python?其有何用?

初学编程适合学Python?其有何用? 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多因素造成了,当然市场需求的重要因素.吴军博士对大数据流行的解释与python流行或许有些默契.数据一直以来都存在,只是在历史条件下,由于计算性能和技术发展的原因,与之匹配的数据处理技术还不是很先进,以至于很多数据被我们舍弃了.同样,python语言简洁流畅等多种优点,也会让第一次接触

提升业务价值 创见卓越用户体验 ——APM应用与整合分享

提升业务价值 创见卓越用户体验 --APM应用与整合分享 本文整理自GOPS2016全球运维大会 上海站 APM专场杭州数云运维总监罗兴峰的演讲. 我的分享和前面几位的出发点不太一样,我实际上是APM的用户,前面大家的思路都是如何实现,在腾讯这边他们也是APM的用户,只不过最终自己来解决问题.我自己并不是做互联网技术的公司,我们是一个做业务型的公司,但是我是业务型公司里面的运维,我要保证我们的公司能够很好卖业务的时候才选择了技术. 我今天来的时候碰到了一个情况,和我今天讲的这个事情其实有关系.来

think in UmL(三)

在实践中思考! 在这一部分中,书中作者用实际的案例讲述了从一个个实际项目的可行性分析阶段倒是现阶段的整个过程,让我们奖赏部分学到的UML知识点在实践中的得到学习. 当我们拿到一个项目的时候首先要做的就是“准备工作”.(1)了解问题领域:软件是一种工具,是用来辅助人们解决某一问题的.软件的价值就在于它能够符合问题领域的需要,并达到人们解决问题的期望.(2)做好涉众分析:在了解业务概况和业务目标以后,系统分析员最先要做的事情不是去了解业务的细节,而是发现与这个目标相关的人和物,在课堂上我们已经学习了