附录 M3:
UML元元模型与MOF及CDIF

的一致

 


版本1.0

1997年1月13日(draft 12/18/96)

 

 

2800 San Tomas Expressway

Santa Clara, CA 95051-0951

http://www.Rational.com

 

 

版权所有 1997瑞理软件(Rational Software)公司、MCI systemhouse公司以及Unisys公司。

本文档允许被影印、电子发行或被翻译为外语,如果完全复制本文档,请全文引用本提示,并包含下列声明:

通过环球网(WWW)地址 http://www.rational.com 可以得到统一建模语言(UML)的最近更新版本。

 

 

目录

1. 简介

2. 动机

3. 方法

4. 元元模型映射

5. 问题: UML到MOF的映射

6. 问题:UML到CDIF的映射

7. 小结

 

表1:元-元对象对照

表2:元数据类型对照

 

 

1.简介

本节的内容是关于OA&D Facility (OA&DF) 元元模型和与之相关的两个标准的元元模型体系结构上的一致,这两个标准是:OMG Meta-Object Facility (MOF)标准和由电子工业协会(EIA)提出的CASE Data Interchange Format (CDIF)标准。

OA&DF元模型和MOF元元模型的alignment在OA&D Facility RFP-1中有明确要求,它规定了提议“必须表达出OA&D对象的元模型构造和Meta-Object Facility (MOF)元元模型规格说明之间的相互关系。” 它更进一步指出“在两种不同工具的修正期间,将MOF和OA&D的相应成分一致起来是可能的。”

由于MOF和OA&D是同时提出的,还没有一个MOF元元模型的标准。为了进行这方面的工作,我们将使用一个由我们的合作伙伴Unisys Corporation提出的MOF元元模型,见OMG Common Facilities RFP 5:Meta Object Facility。 我们把Unisys MOF的元模型作为一个严格的MOF元元模型的代表,并且在本文档后续讨论中把它作为“MOF元元模型”。

OA&DF和CDIF在OA&D Facility RFP-1的6.2.6节被附带要求,它规定:“与OMA Guide中的3.4.17节一样,提议应当说明它们对已有的相关工业标准的使用情况,或者证明这种使用为什么是不合适的。CDIF是在建模和其相关工具(如CASE工具)之间进行信息交换的一组标准。CDIF正在被电子工业协会的CDIF Division(一个ANSI授权的标准化组织)制定为标准,被ISO/IEC JTC1/SC7/WG11,Project 7.28(ISO/IEC CDIF)定为标准。本提议的工具部分建议使用CDIF作为各种工具之间交换对象模型的传送媒介。

2. 动机

把OA&DF元元模型和MOF及CDIF元元模型一致起来有很大的优越性。在MOF下,元元模型一致有助于OA&DF和MOF之间的互操作性。考虑这个问题时,指出不同工具的适用范围不同是很重要的。MOF的目标是在整个应用开发周期都允许互操作性,而O&ADF则着眼于分析和设计阶段。一个OA&DF-MOF互操作的例子是用与MOF一致的信息库存放OA&DF对象模型。

对于CDIF的情况,元元模型一致将有助于与CDIF一致的模型交换格式的开发。本提议的UML一致的交换格式部分说明了CDIF传送格式如何用于在OA&DF工具之间交换对象模型。

3. 方法

 

在对体系结构的比较中,对抽象的不同层次进行明确区分是很重要的。这样,相似的东西可以用统一的方式来比较。在元建模时,有几个典型的抽象层次,把模型和模型,元模型和元模型,已及元元模型和元元模型进行比较是很重要的。

OA&DF,MOF和CDIF都基于传统的四层元建模型体系结构,这种结构已在本提议的附录M2:UML元模型中作了说明。既然元元模型层在元建模体系结构中起基础结构性作用,那么一致的重点就是对元元建模层的相似概念的映射。这将在比较中维持一个统一的抽象级别并在必要时在抽象的较低层次上为一致提供基础。

我们给出一张表,对元元建模层相似概念的映射关系进行总结。对于不具有类比性的概念,将在后面的章节中单独讨论。

4. 元元模型映射

 

绝大多数UML、MOF和CDIF元元对象之间能产生简单的相互映射关系。表1和表2总结了它们的元元模型之间的这种相似性。

 

 

UML 元元模型 MOF 元元模型
(Unisys Response)
CDIF 元元模型
元元对象    
元对象 元对象 元对象
元模型 元模型 主题领域
元类型 元类型 Attributable元对象
元类 元类 元实体
元数据类型 元数据类型 元元属性

元属性的数据类型

元关联 元关系 元关系
元角色 元引用 [超出本范围]
元关联 + 元角色isAggregate = true 元聚集 元关系
元关联 + 元角色
isAggregate = true
isChangeable = false
source = 0..1
元组合 元关系
元成员 元特征 [没有通用超类型]
元属性 元属性 元属性
元操作 元操作 [超出本范围]
元参数 元参数 [超出本范围]
元限制条件 元限制条件 元对象的元元属性限制条件

 

 

 

表1: 元元对象比较

 

 

UML 元元模型 MOF 元元模型
(Unisys Response)
CDIF 元元模型
元数据类型 元数据类型 元元属性

元属性上的数据类型

元布尔值 元布尔值 数据类型 = 布尔值
元枚举 元枚举 数据类型 = 枚举, 在元元属性论域上取值
元表达式 元文本 数据类型 = 文本
元多重记号 元多重记号 数据类型 = 字符串
元名字  [通过命名服务,从已命名的对象继承而来的元对象] 数据类型 = 标志
元数 元数
元浮点数
元整数
数据类型 = 浮点数
数据类型 = 整数
元点 元坐标 数据类型 = 点
元字符串 元字符串 数据类型 = 字符串
元时间 元时间
元日期
元时间戳
数据类型 = 时间
数据类型 = 日期
元未解释的 元斑点 数据类型 = 文本

下面的几节讨论关于元元模型映射中有疑问的一些领域。

5. 问题: UML到MOF的映射

 

一般说来,可以从UML元元模型直接映射到MOF元元模型。MOF元元模型比UML元元模型的应用范围更广,而且也更复杂,体现在其元元对象的数量更多。MOF元元模型比UML元元模型更复杂的部分原因在于前者支持行为语义,而UML元元模型则仅通过其元元对象的元操作和元参数对行为语义提供有限的支持。

表1表明在多数情况下可以从UML元元模型直接映射到MOF元元模型。一个例外是元元关系,UML元元模型使用元关联与元角色一起实现了元元聚集和元元组合关系。MOF元元模型则用分开的元元对象、元聚集和元组合,达到了同样的目的。两种元元模型都声称元元一般化是元元关联在元类型上的反射。

两种元元模型区别的另一方面涉及到元类型和表现关系的元元对象之间的元元关系。在UML中元元模型中,元类型通过元角色和元关联联系起来,元角色为之提供了一个间接的层次。结果,元类型和元关联成了独立的两部分,它们不能相互封装。在MOF元元模型中,元关系是元类型的一个直接子类型。结果,元元关系可以包容属性和操作并且可以一般化。

表2表明元元模型之间的元数据类型间也可以直接地映射。同样地,这里MOF元元对象比UML元元对象要多。特别地,MOF元元模型包含附加的元元对象用来表达数字和时间。

 

 

6. 问题:UML到CDIF的映射

 

多数情况下,UML元元模型也可以直接映射到CDIF元元模型。UML元元模型比CDIF元元模型应用范围更广并且也更复杂,体现在其元元对象的数量更多。造成UML元模型更复杂的部分原因在于设计者有意地选择一个语义丰富的抽象层次以支持复杂系统的设计和支持工具的交换。UML元元模型通过元元对象的元操作和元参数对行为语义提供有限的支持。而CDIF元元模型则主要着眼于数据交换而不强调行为。

表1表明在许多情况下可以直接从UML元元模型映射到CDIF元元对象。例外的地方有元角色、元操作和元参数,它们超出了其范围。同样应注意的是,CDIF元元模型在元元关系之间不加以区分,并且它也没有用来为元元聚集和元元元组合建模的构件。

表2表明元元模型之间的元数据类型间也可以直接映射。注意,CDIF通过元元属性(数据类型)定义元数据类型而UML用元元类型来定义它们。和MOF一样, CDIF元元模型包含了附加的元元对象以表达数字和时间。

UML一致交换格式一节中描述了为在CASE工具间转换与UML一致的模型所作的处理及映射。该映射假定在抽象层次的术语上和在使用概念的种类上,UML元元模型和CDIF元元模型是相似的。一般该映射是直接的,但存在下列问题:

由于元元模型的作用范围不同,因此没有对元行为作映射。

CDIF需要支持不完整模型。因此,所有的多重性在CDIF映射中都应当是可选择的。另外,CDIF区分对待必选的和可任选的元属性。结果,所有的UML元属性在CDIF转换中都是任选的。

CDIF不但允许模型(一个元模型的实例)的交换,而且在同一个传送内部,它还提供了定义或者扩展一个元模型的功能。这种能力在纯UML模型中没有提供。

在CDIF元模型中的任何元素有一个指定的元元属性,被称为CDIF元标志。一个模型中的任何元素有一个指定的元属性,被称为CDIF标志。这在UML中是没有的。 为了完成传送,我们根据由CDIF标准定义的同样的模式,给CDIF标志赋值(任意值)。

CDIF要求对任何传送者都使用Foundation Subject Area。所有的UML元模型元素,为了和UML一起使用CDIF,被认为RootEntity或者RootEntity.IsRelatedTo.RootEntity的子类型。

7. 小结

 

在抽象层次、使用的元元对象的种类这两方面,UML、MOF和CDIF的元元模型很一致。所有这些元元模型都是基于四层元建模体系结构的,在这种结构中, 元元模型是基础性结构。在元元模型中,类似的元元对象是直接映射的,因为它们的结构相对来说是彼此同型的。

把OA&DF 元元模型和MOF元元模型及CDIF元元模型一致起来有很大的优越性。在MOF下,元元模型的一致有利于在OA&DF和MOF之间的互操作。有关两者的互操作性的例子是使用有关与MOF一致的库来存放有关OA&DF对象模型。在CDIF下,元元模型的一致有助于开发与CDIF一致的模型交换格式。本提议的UML一致交换格式部分描述了怎样用CDIF传送格式来在OA&DF工具之间进行模型交换。