论文部分内容阅读
[摘要]软件开发的一个重要环节是设计人员花大量的精力去设计系统模型,而当前各种建模技术建立的种种模型还停留在纸张上,这直接导致了模型的不可执行,这一切都归咎于建模语言本身的不可执行性,由此本文设计了一种文本描述方式的可执行建模语言xKL来支撑整个建模过程,从而达到可执行建模的目的。
[关键词]元对象设施 模型 两级建模
中图分类号:TP311.52 文献标识码:A 文章编号:1009-914X(2015)05-0324-01
1引言
国际对象管理组织提出饿了MDA(Model Driven Arcbitecture,模型驱动架构)概念,要求把建模语言当编程语言来用,而不只是当做设计语言来用。用建模语言编程可以提高生产率,改善质量,并使软件产品生存期更长。MDA定义了一系列标准,而这些标准中的核心就是MOF(Meta Object Facility,元对象设施),MOF在建模领域提出了层次概念:元元模型层,元模型层,模型层和实例层。
对于可执行模型工作的研究,当前主要有两大方向,他们分别着眼于不同的层次。一种是着眼于元模型层的研究,即对当前的建模技术改造,为模型的特定建模元素添加适当的动作语义,使得模型具有可执行性,这方面研究代表方向是可执行UML。另一种是在更高层次的建模研究,他们着眼于元一元模型层的研究,主要是研究元一元模型层的各种实现方式,使得元一元模型层方向具有动作特性。主要代表作品Xactuim公司的XMF,Eclipse社区的EMF。
1.1 MOF
MOF方法的核心是提供一种可扩展的元数据管理方式。它的目标是提供一种支持各种元数据的框架,从而允许按需添加新的类型的元数据。也就是说,它定义了少量的基本模型构件和一个开放的层次框架,通过继承和实例化机制能够构造更加丰富的模型构件,以支持各种领域的设计与开发。其实现的方法是对元数据分层。MOF的分层元数据结构是一种典型的四层建模结构,其关键特性是在元一元建模层上把元模型和模型联系在一起。在MOF2.0规范中,研究者们提出了两个新的概念EMOF和CMOF,它们分别是EssentffalMOF和Complete MOF。EMOF对于简单的元模型,它有一个简易的框架把MOF模型映射到具体实现,例如JMI和XMI。EMOF的目标在于使简单的元模型能够被简单的概念所定义,并且还能够支持扩展到用CMOF描述的更复杂的元建模。文献(2)对MOF架构层次作了详细的介绍和分析。
2两级建模
传统建模可以分为两种:通用建模和领域建模。通用建模应用范围广,但是对于领域特征的描述能力不足领域建模虽然能对领域问题精确描述,但是它的应用范围狭窄。这些问题都促进了人们对两级建模工作的研究。为了能同时兼备通用建模和领域建模的优点,研究者们由的四层元数据体系结构得出重要启示:针对一个大而复杂的问题,在不同层次之间对它逐步建模,使得总体来说建模同时具有通用性与领域精确性。
MOF规范中很多地方提到“元”(meta)这个词,它是一个相对的概念。任何两层之间,上层或抽象层相对与下层或具体都是“元”层,同样,上两层之间相对于下两层之间的发生的动作也具有元的概念。例如MOF规范中“元”建模构件,它是位于M2层的,这个“元”字是相对于M1层建模构件的。根据MOF定义层次之间“元”的思想,本文规定M2层的模型为元一元模型,相应的M1层的模型为元模型,M0的模型为模型;M2层与M1之间的建模为元建模,M1层与M0之间的建模
为建模。两级建模过程可以描述为:
1)元建模根据领域知识,由MOF提供的元建模构件元一元模型创建元模型,即领域模型或语言,这使得两级建模具有很强的通用性,可以适应不同的领域,创建各种领域模型。如针对电信领域,可以建立电信领域各种器材以及它们之间关系的领域模型;对于机场管理领域,可以建立各种飞机型号、航线与乘客及其关系的领域模型。建立领域模型的关键是对领域知识的抽象,领域知识的来源包括已有标准,已有产品,领域专家,需求手册等。
2)建模:与元建模类似,建模的工作只是比元建模的工具更具体化,属于对象级别的建模,同时它也受到元模型的约束。
由此两级建模对建模语言提出了更高的要求可执行。在一个层次建模语言中(例如MOF)完全是可以描述这两个过程的,但是一般的建模语言本身是不可执行的。而如果用可执行的语言来描述这两次建模,并且假设模型是可以完全正确地被描述的,那么我们可认为该模型是可执行的。
目前从UML出发的可执行模型主要采用三种方式填补行为描述构造可执行模型:
1)单独设计一套动作语言,把它与静态UML符号合并起来解释执行模型;
2)利用具体平台语言,如Java语言,描述建模的具体行为,同时把UML静态建模符号转换为这个平台的语言,采用具体平台的语言的解释器和编译器进行模型可执行;
3)完全形式化UML为一个文本语言,并为这个文本语言添加可执行操作,执行UML模型。
本文的做法是基于第三种方法实现的,设计了一种文本语言经XKL,它能够完全形式化UML语法为文本语言,添加相关的行为操作API(Application Programming Interface,应用编程接口),以解析文本命令的形式实现模型的可执行。
3 xKL建模语言
xKL的最终设计目标在于为MOF模型提供一个动作语义,这样使得建立出来的模型不但是基于MOF的,而且具有可执行性。所以xKL抽象语法设计的思想是以MOF模型为基础,先建立xKL的抽象语法的结构模型一的结构元模型,然后再为其添加一个可执行的行为元模型——xKL的行为元模型。
根据以上思想,如图所示的左边,把xKL元模型设计成完全兼容于EMOF的模型,这样自然xKL也是符合标准的。所以xKL的抽象语法模型被分成两大部分:
》结构元模型:实例化EMOF的元建模元素,创建并扩展的结构模型(自描述性),即符合EMOF标准;
》行为元模型:实例化EMOF的元建模元素,创建并扩展OCL(Object Con straint Language,对象约束语言)的表达模型,使得xKL继承OCL的特点。
4结束语
可执行建模方法从MOF架构出发,理论和实践上给出了可执行建模方法的可行性;实现了xKL建模语言的可执行性且结合了OCL的部分特性,具有约束建模的能力。由此通过xKL语言描述领域模型的方式可以建立领域内可执行的模型,解决了模型不可执行的致命缺陷。
虽然能够实现了模型的可执行性,但是仅仅是停留在模型本身的操作可执行和约束可验证等基础上,对于MDA的PIM(Platform Independent Model,平台无关模型)映射到PSM(Platform Specific Model,平台相关模型),并且將生成的PSM代码部署后具有平台相关的可执行性这样的要求还需要进一步完善。
[关键词]元对象设施 模型 两级建模
中图分类号:TP311.52 文献标识码:A 文章编号:1009-914X(2015)05-0324-01
1引言
国际对象管理组织提出饿了MDA(Model Driven Arcbitecture,模型驱动架构)概念,要求把建模语言当编程语言来用,而不只是当做设计语言来用。用建模语言编程可以提高生产率,改善质量,并使软件产品生存期更长。MDA定义了一系列标准,而这些标准中的核心就是MOF(Meta Object Facility,元对象设施),MOF在建模领域提出了层次概念:元元模型层,元模型层,模型层和实例层。
对于可执行模型工作的研究,当前主要有两大方向,他们分别着眼于不同的层次。一种是着眼于元模型层的研究,即对当前的建模技术改造,为模型的特定建模元素添加适当的动作语义,使得模型具有可执行性,这方面研究代表方向是可执行UML。另一种是在更高层次的建模研究,他们着眼于元一元模型层的研究,主要是研究元一元模型层的各种实现方式,使得元一元模型层方向具有动作特性。主要代表作品Xactuim公司的XMF,Eclipse社区的EMF。
1.1 MOF
MOF方法的核心是提供一种可扩展的元数据管理方式。它的目标是提供一种支持各种元数据的框架,从而允许按需添加新的类型的元数据。也就是说,它定义了少量的基本模型构件和一个开放的层次框架,通过继承和实例化机制能够构造更加丰富的模型构件,以支持各种领域的设计与开发。其实现的方法是对元数据分层。MOF的分层元数据结构是一种典型的四层建模结构,其关键特性是在元一元建模层上把元模型和模型联系在一起。在MOF2.0规范中,研究者们提出了两个新的概念EMOF和CMOF,它们分别是EssentffalMOF和Complete MOF。EMOF对于简单的元模型,它有一个简易的框架把MOF模型映射到具体实现,例如JMI和XMI。EMOF的目标在于使简单的元模型能够被简单的概念所定义,并且还能够支持扩展到用CMOF描述的更复杂的元建模。文献(2)对MOF架构层次作了详细的介绍和分析。
2两级建模
传统建模可以分为两种:通用建模和领域建模。通用建模应用范围广,但是对于领域特征的描述能力不足领域建模虽然能对领域问题精确描述,但是它的应用范围狭窄。这些问题都促进了人们对两级建模工作的研究。为了能同时兼备通用建模和领域建模的优点,研究者们由的四层元数据体系结构得出重要启示:针对一个大而复杂的问题,在不同层次之间对它逐步建模,使得总体来说建模同时具有通用性与领域精确性。
MOF规范中很多地方提到“元”(meta)这个词,它是一个相对的概念。任何两层之间,上层或抽象层相对与下层或具体都是“元”层,同样,上两层之间相对于下两层之间的发生的动作也具有元的概念。例如MOF规范中“元”建模构件,它是位于M2层的,这个“元”字是相对于M1层建模构件的。根据MOF定义层次之间“元”的思想,本文规定M2层的模型为元一元模型,相应的M1层的模型为元模型,M0的模型为模型;M2层与M1之间的建模为元建模,M1层与M0之间的建模
为建模。两级建模过程可以描述为:
1)元建模根据领域知识,由MOF提供的元建模构件元一元模型创建元模型,即领域模型或语言,这使得两级建模具有很强的通用性,可以适应不同的领域,创建各种领域模型。如针对电信领域,可以建立电信领域各种器材以及它们之间关系的领域模型;对于机场管理领域,可以建立各种飞机型号、航线与乘客及其关系的领域模型。建立领域模型的关键是对领域知识的抽象,领域知识的来源包括已有标准,已有产品,领域专家,需求手册等。
2)建模:与元建模类似,建模的工作只是比元建模的工具更具体化,属于对象级别的建模,同时它也受到元模型的约束。
由此两级建模对建模语言提出了更高的要求可执行。在一个层次建模语言中(例如MOF)完全是可以描述这两个过程的,但是一般的建模语言本身是不可执行的。而如果用可执行的语言来描述这两次建模,并且假设模型是可以完全正确地被描述的,那么我们可认为该模型是可执行的。
目前从UML出发的可执行模型主要采用三种方式填补行为描述构造可执行模型:
1)单独设计一套动作语言,把它与静态UML符号合并起来解释执行模型;
2)利用具体平台语言,如Java语言,描述建模的具体行为,同时把UML静态建模符号转换为这个平台的语言,采用具体平台的语言的解释器和编译器进行模型可执行;
3)完全形式化UML为一个文本语言,并为这个文本语言添加可执行操作,执行UML模型。
本文的做法是基于第三种方法实现的,设计了一种文本语言经XKL,它能够完全形式化UML语法为文本语言,添加相关的行为操作API(Application Programming Interface,应用编程接口),以解析文本命令的形式实现模型的可执行。
3 xKL建模语言
xKL的最终设计目标在于为MOF模型提供一个动作语义,这样使得建立出来的模型不但是基于MOF的,而且具有可执行性。所以xKL抽象语法设计的思想是以MOF模型为基础,先建立xKL的抽象语法的结构模型一的结构元模型,然后再为其添加一个可执行的行为元模型——xKL的行为元模型。
根据以上思想,如图所示的左边,把xKL元模型设计成完全兼容于EMOF的模型,这样自然xKL也是符合标准的。所以xKL的抽象语法模型被分成两大部分:
》结构元模型:实例化EMOF的元建模元素,创建并扩展的结构模型(自描述性),即符合EMOF标准;
》行为元模型:实例化EMOF的元建模元素,创建并扩展OCL(Object Con straint Language,对象约束语言)的表达模型,使得xKL继承OCL的特点。
4结束语
可执行建模方法从MOF架构出发,理论和实践上给出了可执行建模方法的可行性;实现了xKL建模语言的可执行性且结合了OCL的部分特性,具有约束建模的能力。由此通过xKL语言描述领域模型的方式可以建立领域内可执行的模型,解决了模型不可执行的致命缺陷。
虽然能够实现了模型的可执行性,但是仅仅是停留在模型本身的操作可执行和约束可验证等基础上,对于MDA的PIM(Platform Independent Model,平台无关模型)映射到PSM(Platform Specific Model,平台相关模型),并且將生成的PSM代码部署后具有平台相关的可执行性这样的要求还需要进一步完善。