一、MOF

MOF元模型架构分为四层, 如下图所示分别为

M3 元元模型层;   M2  元模型层;  M1  模型层;   M0 模型实例层(信息层)

下面由深入浅的谈下我对这几层模型的认识。

(参考标准Meta Object Facility (MOF) Specification 

https://www.omg.org/spec/MOF/ISO/19502/PDF

1. 元元模型层

定义:元元模型层由元元数据的结构和语义信息描述组成,这层的主要职责是为了描述元模型而定义的一种"抽象语言"。

案例:在元元模型层,定义了组成元模型不同元素的具体信息,如定义了元素(Class Heading、SuperClass、Contained Elements、Attributes、References、Operations、Constraints、IDL)的结构和语义信息。

2. 元模型层

定义:元模型层是由元元数据组成,元元数据定义了元模型的结构和语义,这些元元数据的实例化集合被称作为元模型。元模型层的主要职责是为了描述模型层而定义的一种“抽象语言”,是对模型层的进一步抽象。

案例:根据元元模型中定义的类元素(Class Heading、SuperClass、Contained Elements、Attributes、References、Operations、Constraints、IDL),他们组合形成类Class的元模型。Class元模型是所有Class模型的上级抽象。除了类元模型(Classes),还有关系(Associations),数据类型(DataTypes),包(Packages)几种元模型。

所有类的模型层都是在继承类元模型的结构框架下构建的。

3. 模型层

定义:根据元模型层确立模型实体规则,而建立的具体模型。

如Classes的具体结构已经在元模型进行了准确定义,Classes包括了Class Heading、SuperClass、Contained Elements、Attributes、References、Operations、Constraints、IDL八类信息内容。UML将形成了Class的成熟结构,我们只需要调用在结构上填充信息即可。

案例:建立一个类,填充了Heading和Attributes信息如下。

 

4. 模型实例层

定义:根据模型层定义的数据结构,填充具体现实数据而形成的模型实例对象

案例:如下图所示,通过具体信息填充(名称和年龄结构)形成数据实例。

二、元数据

下面对元数据、元对象和元模型的定义进行补充介绍。

1. “元数据” 是用来指那些用来描述其他数据的数据。就是指将模型实例层的具体数据信息进一步抽象提炼而出的数据结构,从而用于描述具体数据信息。

2. “元模型” 用来指某种元数据的模型,类似上述模型层,将描述的数据结构进行建模实现。

3.“元对象” 用来指代表示元数据的抽象或技术特定的对象,即上述建模实现后的“男人”类 模型。

三、UML元模型拓展

在采用UML进行建模操作时,大部分的元模型都由MOF定义好了,但是在针对具体业务开展建模实践时,这些元模型往往是不够贴合业务的,因此为了拓展元模型,一些建模软件支持自定义拓展元模型,生成对应的Profile文件,进而实现项目的Profile导入和应用,从而更好地实现面向业务的建模工作。

这方面技术是可行的,笔者也在实践中,实现后会出blog分享。

以上仅是自己的学习和认识,欢迎交流指正。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐