English

UML:说不可说之说

2005-09-21 来源:中华读书报  我有话说

我是从C++开始学习面向对象程序设计的,那时大约是在1993年。当时就被IO流和BorlandTurboVision这样的OO设计所折服,惊叹于OO编程的优雅,于是致力于学习OO编程。时间过去了5年,当我自以为在OO编程上小有心得时,在网上看到了关于UML的介绍。开始了解UML时,我的心情是复杂的。原来软件是这样设计出来的?如果真像

Booch所说,那么我们一直在造狗窝,一直不知道怎样造大厦?于是有了学习UML的冲动。

但是随着学习的深入,产生了新的问题。UML很难掌握,尽管有“精通UML”之类的书。仅以用例图来说,曾在BBS论坛上遇到无数的人不知道怎样合适地画用例图。国外的人也一样,我想这正是《编写有效用例》(获2000年度美国“软件开发”杂志ProductivityAward大奖,影印、中文版由机械工业出版社出版)这类书籍存在的原因。我发现UML不但难掌握,而且很“肤浅”――它只是一种表示法而已。它只是一种语言,而用这种语言说出的话到底水平如何,显然取决于说话人的其他素养。UML和OO思想哪个重要?没有OOA/OOD的深厚功底,学UML有何用?当我试着用UML来做一些设计时,觉得自己好像不会写程序了。用UML降低了我的开发效率,好处却并不显见。另外还有一些其他的问题也在困扰着我,例如:如何以用例驱动的方式设计一个类似Swing这样的类库?为什么书上的例子举来举去都是ATM机?为什么这么多优秀的开放源代码软件,几乎没有声称是以这种方式来设计开发的?我置疑是否这种方式真的有价值。

语言甚至会束缚思想。维特根斯坦应该是持这种观点的。奥威尔在他的名著《1984》中有一段描述,说明“新话”对思想的控制。UML1.x的版本对实际可能的设计做了许多简化,使我对UML有一种“新话”的感觉。我头脑中,曾一度把UML与“符号暴力”相联系。

据说KentBeck从来不画UML图,最多画点简单的CRC卡片,经常是直奔编码而去。但很多人都不怀疑他是位优秀的OO设计师。于是我大部分时间思考的都是测试驱动,依赖注入,重构,设计已死,代码即设计这类问题,与UML渐行渐远。

直到UMLChina委托我翻译《UML参考手册第2版》的一部分,我才有机会再次思考这个问题:UML到底意义何在?它真的等价于建筑图纸吗?它到底想说什么?

知识分为显式知识和隐式知识。聂卫平九段把他的知识毫无隐藏地写在书上,但不是每个人都能接得住的。除非我也有相当的水平,否则聂九段对我说了等于没说。纸上得来终觉浅,绝知此事要躬行。学习UML不会在短时间内造就OO专家。既然这样,UML作为一种显式知识的表示法,意义何在?

机缘凑巧,我读过一点佛经和故事。给我留下很深印象的是,禅宗六祖惠能是不识字的。禅宗的十六字心传是“教外别传,不立文字。直指人心,见性成佛”。而正是这位不识字的六祖,要求“不立文字”的大德,他的讲稿被整理成了唯一一部由中国人写的被称为经的佛教典籍――六祖坛经。非常矛盾的一件事。坛经记载,惠能还未出家时,听到有人读《金刚经》,“惠能一闻,心明便悟”。这就是“籍教悟宗”。六祖之后,禅宗进入“不立文字”的无字禅时代。视语言为障道之本,视读经为磨砖成镜。然而没有文字终究不便,到了北宋,由于禅宗灯录的大量刊行,参究公案之风日盛,文字禅由之而起。“不立文字”之禅变成了“不离文字”之禅。

忽然间我仿佛明白了UML存在的意义:说不可说之说。“释迦四十九年说,未曾说着一字。”佛曰:不可说。明明不可说,偏又说了那么多。以前我认为,设计OO系统掌握住一个要点就行,即“道法自然”。然后就是“运用之妙,存乎一心”。在这个理论结构里,似乎是没有UML存在的位置。毕竟“道可道,非常道”。但是佛经给了我启发,这些经书在翻来覆去花了很多力气讲一些本来讲不明白的东西。“不立文字”,是“说不得”;“不离文字”,是“说不得的东西如何去说”。对于这种难以言说的东西,人们常常采用寓言或发生在别人身上的故事来说明,即把抽象的道理形象化地释出。UML所做的正是相同的事,于是我们看到了在教科书中大量地采用UML,看到了用UML解释别人的系统设计。也许我们能通过学习教科书中的UML和别人设计的UML实现“籍教悟宗”。UML也是一种想像力的培训,让您在一切都还没有的时候,生动地想象出系统将来的样子。一个伟大的设计师,必是具有超凡想像力的人。UML是渡河的筏,对于已在河对岸的人,自然不需要;对于未渡而想渡的人,却是非常需要的东西。此时我的感觉就是:“向来枉费推移力,今日自在水中行。”

学习UML过程中我遇到的一部分问题,自己觉得已找到了初步的答案。还有一部分问题,仍然不能回答到令自己满意,尚需要继续研修。UML2经过了更多OO专家的审问,集成了更多实际OO设计的经验,参加本书的翻译,使我受益良多。

形而上者谓之道,形而下者谓之器。道在器中,器在道中。道在瓦砾。道在UML。开卷有益,是为此书。

手机光明网

光明网版权所有

光明日报社概况 | 关于光明网 | 报网动态 | 联系我们 | 法律声明 | 光明网邮箱 | 网站地图

光明网版权所有