Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

为什么使用UML的人越来越少了呢? #62

Open
calidion opened this issue Dec 13, 2016 · 0 comments
Open

为什么使用UML的人越来越少了呢? #62

calidion opened this issue Dec 13, 2016 · 0 comments

Comments

@calidion
Copy link
Owner

calidion commented Dec 13, 2016

关于UML

UML是Unified Modeling Language的缩写。
从名字我们可以看出来,他是用于建模的语言。

这里会带来一个问题就是:建模需要语言吗?
答案是需要:比如中文或者英文。

​那么UML是类似于中文或者英文的语言吗?
答案是:不是。UML是一种图形表示方式。

因为UML他这个名字本身就不能描述他本身,是一个很失败的命名。

Unified Modeling Diagrams可能更加符合他要做的事情。

关于UML是不是理论

有些人认为UML是理论,只要是理论一定是没有错的。
但是我要告诉你的事,理论只有符合实际才会发挥出来作用。
理论可以随便提,但是理论要能与实践结合才能真正的被运用起来。

有几个很明显的理论与实际不符合的例子就是:

1、软件工程鼓吹的瀑布模型
2、W3C的XHTML化。
3、CMM/CMMI

UML与它们的情况是类似的。属于与实践结合困难的理论。

UML是不是有价值

UML肯定是有它想实现的价值,但是带它带来的价值肯定没有他消耗的人类学习所花费的代价大。
所有的学习都是有成本的,并不是越难的东西就越有价值。
C语言与汇编可能相比于高级语言要难很多,但是不表示C语言的开发者一定要比其它语言的开发者的收入高。
人类社会的驱动力最终来源于经济的驱动,也就是满足人类需要的东西就会越有价值。
UML显然并没有因为难而让某个人更有价值,或者代表了某种趋势。
所以UML并没有真正的流行起来。
也就是说UML的投入与产出比不是正的。
你会UML不会带来经济上的明显的好处。
这就是UML没有流行起来的原因。
说白了就是并没有解决实际的重要的问题。

UML促进了沟通吗?

对于很多的UML支持者来说,他们认为UML促进了沟通。也许是我的认识水平有限,我始终没有发现UML明显的促进了沟通。很多时候别人拿UML图来跟我交流,我光看图根本无法理解他要想表达什么。对于我这么一个有多年开发经验的人来说,图都这么难懂,更不用说非开发人员。

所以至少从我的角度,我没有发现UML促进了沟通。

UML是有学习热朝期的

曾经有一段时间UML非常风靡,搞得好象不懂UML就不跟软件开发似的。但是现在很少有人再提UML与软件开发的关系了。
因为UML与软件开发本质是没有关系的。
UML不能帮助你写出来更好的代码,也不能帮助你减少代码的BUG。
更不能帮助你获得优良的软件设计。
你也没有见过Rational这帮学究们弄出来什么好用的软件。

所以最终时间是考验所有东西的唯一标准。 UML没有能保留下来。
而反观GNU/Linux,从小小的个人,团体,最终获得了所有的力量的支持。

所以UML的想法很好,但是并不符合实际。软件工程的摸索过程肯定是必要的,但是现实还是很残酷的,不会因为设计的高超而为你预留生存容易。
不适合的会被无情的淘汰。

UML的学习是自由

虽然UML的铅华褪却,但是UML仍是一个事实的存在,并且对于不少人来说还是有价值的,所以我在这里只是陈述一个事实:UML并不能给软件开发带来明显的价值。但是学习UML,了解他的思想,掌握他的用法,完全是个人的自由。我不会反对有人学习UML。如果带着改造UML的心态去学习UML的话,也许可以得到真正符合软件开发区的建模系统也是不一定的。

总结

UML是一个伟大的努力,但是这个努力现在的成果还不是那么的明显。也许未来UML会有所变化。但是今天它与软件开发的关系已经越来越淡了。

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant