UML、RUP,学了很久好像还是什么都稀里糊涂的。然后开始找原因:觉得没有牛人带?没有接受过系统的培训?公司不给条件应用,比如时间上不允许?国内这方面呼声高而真正搞的公司少?……
有次参加微软vs2005的交流会,会下跟微软那位仁兄闲聊关于vs2005中关于开发过程和建模思想的支持,他说“你这个问题其实蛮深刻的,这是产品线的问题”。接着他说:以私人身份说,微软是排斥(或者说是:不提倡、不支持、不看好)UML的,因为微软提倡的是快速开发,而UML那种思想周期太长,而且微软也没有很懂UML的大师级的人。【那位仁兄的大意如此,请不要断章取义、随意发挥】
当时蛮有种醍醐灌顶的感觉。于是就理所当然的想,UML或许并不是必须的,你看人微软,就是没用UML,谁敢说他做的不好?又接着想,UML没有象想象的那样普及和应用是有其自身问题的,因为它包含了太多的容易混淆的、晦涩的概念、思想,除非搞研究否则真没有必要搞清楚。我就看到过很多争吵系统用例和业务用例的帖子、争吵用例写法的帖子(这一问题争论最多)、是组合(Composition)还是聚合(Aggregation)帖子,等等。你说要等那么多人搞明白了这些再去做软件要等到什么时候?所以一下子对于UML的态度蛮消极,觉得UML有点理想化,不够实用。
再接着,听了UMLChina潘加宇老师的公开课,跟他说微软这个态度,他马上说:谁说的?他们今年年初还请我给他们讲课了。他说:我们讲述的是这种思想,这种考虑问题的方式。不管用什么来做软件,他都得考虑对象之间的交互,考虑对象的状态嘛。UML或许以后会被其他方法吞并或没了,但是这种思想得有。因为软件越来越大,越来越复杂,人脑已经应付不了,必须借助这些方法来分析问题。
如此反复,对这个问题认识更加客观:UML只是一种人们在追求解决软件建模问题途中的一个阶段而已,不要去争论它究竟是否是最好的。如果只是想解决现实问题的应用者,拿来用就可以,从某种程度上说,它是目前最好的,但不代表它是完美的,它还需要继续完善甚至革新!