`

MOF四层模型(摘抄)

 
阅读更多
MOF的四层模型分别是:元元模型层(M3)、元模型层(M2)、模型层(M1)、运行时(M0)。其中元元模型层包含了定义建模语言所需的元素;元模型层定义了一种建模语言的结构和语法;模型层定义了一个具体的系统的模型;运行时包含了一个模型的对象在运行时的状态等。
本文涉及到的有M2、M1和M0层,下面给出一个例子,首先是M2层,它可以定义一个建模语言的结构和语法,例如:
image005.jpg
这是一个简要的元模型图,它表示Class由Property和Operation组成,这张图符合UML2.0的概念,但是我们也可以这样画:
image006.jpg
这样一来,Class包含三种元素:Attribute、AssociationEnd和Operation,这样我们就创建了一个新的元模型,也可以说创建了一个小的新建模语言。虽然它不符合UML2.0规范。
M1层模型就是我们通常简称的“模型”,它是系统的标准化表示,一般用建模语言来表示一个软件系统,例如下面的汽车和人的系统:
image007.jpg
其中Car类表示汽车的模型,它有两个属性price和type,另外还有一个关联端owner(表示车主),这些都是Property的实例。Person类也有两个属性age和name,还有一个关联端car。可以看出,M1层模型中的元素都是M2层模型元素的实例,例如:
Car和Person是Class的实例;price、type、age、name以及car、owner都是Property的实例;run()和drive()都是Operation的实例。
所谓“建模”实际上就是利用M2层定义的元模型作为建模语言来定义M1层的模型。
再来看看M0层,汽车和人系统的运行时对象图如下:
image008.jpg
因为不态熟悉对象图,所以其中可能有疏漏,不过其意义是一目了然的。其中具体的对象属性就是Property的实例的实例了。例如type=medium,medium是M1层模型中type的实例值,type是M2层中Property的实例值。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics