模型驱动架构(MDA)是OMG提出的一种新的软件开发模式。该方法将软件开发完全基于所谓的“元模型”。我们可以接触到的元模型包括UML,SysML,SPEM或CWM。通常公认的元建模包含四层体系结构:
- 元元模型 (meta meta model)M3
- 元模型(meta model)M2
- 模型(model)M1
- 用户对象(user object)M0
一个元模型是一个元元模型的实例。元模型层的主要责任是定义描述模型的语言。一般来说,元模型比定义它的元元模型更加精细,在元模型层上的元对象的例子如:类、属性、操作和构件。
同样,模型作为元模型的实例,拥有更为详细的定义。用户对象则为模型的实例。
在eclipse的EMF框架中,有两个元模型ECore和Genmodel。ECore包含类相关的信息。Genmodel包含其他额外的codegeneration信息。其中像ECore又被称作EMOF(MOF的一个子集)。EMOF可以看作是一个自描述模型,通常处于M2层.用ECore可以定义模型,也就是.ecore文件,这些模型处于M1层。而.ecore模型实例处于M0层。
在此基础上,软件开发将逐渐由以开发人员为主导向以架构人员为主导过渡。