从软件过程到工作流的模型转换方法和系统技术方案

技术编号:2846225 阅读:192 留言:0更新日期:2012-04-11 18:40
本发明专利技术提出了一种SPEM2XPDL模型转换系统和转换方法。该模型转换系统和转换方法严格定义了SPEM模型到XPDL模型的转换规则,将SPEM软件过程模型转换到相应的XPDL工作流过程模型,从而实现了在工作流管理系统的基础上对SPEM软件过程模型提供执行支持。本发明专利技术所涉及的SPEM和XPDL都是被广泛接受的国际标准,可以保证本发明专利技术实现的模型转换系统以及转换方法的适用性,同时也能够保证可重用性,减少重复开发模型而带来的时间和成本支出。

【技术实现步骤摘要】

本专利技术涉及一种将软件过程模型转换为工作流模型(SPEM2XPDL)的方法,特别是一种将SPEM描述的软件过程模型转换为XPDL描述的工作流模型的模型转换方法,也涉及支持该方法的实现系统,属于软件生产中的过程

技术介绍
软件过程建模的主要目的是对软件过程模型提供执行支持,帮助软件组织实施以过程为中心的软件质量管理,从而保证软件产品质量。软件过程工程元模型(Software Process Engineering Metamodel,简称SPEM)是对象管理组织(Object Management Group,简称OMG)在2002年提出的国际性软件过程建模标准。SPEM定义了软件过程建模所需要的元素集合,适用于描述任何软件过程。当前,SPEM已经取得了广泛应用,出现了很多基于SPEM的软件过程模型。然而,SPEM侧重于过程建模中的过程描述,缺乏对过程的执行支持。过程定义语言(XML Process Definition Language,简称XPDL)是工作流管理联盟(Workflow Management Coalition,简称WfMC)提出的一种广泛使用的国际性工作流过程定义标准,用于描述工作流参考模型中的接口一部分。该接口分离工作流过程的定义和执行,使得符合XPDL定义的工作流模型可以在任何支持XPDL的工作流管理系统(Workflow Management System,简称WFMS)上被执行。软件过程和工作流遵循相同的过程范型,将软件过程模型转换为工作流模型是可行的。已有的将软件过程模型转换为工作流模型,并通过工作流管理系统支持软件过程执行的方法有Daniel K.C.Ghan方法和Anthony Barnes方法等。前者将软件过程模型转换为用Valmont语言定义的Liaison模型,在支持Liaison模型的自定义WFMS上执行;后者将软件过程模型转换为用WPDL描述的工作流模型,并在实现工作流参考模型的WFMS上执行。但是,这些方法都是基于各自特定的软件过程元模型、各自特定的工作流元模型而实现。由于软件过程元模型的不一致性以及工作流元模型的不一致性,那么,必须分别定义软件过程元模型到工作流元模型的映射规则。因而这些方法适用范围有限,难于在软件组织中实际推行和使用,可重用性差。
技术实现思路
鉴于现有方法的缺陷,为了充分利用将SPEM模型转换为XPDL模型在软件开发工程中的优势,本专利技术的目的是提供SPEM模型到XPDL模型的转换方法(SPEM2XPDL)以及支持该方法的实现系统。所述的方法提供了SPEM模型到XPDL模型的转换步骤,所述的系统根据方法实现了SPEM软件过程模型到相应的XPDL工作流过程模型的转换,从而基于工作流管理系统对SPEM软件过程模型提供执行支持。为实现上述的专利技术目的,从软件过程到工作流的模型转换方法包括4个步骤首先,对输入的SPEM模型文件进行输入预处理,将其简化成SPEM文档内存结构;其次,将简化后的SPEM文档内存结构转换为SPEM JAVA对象,将SPEM模型元素之间的关系表现在SPEMJAVA对象当中;然后,利用预定义的转换规则,将SPEM JAVA对象转换为XPDL JAVA对象;接着,从XPDLJAVA的根对象开始,递归生成XPDL的文档内存结构元素,并最终形成XPDL的文档内存结构;最后,将XPDL的文档内存结构输出到XPDL模型文件中。其中,对输入的SPEM模型文件进行输入预处理的过程还包括以下几个步骤S1将SPEM模型文件读入内存并形成原始的文档内存结构;S2分析SPEM模型的生成工具,即从文档内存结构的根节点、注释节点和/或其它关键字查找工具信息;S3根据分析出的生成工具,选择SPEM模型净化器;S4利用净化器去除SPEM模型中的冗余信息,即按照预定义的关键字来提取节点信息,忽略不相关的节点,并生成净化后的文档内存结构;S5利用SPEM模型定义文件检验处理后的文档内存结构是否仍然是SPEM模型。如果不是,则说明原始的SPEM模型文件存在错误,如果是,则进行下一步处理。其中,S2具体的查找过程是首先从根节点开始查找,如果成功则返回;否则,查找注释节点,如果成功则返回;否则,在整个模型中进行查找,如果成功则返回;否则,直接跳转到S5。其中,S4中的关键字一般包括但不限于以下关键字Package,Discipline,Phase,Lifecycle,Process,Iteration,Activity,Step,WorkProduct,WorkProductKind,ProcessPerformer,ProcessRole。本专利技术的SPEM2XPDL模型转换系统,包括预处理器、SPEM对象生成器、XPDL DOM生成器、转换规则库、对象转换器。其中,所述预处理器用于实现对SPEM模型的输入预处理以及XPDL输出预处理;所述SPEM对象生成器将SPEM模型转换为SPEM JAVA对象,所述XPDL DOM生成器将XPDL JAVA对象转换为XPDL DOM(文档内存对象);所述转换规则库定义SPEM JAVA对象和XPDL JAVA对象的转换规则;所述对象转换器根据转换规则库中定义的规则,执行对象转换。本专利技术的技术效果是,为软件过程工程元模型到工作流模型的转换提供了一种一般适用的方法,有效地避免了现有技术中因基于各自特定的软件元模型而带来的不可重用的缺陷。将SPEM模型转换为XPDL模型(SPEM2XPDL)的方法可以充分利用SPEM具有的强大过程描述能力以及XPDL具有的丰富过程执行支持能力。同时,SPEM和XPDL都是广泛使用的国际标准,保证了该方法的适用范围,同时保证了方法的可重用性,减少因重复开发模型所带来的巨大时间和成本支出。另外,SPEM和具体的软件开发方法无关,那么,可以对任何具体的软件开发方法,如XP,RUP等提供过程执行支持。附图说明图1为SPEM2XPDL模型转换系统架构示意图;图2为预处理器对SPEM模型的输入预处理流程示意图;图3为预处理器对XPDL模型的输出预处理流程示意图;图4表示SPEM对象生成器对SPEM模型所做的面向对象建模的主要类结构示意图;图5表示XPDL DOC生成器对XPDL模型所做的面向对象建模的主要类结构示意图。具体实施例方式以下结合附图,通过一较佳实施例详细说明本专利技术。如图1所示,是从软件过程到工作流的模型转换系统的架构示意图,其中箭头的方向表示该系统所实现的方法的流程。当SPEM模型输入模型转换系统时,首先由预处理器中的SPEM输入预处理器进行预处理,具体步骤是S1将SPEM模型文件读入内存并形成原始的文档内存结构;S2分析SPEM模型的生成工具,具体是从文档内存结构的根节点开始,按照跟节点—注释节点—其它关键字的顺序查找工具信息,一旦查找到则返回,如果遍历整个模型都查找不到,则直接转入S5;S3根据分析出的生成工具,选择SPEM模型净化器;S4利用净化器去除SPEM模型中的冗余信息,即按照预定义的关键字,如Package,Discipline,Phase,Lifecycle,Process,Iteration,Activity,Step,WorkProduct,WorkProd本文档来自技高网
...

【技术保护点】
一种从软件过程到工作流的模型转换方法,包括以下步骤:对输入的SPEM模型文件进行输入预处理,将其简化成SPEM文档内存结构;将简化后的SPEM文档内存结构转换为SPEMJAVA对象,将SPEM模型元素之间的关系表现在SP EMJAVA对象当中;利用预定义的转换规则,将SPEMJAVA对象转换为XPDLJAVA对象;从XPDLJAVA的根对象开始,递归生成XPDL的文档内存结构元素,并最终形成XPDL的文档内存结构;将X PDL的文档内存结构输出到XPDL模型文件中。

【技术特征摘要】
1.一种从软件过程到工作流的模型转换方法,包括以下步骤对输入的SPEM模型文件进行输入预处理,将其简化成SPEM文档内存结构;将简化后的SPEM文档内存结构转换为SPEM JAVA对象,将SPEM模型元素之间的关系表现在SPEM JAVA对象当中;利用预定义的转换规则,将SPEM JAVA对象转换为XPDL JAVA对象;从XPDL JAVA的根对象开始,递归生成XPDL的文档内存结构元素,并最终形成XPDL的文档内存结构;将XPDL的文档内存结构输出到XPDL模型文件中。2.如权利要求1所述的方法,其特征在于,所述的对输入的SPEM模型文件进行输入预处理的具体过程为1)将SPEM模型文件读入内存并形成原始的文档内存结构;2)分析SPEM模型的生成工具,即从文档内存结构中查找工具信息;3)根据分析出的生成工具,选择SPEM模型净化器;4)利用净化器去除SPEM模型中的冗余信息,即按照预定义的关键字来提取节点信息,忽略不相关的节点,并生成净化后的文档内存结构;5)利用SPEM模型定义文件检验处理后的文档内存结构是否仍然是SPEM模型。如果不是,则说明原始的SPEM模型文件存在错误,如果是,则进行下一步处理。3.如权利要求2所述的方法,其特征在于,所述的步骤2)具体的查找过程是首先从根节点开始查找,如果成功则返回;否则查找注释节点,如果成功则返回;否则在整个模型中进行查找,如果成功则返回;否则,直接跳转到步骤5)。4.如权利要求2所述的方法,其特征在于,所述的步骤4)中的关键字包含Package、Discipline、Phase、Lifecycle、Process、Iteration、Activity、Step、WorkProduct、WorkProductKind、ProcessPerf...

【专利技术属性】
技术研发人员:王青万志刚袁峰李明树
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1