UML之死
Posted 软件工程之思
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UML之死相关的知识,希望对你有一定的参考价值。
我现在和大家要讨论的是UML之死。
是的,草木会败,人会苍老,太阳会燃尽……甚至是宇宙在若干亿年后也会消失不见,那么作为一门建模语言,UML也终究会死。
据《论语先进第十一》记载,孔子曾对子路说“未知生焉知死?”,既然现在我们讨论UML之死,那么我们先从UML的出现说起。
20世纪中期计算机技术快速推动着科技的发展,但随着计算机硬件性价比的逐步提高,所需的软件在成本、性能等方面很难满足要求。到了20世纪60年代末,落后的软件生产方式已经成为制约计算机发展的“瓶颈”,亦即出现了大家所熟知的“软件危机”。
为了解决“软件危机”引发的一系列问题,一些更好的软件生产方法和语言出现了,其中20世纪70年代出现的面向对象程序设计语言虽然开始并未引起多少人的重视,但最终对软件工程领域做的贡献大家有目共睹。20世纪80年代出现了一些面向对象的建模语言,经过十余年的知识沉淀,在Booch、Rumbaugh、jacobson三人的努力下于1996年发布了UML(Unified Modeling Language)这个一年后被OMG采纳为基于面向对象技术的标准建模语言。
从UML的诞生我们可以看出,UML是在面向对象技术环境下生根发芽的。现在是2014年,UML已经足足发展了18年。如果把面向对象技术和UML比作人,那么OO早已是不惑之年,正奔走在通往知天命的路上;UML则在现代已是成年人,在孔子时代也马上弱冠了。现在UML具体是个什么样子呢?我想先从一个岗位来说——系统架构设计师。
最近十年“首席架构师”、“软件架构师”等一些舶来词越来越受大家的推崇,甚至比尔盖茨对自己最满意的称呼并非什么世界首富而是“首席软件架构师”。就这样“系统架构设计师”自然而然地进入我国大门并被纳入国家水平资格认证体系中,成为高大上的象征。如果面试程序员应聘者的话问他职业规划的话,答案若非“称为架构师”大家会感到非常意外。作者也是随着大流在2011年也考了个“系统架构设计师”这个软件高级资格证书。
那么我们不禁要问,系统架构设计师都做些什么?这个问题经常会成为论坛、群里面比较热的话题,大家的回答也往往很默契,那就是写写文档、画画图。
好吧,据说架构师就是做这些工作,至少听说很多大型软件公司都有架构组专门来写文档、画图。写文档、画图的目的是什么呢?当然是描述系统的框架、网络架构、方案设计等这些内容,用一个比较专业的词语就是“系统建模”,而其中比较常用的工具就是UML。比如针对系统使用者或者其它角色和系统进行交互的行为我们可以用用例图结合说明来描述。建模主要是起到承上启下的作用,上接客户下接开发人员,让客户的需求能顺利体现在开发出来的产品上。听起来确实蛮不错的,起到桥梁的作用,可实际操作起来并非那么完美。试问,有多少客户懂得UML呢?甚至我要问,有多少开发人员懂得UML呢?好吧,怀疑产生了。
确确实实,UML的普及存在很多问题。一来很多客户不懂UML但是又希望开发商能给出比较上档次的方案文档,另一方面开发人员难以忍受这些文档先行的事情发生,于是UML就这么被动地在夹缝里挣扎着。幸运的是UML并没有被折腾跨,而是一步步成长起来,IBM等那些软件巨头的开发体系就是佐证。所以UML现在不会死,刚成为成年人嘛,以后是青壮年时期。也就是说,UML在未来10-20年将大展身手,不怕你函数式编程的复苏,也不用担心革面向对象的命的技术出现。
那么以后呢?面向对象会不会死?基于面向对象技术的UML会不会接着死?答案无疑是肯定的。文章开头我已经说过,任何事物都有其固有的生命周期,但面向对象现在很成熟,而人类在计算机软件发展方面很长时间没有颠覆式创新了。所以我们可以很乐观地估计,面向对象会继续为软件工程做着贡献,至少20年内面向对象不会死,那么UML也至少会存活20年之久。
那么UML什么时候会真的死掉,这才是我们文章的议题?或许是面向对象技术死亡的那一刻起吧,谁知道呢?我只知道UML终究会死,到底何时死掉我一无所知。人向来对未知充满恐惧,而对UML的何时死亡我却充满兴趣。我所能想到的是,我孩子的孩子某天在我眼前空气中画了几个横竖线然后骄傲地告诉我:“爷爷、爷爷,我给您画出个好玩的游戏您快看看?”。
以上是关于UML之死的主要内容,如果未能解决你的问题,请参考以下文章