Model Driven Architecture 在IT界,术语MDA一般是指在软件开发过程中使用模型。但事实上,OMG把这个术语注册为商标,并将其引申为特殊的使用OMG的建模技术进行模型驱动开发的概念。使用的建模技术的核心是UML和MOF(Meta-Object Facility 元对象设施),本文的这部分将简要讨论MDA,然后将关注MDA中所包含的建模技术,特别是UML和MOF,还将讨论MDA中和我们相关的方法学。
MDA的本质就是区别Platform IndependentModels (PIMs) 和 Platform Specific Models (PSMs)。当使用MDA开发应用程序时,必须首先创建PIM(平台无关模型),然后使用标准映射,转换到PSM(平台定义模型),最后,映射生成最终程序代码,依照OMG的MDA的FAQ:http://www.omg.org/mda“UML是MDA所使用的关键技术,任何使用MDA创建的应用程序都基于标准化的,平台无关的UML模型。”这样,就意味着应用程序的被定义为平台无关的,这样应用程序就是可移植的。这很容易让人回想其Java所宣称的“write once run anywhere”,试图去构建一个平台无关的框架,诸如Swing UI库,必须在性能和平台集成上作出折衷,在过去,这种折衷是很多产品失败的根源,因为这些失败,业界仍然非常怀疑MDA的宣言,在OOPSLA 2003上MDA的session就是佐证。