如果说一曲美妙的乐章是作曲家根据音乐理论进行创作最后用标准的五线谱记录下来,相信不会有什么疑问。实际上RUP与UML的关系类似音乐理论和五线谱的关系。相信很多人并没有考虑过这个问题,他们会觉得统一过程和UML就是一个东西,统一过程就是UML,UML就是统一过程。这个错误的认识,其实是因为统一过程采用了UML作为基本程序,再加上统一过程和UML都来自三位面向对象大师的研究成果,都出自Rational公司。但是从本质上说,统一过程和UML是不同的两个领域,UML是一种语言,用来描述软件生产过程中要产生的文档,统一过程则是指导如何产生这些文档以及文档要讲述什么的方法。虽然现在统一过程是知道UML的方法中最著名、应用最广、可能也是最成功的一个,但这两者却不是完全不可以分开的。
认识到这一点,大家的一些疑惑就能解开了。所有初学UML的朋友都会以学习UML必须同时学习统一过程,而由于统一过程本身的庞大和复杂,成为了学习UML的障碍。更多的UML学习者不知道UML该怎么用,有什么地方用,在什么时候用,用UML的目标是什么。相信初学者最大的疑惑就是这些吧?
事实上,只要认识到RUP与UML并不是天生一体的,它们只是软件方法和建模语言的一个完美结合,然后更进一步认识到其实软件过程是比UML更重要更本质的东西。我们就可以转变思维,不再把UML和RUP混在一起造成方法和语言的混淆不清,而是站在软件过程的角度,先了解一个软件项目是怎么做的,再去UML中寻找需要的工具,用UML中适合的工具把软件过程要达到的要求记录下来。
实际上不仅仅是RUP和UML,对软件项目来说,面向对象也好,面向过程也好,UML也好,UC矩阵也好,这些都不是最重要的,软件项目真正的灵魂是软件过程,软件过程的需要才是这些工具和语言诞生的原因,因此建议在学习UML之前,应当先系统学习软件过程。只有掌握了软件过程,才会知道为什么要有用例,为什么要有分析模型;站在软件过程的立场,那么孤独的UML视图才会变得有生命力,才会知道在什么时候,在什么地方需要用什么样的UML图符来表达软件的观点,也才会知道UML的那些视图到底在软件开发过程里起到了什么作用。认识到这些,UML的元模型和视图就不会再面目可憎,它们是一群有着强大能力的精灵,帮助你在负责的软件工程道路上搭起一座座通向光明的桥梁。