百科问答小站 logo
百科问答小站 font logo



UML 在业界的使用情况如何? 第1页

  

user avatar   du-zhi-gang 网友的相关建议: 
      

不知名小厂,老程序员来回答。

先说观点:像RUP那样繁文缛节的UML已经死了;但UML作为一种优秀的建模语言,仍然是程序员们沟通思考的利器。

UML的各种图当时被设计用于RUP的各个阶段。而RUP因为太重被业界抛弃,被敏捷过程所代替了。敏捷过程中的很多阶段不强调文档,注重的是代码、沟通、快速迭代;所以图也不那么正规,以草图居多。

但这不意味着UML也被完全抛弃了。

软件设计就是建模的过程。这个过程中使用一种建模语言来描述一种模型是常见的事。更别提UML是最完善的建模语言了。拿它一个子集来描述软件设计的模型并不是不恰当的。

就算是敏捷过程里,程序员之间用简化的UML交流可以降低沟通成本。

表现对象关系时,用UML类图来画(主要突出类的层级关系,公共成员。比如讨论设计模式时)。

多对象协作,异步调用,多方通讯等复杂的设计,用顺序图和协作图比较好。(比如,OAuth的文档)

多个系统之间有通讯,描述系统边界和接口,用组件图是很好的选择。(比如表述RESTful的web构架)

RUP需求分析阶段,用UML的用例图来分析需求。尽管敏捷时代不再要求这样,但我一般在初期分析时,仍然经常拿用例图来帮助自己想清楚很多问题。(用户角色,系统边界,输入输出和副作用,核心业务的数据等。往往这些是比较稳定,在迭代中并不常常变化。)

最后,推荐两个极其轻便的UML工具:

ckwnc.com/ 顺序图DSL工具

yuml.me/ 用例图/类图/活动图DSL工具

敏捷讲究“活的文档”,我厂用wiki管理文档版本,而上面两个DSL工具正好是纯文本,适合帖到wiki里面。


user avatar   Ivony 网友的相关建议: 
      

这玩意儿不比看代码方便,完全不知道是干啥用的……


你脑子清醒的话直接写代码就是,你脑子不清醒记住多少符号都没有意义……


你代码写好点我宁愿看IL Spy……


就像流程图,脑子清醒的只需要四个符号就够了,方块、菱形、胶囊形和箭头。脑子不清醒的用了二十多种符号还是看不懂……


user avatar   feng-dong 网友的相关建议: 
      

UML 在业界没有用处。我在 Microsoft 和 Adobe 的工作环境中不用 UML。在 Nortel 用过 UML,但整体上本人和同事对其没有好感。经常接触的人里,Google 与 Facebook 的工程师也基本不用 UML。如果有人觉得 UML 有用,可能他的「业界」跟我的不一样。

拿《 Understanding the Linux Kernel 》这本书来说,里面一个 UML 都没有用到,但是里面的图对任何人设计软件都会很有启发。

这是 Uber 的架构师对 UML 以及其它「标准化」架构方法的评价

Let me start with a few things that might sound surprising.First, none of these designs used any of the standard software architecture planning tools.We did not useUML, nor the4+1 model, norADR, norC4, nordependency diagrams. We created plenty of diagrams, but none of them followed any strict rules. Just plain old boxes and arrows, similarthis one describing information floworthis one outlining class structure and relationships between components. Two diagrams within the same design document often had a different layout and were often added and modified by different engineers.
…… 不用任何标准化的软件架构工具。不用 UML …… 我们画了许多图,但是没有一个按照严格的标准绘制。只用最朴素的框图和箭头。……

UML 的 class diagram 和 sequence diagram 和大多数人讨论软件设计的时候随手画的草图很接近。但是标准化这样的草图付出的资源完全不值得。而后来走火入魔的标准化什么 deploy diagram 就完全是脱离实践的东西了。

建模很重要,diagram 很重要。但是,用来交流的 diagram 应该是:1. 不能完全脱离文字;2. 在附带少量文字的基础上做到 self-evident。UML 定义标准图形完全是自己制造问题。

至于某些张口闭口「扯淡」的人,他的业界和 Microsoft, Google, Facebook, Adobe 都不一样,也不用强求。拿 Nortel 破产说事有什么用呢?根本没搞清楚逻辑。我是在说只有 Nortel 多多少少还用一些 UML,其它过的滋润的公司都懒得用。至于是不是因为用 UML 用到破产就不知道了。至于贴的几个新闻,都是 Microsoft 所谓「拥抱」UML,只能说 Microsoft 这些年走的是上坡还是下坡大家都在看。至于利益相关,我和我接触的人都是为了做软件,某些人似乎像个神棍公司卖 UML。

对于对 UML 还抱有感情的各位,我必须坦白,我脑海里冒出来的就是「shit work」这个概念:

Don't Give Your Users Shit Work

本来用自然的描述和灵活的图表就能解决的问题,非要向着一个过时的标准去靠拢。然后说:

Boy, I spent an hour doing this. I really accomplished a lot today!
—— You didn't. You did shit work。



  

相关话题

  为什么对编程或软件工程感兴趣的女性极少呢? 
  如何用软件工程与uml中的部署图和组件图画出家用电脑连接互联网的实现方式图? 
  计科和软工的区别?报哪个专业好些? 
  好的或者成功的项目,代码就一定美吗? 
  有哪些新手程序员不知道的小技巧? 
  写工业级别代码是种怎样的体验? 
  有哪些你看了以后大呼过瘾的编程书? 
  一名软件工程的学生,需要学习计算机硬件课程吗? 
  什么是社会资源?为什么有人会鄙视程序员没有社会资源? 
  学了计算机后感觉各种软件其实都不可靠,信不过电脑怎么办? 

前一个讨论
如何在面包,馒头,馍等面食的正中间制造一个特大气泡而不影响外围?
下一个讨论
家境一般的人该不该买MacBook Pro?





© 2024-12-23 - tinynew.org. All Rights Reserved.
© 2024-12-23 - tinynew.org. 保留所有权利