本发明属于模型转换处理
技术领域:
,特别涉及一种oml对rucm的表示方法。
背景技术:
:rucm是用例的建模工具。尽管存在许多需求规格说明技术,但就形式而言,这些技术往往落在谱系的最末端,也就是说,它们要么是完全正式的,要么是完全非正式的。用例建模是最广泛使用的结构化规范技术之一。通过结合图表和文本描述,uml用例模型为需求规范提供了一个非常直观而又精确的基础。基于此,一个受限用例建模(rucm)技术被设计出来,它包含一个用例模板和26条用于文本ucss的限制规则。rucm的目标是易于使用,减少歧义,提高理解它可以把自然语言的语句,它具有108个元素。oml是本体的描述语言。在计算机科学与信息科学领域,理论上,本体是指一种“形式化的,对于共享概念体系的明确而又详细的说明”。本体提供的是一种共享词表,也就是特定领域之中那些存在着的对象类型或概念及其属性和相互关系。本体一般可以用来针对该领域的属性进行推理,亦可用于定义该领域(也就是对该领域进行建模)。此外,有时人们也会将“本体”称为“本体论”。作为一种关于现实世界或其中某个组成部分的知识表达形式,本体的应用领域包括(但不仅限于):人工智能、语义网、软件工程、生物医学信息学、图书馆学以及信息架构。对oml元素的详细说明可见https://opencaesar.github.io/oml/#structureinstance。eclipsemodelingframework(emf),简单的说,就是eclipse提供的一套建模框架,可以用emf建立自己的uml模型,设计模型的xml格式或编写模型的java代码。emf提供了一套方便的机制,实现了功能的相互转换,大大提高了效率。尤其emf实现了模型的序列化,极大方便对模型的操作。序列化(serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。序列化使其他代码可以查看或修改,那些不序列化便无法访问的对象实例数据。序列化以后,可以将简单对象转换成可以统一可传输的格式,例如xml,json。这样就可以通过网络传输,程序间传递,存储到硬盘等。技术实现要素:发明目的:针对现有技术存在的问题,提供一种oml对rucm的表示方法,用以解决现有领域共享知识的需求;实现rucm实例到oml实例的自动化转换,提高工业设计中需求阶段的效率。技术方案:为解决上述技术问题,本发明提供一种oml对rucm的表示方法,包括如下步骤:(1)根据rucm建模元素间的关系,确定所需转换的元素和关系;(2)根据oml建模元素,制定步骤(1)中rucm和oml之间的映射规则,形成rucm的omlvocabulary;(3)读取rucm的文本实例,调用步骤2中vocabulary,输出相应的oml文本实例。进一步的,所述步骤(2)中omlvocabulary特征在于:rucm中的元素成为了oml形式的词集。进一步的,所述步骤(2)中rucm和oml之间的映射规则包含以下五种情况,如附图3所示:如果rucm中元素是由ecore中的eclass定义的,若eclass为抽象类,则映射为oml中的aspect概念上,若eclass为实体类,则映射为oml的concept概念上;如果rucm中元素是由ecore中的eattribute定义的,则映射为oml的scalarproperty概念上;如果rucm中元素是由ecore中的ereference定义的,则映射为oml的relation概念上;如果rucm中元素是由ecore中的edatatype定义的,则映射为oml的facetedscalar概念上;如果rucm中元素是由ecore中的eenum定义的,则映射为oml的enumeratedscalar概念上;其中,rucm语言是由ecore语言定义的,ecore语言定义ecore模型中对象的结构。进一步的,所述步骤(2)中制定rucm和oml之间的映射规则的具体步骤如下:(2.1)读取定义rucm的ecore文件的函数,其中文件名为rucm.ecore,调用emf框架中的api操作ecore文件,ecore文件的文本形式读取为序列化的resource形式,再遍历序列化节点,每遍历一个结点就判断节点类型,根据类型采取相应的映射规则,再跳转到相应的转换函数;(2.2)转换函数处理后,得到oml的相应元素,调用omlapi把元素写进文本,以后缀名为oml的文本形式输出;(2.3)所得的文本中的元素集合即是omlvocabulary。进一步的,所述步骤(3)中输出相应的oml文本实例的具体步骤如下:(3.1)根据rucm中元素实例,定义相应实例转换函数;(3.2)读取rucm文本,调用rucm操作api,把文本形式序列化;(3.3)遍历序列化节点,获取节点值,根据结点类别,调用相应转换函数。进一步的,所述步骤(3.1)中所述的定义相应实例转换函数的具体步骤如下:每个元素对用每个元素的转换函数,但共同点是,对于每个元素,获取元素属性,对属性进行转换;接着获取以该元素为源元素的关系,对关系进行转换。进一步的,对属性进行转换的具体步骤为:获取属性值,找到omlvocabulary对应词汇,创建该此词汇实例,并把值赋予给该实例。进一步的,对关系进行转换的具体步骤为:获取关系的目标元素,找到omlvocabulary对应关系词汇,创建该关系词汇实例。与现有技术相比,本发明的优点在于:(1)本发明采用基于oml的建模方式重构rucm的模型,丰富了rucm的语义;(2)本发明使得rucm转换为oml形式后,可以运用oml的推理机制,实现模型在个人电脑上进行关系推导;(3)在一定程度上实现语义消歧的能力,该方法的实现证明了其它类似领域相似功能的可发展性。附图说明图1为本发明实施例中的元素映射层面的整体架构图;图2为本发明实施例中的程序实现层面的架构图;图3为本发明实施例中的元素映射方法的详细流程图;图4为本发明实施例所实现的程序执行的流程图;具体实施方式下面结合附图和具体实施方式,进一步阐明本发明。本发明描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的其他实施例,都属于本发明所保护的范围。一种oml对oml的表示方法,如附图2所示,包括:(1)读取rucm文本中元素,以资源形式存入缓存;(2)运用emf框架,将资源xmi序列化,文本标签得到结点形式,供程序使用;(3)遍历每个结点,通过迭代的方法,每个结点实现以下步骤:s1创建omldescription实例;s2判断结点类别,结点类别即元素种类,包括actor,usecase,usecasespecification……。根据类别跳转到相应转换程序;s3相应转换程序中,通过get方法获取每个结点对应的实际值;s4将s3中获取的值赋值给description实例中对应元素;s5调用omlwriter方法,将缓存中oml实例写入文本。进一步地,包括:所述步骤s1中,需给出oml的iri(实例的命名空间)、separator(分词器)、pefix(命名前缀)。这三个要素可以创建description实例。进一步地,包括:所述步骤s2中,每个结点类别对应addtovocabulary(usecasemodelelementobject,descriptiondescription)方法,其中usecasemodelelementobject指rucm中元素;对于rucm中关系,调用addrelationinstance(description,name,sourceiri,targetiri)实现在description实例中添加关系。进一步地,包括:所述步骤s3中,通过rucmapi中getname()、getdescription()方法获取的实际值(包括string、double、int、boolean类型),再封装成oml中literal数据类型。进一步地,包括:所述步骤s4中,赋值过程即构造oml语句的过程,比如获取usecase的name属性值,通过addconceptinstance()构造conceptinstance。然后添加到文本中。rucm文本处理方法,包括:输入:rucm文本,后缀名为.ucm;过程:s1把文本解析成模型资源形式,实现模型的持久化,便于程序操作。模型中的元素以列表、迭代器的方式存储在缓存中;s2遍历s1步骤得出的列表,每次取出元素均要调用创建出来的omlvocabulary,实现元素的一对一映射;s3用s2中取出的词汇创建oml语句,即赋予词汇实际值,包括元素的实际值,关系的实际指向,属性的实际值;输出:oml文本,后缀名为.oml。另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。1、数据处理和存储本发明的底层使用xtend实现,xtend是eclipse推出的一个新的jvm语言,并无意替代java,而是以己之长补java之短,精简代码,无类型,改进可读和维护。eclipsextend可以编译成可读的java代码。rucm文件以后缀名为rucm的文本形式存储在计算机中,文本内容是基于xml的标准格式,这使得文本操作更加容易。调用emf对模型的xmi序列化操作,读入rucm文本到缓存,并序列化,得到模型的节点结构,采用列表遍历方式遍历节点。2、数据分析和处理每个标签对均对应相应元素,以“actor”元素在文本中的显示方式为例:<modelelementsxsi:type="squall.tao.usecasemetamodel.usecasemodel:actor"name="atmcustomer"description="atmcustomer"/>3、工具实现本发明基于emf驱动的eclipse实现的模型转换的工具,该工具实现用户输入rucm文本得到oml文本的转换。工具开发在eclipse上实现。工具框架如下,如附图4所示:创建rucm2oml包:app类读取rucm文件;rucm2oml类实现相应元素的转换,如函数实现actor到conceptinstanceactor的转换;rucm2oml中omlwriter方法实现oml文件的输出。实施例具体程序实现包括,参阅附图1所示:s1omlvocabulary的获取:提取文本中有效信息,将其映射到concept概念上;rucm是一套用例建模语言,其元模型是ecore语言定义的,如“actor”元素是由ecore中elass定义的,“actor”元素中“name”属性是由ecore中eattribute定义的。omlvocabulary是基于元模型层面转化的。所以文本中有效信息包括:元素所属的ecore类别;元素的名称。通过ecoreapi获取有效信息,然后映射到concept概念上。映射整理如下:表1元模型语义转换apiepackage语义转换defvocabularytovocabulary(epackageepackage)eclass语义转换addtovocabulary(eclasseclass,vocabularyvocabulary)eenum语义转换addtovocabulary(eenumeenum,vocabularyvocabulary)edatetype语义转换addtovocabulary(edatatypeedatatype,vocabularyvocabulary)eattribute语义转换addtovocabulary(eattributeeattribute,vocabularyvocabulary)ereference语义转换addtovocabulary(ereferenceereference,vocabularyvocabulary)s1步骤的伪代码如下:其中epackage的有效信息包括epackage的iri、separator、prefix。s1步骤所得结果部分整理如下:表2元素对应表s2提取元素的有效信息,将其映射到concept概念上;元素的有效信息包括:元素的名称(实例值);元素的关系元素。通过rucmapi获取实例中所有元素,再遍历元素集合,每个元素都执行获取concept中相应概念的工作,对于元素实例、属性实例、关系实例,分别对应不同的转换规则,步骤s3,接着执行以下步骤:s21找到omlvocabulary中对应的rucm概念,通过omlapi创建oml语句,将s1中获的值赋给创建出的语句,部分映射整理如下:表3实例层元素对应表s22将创建出的语句,通过omlapi写进文本,形成omldescription。s2步骤的伪代码如下:s3对于元素、属性、关系,分别对应不同的转换规则,具体转换规则如下:s31元素的映射:获取元素的名称,通过oml.addconceptinstance(description,stringname)。s32属性实例的映射:获取属性的值,创建实例属性;找到属性所属于的元素,把该属性放在元素实例中,通过oml.addscalarpropertyvalueassertion(description,instanceiri,propertyiri,literal1)。s33元素关系的映射:遍历到元素时,需要找到该元素的关系的source(源元素)和target(目标元素),通过oml.addrelationinstance(description,name,sourceiri,targetiri)。关系定义如下:关系如下其中,“from”指源元素,“to”指目标元素,“forward”指箭头指向本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全应用实施例、或结合应用和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括实施例以及落入本发明范围的所有变更和修改。当前第1页12