UML, 即 Unified Modeling Language, 统一建模语言,它涉及的内容很多,但实际开发中,用到的只是它很小的一个子集。它对面向对象的软件开发的描述,包括静态和动态的,有时是很有用的,非常直观。
图
它的表达方式主要是几种图,参下表:
注:具体的 UML 图,部分在这里:https://code.google.com/p/cyiridiumsitewikineed/source/browse/trunk/uml/uml%20notes.zargo
Structural UML diagrams
UML 结构图
Behavioral UML diagrams
UML 行为图
以下都是交互图(Interaction diagram)
阅读材料
建模工具
注:不少建模工具都带有「UML 图 <-> 代码」互转的功能,但是,画 UML 图的目的绝不是为了生成代码(所谓的正向工程),而写代码的目的也绝不是为了画 UML 图(所谓的逆向工程)。UML 图是为了理清思路,不需要反映不重要的细节,代码是一种功能表达,需要写清楚所有的东西,它们各有所用,彼此并不等价,也不能代替,即使互转也不完全。互转功能要少用慎用不用。
后记
曾花了一定时间去研究「规范的」UML,现在想来没有太大必要。UML 图的首要目的就是说明软件需求,结构,而它本身并不是目的。只要能达到软件的目的,怎么用 UML,是否「规范」其实算不上最重要的,甚至用不用 UML 也算不上最重要的。尽管如此,在目前开来,软件开发中应用 UML 是相当普遍的。