6.2 架构一致性

OMG的MDA为产业界中那些支持模型驱动的方式进行软件开发的技术规范提供了一个概念架构。尽管MDA自身不是一个技术规范,但它代表了一种实现一组内聚模型驱动技术规范的重要方法和规划。通过提供模型创建和转换语言,UML、MOF和相关规范在MDA中发挥着重要作用。

UML的抽象语法使用称为UML元模型的一个UML模型来规定。这个元模型使用了MOF2规范中可以识别的一个受限的、用于构建元模型的UML子集中的构造。元模型中的类称为元类。因此,举个例子,UML元类Element在UML元模型中是一个抽象类:这也意味着它可以从MOF的视角被看做是元类Class的一个实例,它的isAbstract属性为真。另一这样的实例是UML元类Comment,它有一个属性body,该属性也可以从MOF的视角来作为元类Property的一个实例,它的name属性值为“body”。

UML使用自身来定义的事实并不比许多编程语言具有自身语言所编写的编译器或者递归函数(例如阶乘函数)使用自身来定义的事实更让人奇怪。为了确保产生的定义是良构的和唯一的,需要满足一些必须的条件;没有形式化的证明表明UML满足这些条件,但是大量的可互操作的UML实现的存在提供了对于此的重要信心。

使用自身的一个受限子类来定义UML确保了UML模型可以保存到MOF 2资产库中,在那里可以使用MOF特征来对其操纵,并使用遵循MOF 2 XMI映射规范的XMI来对其进行交换。

自从2.4.1,MOF 2.x元模型,包括UML 2.x元模型,都是一个有效的UML 2.x模型。这相比之前的版本是一个重大的简化和一致性增强。MOF和UML的未来版本也将继续以这种方式进行融合。

results matching ""

    No results matching ""