发明名称 从软件过程到工作流的模型转换方法和系统
摘要 本发明提出了一种SPEM2XPDL模型转换系统和转换方法。该模型转换系统和转换方法严格定义了SPEM模型到XPDL模型的转换规则,将SPEM软件过程模型转换到相应的XPDL工作流过程模型,从而实现了在工作流管理系统的基础上对SPEM软件过程模型提供执行支持。本发明所涉及的SPEM和XPDL都是被广泛接受的国际标准,可以保证本发明实现的模型转换系统以及转换方法的适用性,同时也能够保证可重用性,减少重复开发模型而带来的时间和成本支出。
申请公布号 CN100367204C 申请公布日期 2008.02.06
申请号 CN200610086659.9 申请日期 2006.06.27
申请人 中国科学院软件研究所 发明人 王青;万志刚;袁峰;李明树
分类号 G06F9/44(2006.01) 主分类号 G06F9/44(2006.01)
代理机构 北京君尚知识产权代理事务所 代理人 邵可声
主权项 1.一种从软件过程到工作流的模型转换方法,包括以下步骤:1)对输入的SPEM模型文件进行输入预处理,将其简化成SPEM文档内存结构,具体包括:1-1.将SPEM模型文件读入内存并形成原始的文档内存结构;1-2.分析SPEM模型的生成工具,即从文档内存结构中查找工具信息;1-3.根据分析出的生成工具,选择SPEM模型净化器;1-4.利用净化器去除SPEM模型中的冗余信息,即按照预定义的关键字来提取节点信息,忽略不相关的节点,并生成净化后的文档内存结构;1-5.利用SPEM模型定义文件检验处理后的文档内存结构是否仍然是SPEM模型,如果不是,则说明原始的SPEM模型文件存在错误,如果是,则进行下一步处理;2)将简化后的SPEM文档内存结构转换为SPEM JAVA对象:首先对SPEM模型进行面向对象建模,所建模型的具体表现形式为JAVA类体系结构,由关联关系、关联端和包组成,其中:前驱关系、步骤关系、执行关系、参与关系、输入关系和输出关系被建模为关联关系的子类,角色、工作产品、抽象活动被建模为关联端的子类,活动和步骤被建模为抽象活动的子类,包含多步骤的活动被分别建模为活动和步骤两个关联端,而关联关系和关联端表示在包中;然后对简化后的SPEM文档内存结构进行如下转换:a)把ProcessPerformer、ProcessRole元素转换为角色;b)把WorkProduct、WorkProductKind元素转换为工作产品;c)把Iteration、Activity元素转换为活动;d)把Step元素转换为步骤;e)把Actor和WorkProduct之间的角色一活动关系,按照角色执行和参与活动的不同,分别转换为执行关系和参与关系;f)把Activity之间的转换关系转换为前驱关系;g)把Step之间的转换关系转换为步骤关系;h)把WorkProduct和Activity之间的转换关系,按照输入和输出的不同,分别转换为输入关系和输出关系;i)把Package、Discipline、Phase、Lifecycle、Process元素转换为包;3)利用预定义的转换规则,将SPEM JAVA对象转换为XPDL JAVA对象,所述转换规则包括元素的转换规则和元素关系的转换规则,具体是:3-1.元素的转换规则a)SPEM元素Package、Discipline、Phase、Lifecycle转换为XPDL的Package元素,通过Package元素的扩展属性来标识不同的SPEM元素;b)SPEM Process元素转换为XPDL WorkflowProcess元素;c)SPEM Iteration元素转换为XPDL实现类型为“subflow”的Activity元素;d)对于SPEM Activity元素,如果其包含Step元素,那么转换为XPDLBlockActivity元素,而Step元素转换为XPDL Activity元素;如果其含有其它活动,那么转换为XPDL实现类型为“subflow”的Activity元素;e)SPEM WorkProduct元素转换为XPDL中Activity元素的输入/输出扩展属性;f)SPEM WorkProduct Kind元素转换为XPDL中扩展属性“WorkProduct”的扩展属性;g)SPEM ProcessPerformer元素转换为XPDL Participant元素,该元素的类型属性为“Role”。h)SPEM ProcessRole元素转换为XPDL Participant元素的扩展属性“assistant”;3-2.元素关系的转换规则i)SPEM层次关系转换为XPDL Package以及ActivitySet与Activity之间的包含关系;j)SPEM中的所有转换关系都转换为XPDL之间的转换元素;k)SPEM角色一活动关系中的执行关系转换为XPDL中活动的执行者,而参与关系转换为活动的扩展属性;l)其它关系:不转换;4)将XPDL JAVA对象转换为XPDL的文档内存结构:首先对XPDL模型进行面向对象建模,所建模型的具体表现形式为JAVA类体系结构,由抽象活动、活动集合、工作流过程、参与者、转换、转换约束、扩展属性和包组成,其中:一般活动、包含活动集合的块活动、包含子工作流过程的流活动被建模为抽象活动的子类,抽象活动关联一个或多个参与者,抽象活动之间具有转换关系,转换关系有两种可选的具体约束:加入和分离,所有的模型元素,包括抽象活动、活动集合、工作流过程、参与者、转换、转换约束、扩展属性和包都表示在包中,所有的模型元素都能包含扩展属性;然后进行如下转换:a)把包含活动集合的块活动对象转换为XPDL BlockActivity和ActivitySet元素;b)把包含子工作流过程的流活动对象转换为XPDL中实现类型为“subflow”的Activity元素和WorkflowProcess元素;c)把一般活动对象转换为XPDL Activity元素;d)把参与者对象转换为XPDL Participant元素;e)把转换对象转换为XPDL Transition元素;f)把扩展属性对象转换为XPDL的ExtendedAttribute元素;g)把包转换为XPDL的Package元素;5)将XPDL的文档内存结构经过填充之后生成XPDL XML文件,如果该文件通过格式验证则输出,否则提示出错信息。
地址 100080北京市海淀区中关村南四街4号