首页> 中国专利> 基于控制流模式的过程模型转换与结构验证方法

基于控制流模式的过程模型转换与结构验证方法

摘要

本发明提出一种基于控制流模式的过程模型转换与结构验证方法,属于业务过程与信息技术领域。本发明方法通过将源模型中的控制流模式直接在源模型上进行验证而无需转换的控制流模式,需要基于控制流模式进行转换的模式,以及使用元素映射方法进行转换的模式这3类,从源模型中识别出这三类进行分别转换验证,并使用基于控制流模式与基于元素映射相结合方法进行验证,最后整合验证结果,追踪到源模型中的错误源。本发明方法直观、简单、有效,在一定程度上解决了现有的过程结构验证方法和工具面向特定语言而缺乏通用性以及现有模型转换方法在转换某些控制流模式时精度不高并且控制流信息丢失等问题,且能更好的提高模型转换的精度和效率。

著录项

  • 公开/公告号CN102331926A

    专利类型发明专利

  • 公开/公告日2012-01-25

    原文格式PDF

  • 申请/专利权人 北京航空航天大学;

    申请/专利号CN201110144798.3

  • 发明设计人 张莉;韩兆刚;凌济民;段俊;

    申请日2011-05-31

  • 分类号G06F9/44;G06F17/30;G06Q10/00;

  • 代理机构北京永创新实专利事务所;

  • 代理人周长琪

  • 地址 100191 北京市海淀区学院路37号

  • 入库时间 2023-12-18 04:30:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-07-21

    未缴年费专利权终止 IPC(主分类):G06F9/44 授权公告日:20131113 终止日期:20160531 申请日:20110531

    专利权的终止

  • 2013-11-13

    授权

    授权

  • 2012-03-14

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20110531

    实质审查的生效

  • 2012-01-25

    公开

    公开

说明书

技术领域

本发明涉及业务过程与信息技术领域,具体地,涉及一种基于控制流模式的过程模 型转换与结构验证方法。

背景技术

随着企业信息化技术的飞速发展和信息化水平的逐步提高,面对日益丰富的客户需 求以及激烈的市场竞争,企业在战略上正从传统的面向结果的管理方式转变到以过程为 核心的管理方式,过程在企业管理中的重要性日益凸显,从而过程模型验证技术也受到 了越来越多的重视。

过程验证是指通过对已建立的过程模型进行分析,发现模型中的错误与不足的过程, 是保证过程正确性的手段。它包含三个层次的验证:语法验证,结构验证和语义验证。 结构验证主要检查过程模型在结构上是否满足给定的约束,或者是否存在结构错误及不 良结构,如死锁、不可达任务、死循环等。过程结构验证是过程验证的重要组成部分, 是语义验证与过程执行的基础,只有保证模型在控制结构上是正确的,才能降低过程执 行阶段的风险,避免可能的损失。

过程是通过过程建模语言来描述的,即过程模型。不同的过程建模语言在控制结构 方面的描述能力各不相同,“控制流模式”可以用来衡量过程建模语言在模型控制结构 方面描述能力上的差异。简单控制流模式(包括串行、并行、选择分支、循环等基本控 制流模型)的结构验证较容易实现,绝大多数过程建模语言都支持此类模式的验证。然 而,验证一些复杂控制流模式(如or-join模式、取消模式、多实例模式等)的结构正 确性比验证简单控制流模式要复杂得多。一般来讲,过程建模语言支持的复杂控制流模 式越多,它在过程控制结构方面的描述能力就越强,基于它的过程结构验证工作的难度 也就越大。

现有的过程建模领域存在众多的过程建模语言,例如UML活动图(UML Activity Diagram,简称UML-AD)、BPMN(Business Process Modeling Notation)、EPC(Event-driven Process Chains)和YAWL(Yet Another Workflow Language)等,它们大都支持在实际应用 中广泛存在的复杂控制流模式。目前大部分过程结构验证领域的研究多针对于某一特定的 语言,所提供的过程结构验证方法和验证工具缺乏通用性,针对某一特定语言的过程结 构验证方法和验证工具无法应用到其他建模语言建立的模型。

目前已有的模型转换技术和转换方法可以在一定程度上解决上述问题。模型转换可 以用来在不同过程语言之间搭起一座桥梁,从而使得针对某一特定过程建模语言的验证 方法和验证工具能够应用于其他的过程建模语言。目前,许多工作通常将待验证的过程 建模语言转换到Petri网(一种对于离散的并行系统的数学模型表示),进而利用基于 Petri网的模型检测工具验证模型的结构正确性。

模型转换的关键是转换规则的定义。传统的转换规则往往根据源模型和目标模型的 元模型来定义,通常表现为元模型中元类的一对一映射关系。除了元类之间的映射之外, 一些研究者提出了模型片段之间的映射规则,也就是基于模式进行模型转换的思想。

目前已经证明,已有的基于元素间映射的模型转换方法在转换某些控制流模式时存 在转换精度不高甚至得不到正确的转换结果的问题。此外,现有的一些基于模式的转换 方法仅增大了转换过程中的操作粒度(从元素增大到模型片段),而在提高转换精度和 保证转换的正确性方面,相比基于元素映射的转换方法并不具备显著优势。

发明内容

针对当前过程建模语言复杂化、多样化等特点,以及现有的过程结构验证方法和工 具面向特定语言而缺乏通用性,现有模型转换方法在转换某些控制流模式时精度不高以 及存在控制流信息丢失等问题,本发明提出一种基于控制流模式的过程模型转换与结构 验证方法。该方法较好地解决上述问题,使得针对某一特定语言的过程结构验证方法和 工具能够应用到其他过程建模语言建立的模型。

本发明基于控制流模式的过程模型转换与结构验证方法具体包括如下步骤:

步骤一:确定对源模型进行转换后的目标模型建模语言。

步骤二:将源模型中的控制流模式进行分类,分为3类:直接在源模型上进行验证 而无需转换的控制流模式,需要基于控制流模式进行转换的模式,以及使用元素映射方 法进行转换的模式。

步骤三:控制流模式的识别。执行以下三项内容:①在源模型中识别出可以直接在 源模型上进行验证而无需转换的控制流模式,对于该无需转换的控制流模式对应的模型 片段,进入步骤四执行;②在源模型中识别出需要基于控制流模式进行转换的模式,对 于该基于控制流模式进行转换的模式对应的模型片段,进入步骤五执行;③对于源模型 中除去①与②识别出的模型片段外的剩余模型片段,可以使用基于元素映射的方法进行 转换,进入步骤七执行。

步骤四:直接在源模型上的验证。利用基于源模型语言的验证工具对步骤三中①中 得到的模型片段进行验证,进入步骤十二。

步骤五:针对需要基于控制流模式进行转换的模式定义转换规则。

步骤六:基于步骤五定义的转换规则,对步骤三②中所识别出的模型片段进行转换 得到该模型片段对应的目标模型片段,并以每个控制流模式为单位记录转换映射信息, 并进入步骤九。

步骤七:定义源模型建模语言和目标模型建模语言的元模型,根据所定义的元模型 定义基于元素映射的转换规则。

步骤八:基于步骤七定义的转换规则,对步骤三中剩余模型片段进行转换得到该剩 余模型片段对应的目标模型片段,并以每个模型元素为单位记录转换映射信息。

步骤九:在步骤六和步骤八都完成后,将它们执行得到的目标模型片段进行组合。

步骤十:使用针对目标语言的验证工具对步骤九得到的组合的目标模型片段进行验 证,检测所述组合的目标模型片段中存在的错误。

步骤十一:根据保存的转换映射信息,对步骤十中检测出的错误进行追踪,定位到源模 型中对应的结构错误。

步骤十二:在步骤四和步骤十一都完成后,整合在这两步中验证出的结构错误,给 出对于源模型最终的验证结果,结束验证过程。

本发明的优点和积极效果在于:(1)本发明方法直观、简单、有效,在一定程度上解 决了现有的过程结构验证方法和工具面向特定语言而缺乏通用性以及现有模型转换方法 在转换某些控制流模式时精度不高并且控制流信息丢失等问题;(2)本发明方法将控制流 模式的思想引入模型转换和验证过程,并在模型转换中使用基于控制流模式与基于元素映 射相结合的方法,能更好的提高模型转换的精度和效率,使得针对某一特定语言的过程结 构验证方法和工具能够应用到其他建模语言建立的模型。

附图说明

图1是本发明过程模型转换与结构验证方法的整体流程示意图;

图2是本发明实施例由UML-AD建立的订单处理流程模型图;

图3是本发明方法步骤五中的实施例进行转换的代码示意图;

图4是本发明方法步骤五中对应图3中的同步模式的转换规则的图形示意图;

图5是本发明方法步骤五中对应图3中的取消区域模式的转换规则的图形示意图;

图6是本发明实施例在模型转换完成后得到的YAWL模型示意图。

具体实施方式

为便于本领域一般技术人员理解和实施本发明,现结合附图描述本发明的具体实施 方式。

UML-AD被广泛用于对业务过程进行建模,使用由UML-AD建立的订单处理流程模型对本 发明的具体实施进行介绍,完整的订购流程由客户流程和供应商流程组成,图2给出了供应 商处理订单的流程。在图2中,ActivityInitial节点表示供应商开始处理订单;第1步是 接收客户订单ReceiveOrder;第2步创建订单Order类型的对象order(order:=Order); 第3步对订单检查员A的状态进行判断,若A是空闲的(Ais free)则由A进行订单检查 (CheckByCheckerA),否则(Ais busy)由订单检查员B检查订单(CheckByCheckerB);在 检查完成(OrderChecked)后进行第4步的订单状态的判断,如果订单被接收(order.status =Accepted)则并发执行区域A和区域B中的内容,否则(order.status=Rejected)则结 束流程;区域A中,变量x作为计数器,初值为0,每一次执行处理订单动作(ProcessOrder) 的同时x值加1,直到x值为10为止,这样表示处理订单动作会被执行10次;在处理订单 反复执行的同时,区域B中,供应商准备票据(PrepareInvoice)并发送给用户票据(Invoice), 并等待用户付费(Payment);如果接收到客户的取消请求(CancelRequest),则修改订单状 态(order.status:=CancelRequest.status),并取消区域B虚线框中正在执行的任务然后 结束流程;最后,在区域A和区域B两个分支都完成后,关闭订单(CloseOrder)然后结束 流程(ActivityFinal)。

如图1所示,为实施本发明中所述方法的步骤流程图,现结合图2所示订单处理流 程模型图,对具体步骤P01~P12详细描述如下:

步骤P01:确定转换的目标语言,本发明方法中选择一种目前验证支持程度最好的 建模语言作为转换的目标语言。目前,YAWL是一种基于Petri网的过程建模语言,得益 于它基于Petri网的形式化语义,基于YAWL语言的结构验证工作比其他过程建模语言更 容易实现一些,并且目前已有了一系列成熟的验证工具如Woflan,WofYAWL,ProM等, 这些工具可以验证包含复杂控制流模式的模型。因此,选择YAWL作为目标语言,并使用 现有的基于YAWL的验证工具对目标模型进行验证。

步骤P02:对于UML-AD中的控制流模式,将它们分成三种类型:①可以直接在源模 型上进行验证而无需转换的控制流模式,包括无同步的多实例模式;②需要基于控制流 模式进行转换的模式,包括分支节点隐式存在的并行模式、合并节点隐式存在的同步模 式、多重选择模式、鉴别器模式、取消活动模式、取消实例模式、取消区域模式和取消 多实例活动模式;③可以使用元素映射方法进行转换的模式,包括顺序模式、独占式选 择模式、简单聚合模式、多重聚合模式、隐式终止模式、设计时确定的多实例模式、运 行时确定的多实例模式、任意循环模式、结构化循环模式和延迟选择模式。

步骤P03:需要在如图2所示的UML-AD过程模型中识别出各种类型的控制流模式, 可以使用现有的模型形式化方法和模式图匹配策略进行识别,对于该模型图执行以下三 项内容:①识别出无需转换的控制流模式,结果为图2中的区域A,为无同步的多实例 模式,可以直接在源模型上进行验证,对于该区域A的模型片段进入步骤P04执行;② 识别出需要基于控制流模式进行转换的模式,结果为图2中的区域B所示的取消区域模 式和区域C所示的同步模式,对于区域B和区域C的模型片段需要基于控制流模式进行 转换,进入步骤P05执行;③对于图2中所示的订单处理流程模型,除了上述区域A、B、 C的剩余模型片段(剩余区域)可以使用基于元素映射的方法进行转换,对于该剩余模 型片段进入步骤P07执行。

步骤P04:使用基于UML-AD的验证工具对区域A的模型片段进行验证,得到模型验 证结果,本发明实施例中的验证结果为:无结构错误,在后续的模型转换中用一个活动 AreaA替代整个区域A,进入步骤P12。

步骤P05:定义所有需要基于控制流模式进行转换的模式在UML-AD和YAWL语言中 的元模型,本发明实施例中为取消区域模式和同步模式,并基于所定义的元模型使用QVTr 语言(Query/View/Transformation Relations,QVT关系语言)定义关系映射规则,下面 给出本发明实施例中需要转换的取消区域模式和同步模式的转换规则。

如图3所示,为本发明实施例中取消区域模式和同步模式的转换规则的代码示意图。 其中,第1行表示了这是一个从UML到YAWL的转换,第2行至第12行定义了同步模式 的转换规则:第3行开始说明转换域在源模型中的抽象表示,第4行表示有一条控制流 e1流入(flowIn)到动作a3中,并且该控制流是由动作a1流出的,第5行表示有一条 控制流e2流入到动作a3中,并且该控制流是由动作a2流出的,从第4行和第5行可以 看出一个无同步节点的同步模式的UML结构;第7行开始说明转换域在目标模型中的抽 象表示,第8行表示有一条控制流f1流入(flowIn)到任务t3中,并且该控制流是由 任务t4流出的,任务t4的类型为AndJoin,表示合并节点,第9行表示有一条控制流 f2流入(flowIn)到任务t4中,并且该控制流是由任务t1流出的,第10行表示有一 条控制流f3流入(flowIn)到任务t4中,并且该控制流是由任务t2流出的,从第8行 到第10行可以看出一个同步模式的YAWL结构。第4行和第5行表示的同步模式的UML 结构可对应转换为第8行到第10行表示的同步模式的YAWL结构。第13行至第22行定 义了取消区域模式的转换规则:第14行开始说明转换域在源模型中的抽象表示,第15 行表示有一条中断流i1从动作h1流入动作h2,并且动作h1在中断区域r1之中,第16 行表示有一条控制流j1从动作h3流入动作h2,并且动作h3在中断区域r1之中,第15 行和第16行表示出了一个取消区域模式的UML结构;第18行开始说明转换域在目标模 型中的抽象表示,第19行表示有一条控制流g1从任务k1流入任务k2,并且k1是取消 区域的触发源,第20行表示有一条控制流g2从任务k3流入任务k2,并且k3是被取消 的任务,触发源为k1,第19行和第20行表示出了一个取消区域模式的YAWL结构。第 15行和第16行表示的取消区域模式的UML结构可对应转换为第19行到第20行表示的 取消区域模式的YAWL结构。

此外,转换规则还可以用图形化的方法表示,使得表达更加清晰并且和上述图3中 的语句表示完全等价,同步模式的转换规则的图形化表示如图4所示,取消区域模式的 转换规则的图形化表示如图5所示。图4所示的同步模式的转换规则对应图3中的第2 行至第12行的代码描述,图2中的区域C可按照所述的转换规则,从目前源模型UML-AD 语言转换为目标模型语言YAWL表示。图5所示的取消区域模式的转换规则对应图3中的 地13行到22行的内容,图2中的区域B可按照所述的转换规则,从目前源模型UML-AD 语言转换为目标模型语言YAWL表示。

步骤P06:根据步骤P05中定义的转换规则,将区域B的取消模式和区域C的同步 模式转换成YAWL语言模型,分别为图6中的区域a和区域b,并保存两个区域间的对应 关系,即:B→a、C→b,进入步骤P09执行。从图6可以看到:区域a为YAWL模型的取 消区域模式,CancelRequest任务带有阴影表示它是取消区域的触发者,对应于图3中 以及图5中所示的任务k1,粗线框表示的准备票据PrepareInvoice、发送票据Invoice 和付款Payment这3个任务为被取消的任务,这3个任务都对应于图3中以及图5中所 示的任务k3,当收到客户取消请求CancelRequest后,上述3个任务将会被取消,并修 改订单状态(order.status:=CancelRequest.status)然后结束流程,区域a与图2的区 域B相比中多出了一个多重分支任务Or-Split Task,这是由于在YAWL中CancelRequest任 务需要与起始节点相连;区域b相比图2的区域C多出了一个同步合并任务And-Join Task, 这是因为YAWL中不支持同步合并节点的隐式存在,其他任务的含义与图2的区域C中相应动 作相同。

步骤P07:定义源语言UML-AD和目标语言YAWL的元模型,包含过程建模中必须的 元类,然后根据元模型定义元素到元素的映射规则表,如表1所示。

表1中将建模元素划分为四类,分别是开始与结束节点(Start/Finaish Node)、 可执行节点(Executable Node)、控制节点(Control Node)和其他元素(Others), 各类中的建模元素如表1中所示。表1中左侧为UML-AD建模元素,右侧为YAWL建模元 素,UML-AD建模元素将被转换到对应的YAWL建模元。例如,在开始与结束节点中的UML-AD 建模元素初始节点(Initial Node)被转换成YAWL建模元素输入库所(Input Condition), 在控制节点中的分叉(Fork Node)元素被转换为YAWL中的与分叉(And-Split Node)元 素。

表1:源语言UML-AD和目标语言YAWL的元素到元素的映射规则表

步骤P08:根据步骤P07中定义的元素映射表,将剩余区域中的模型元素一一映射 成YAWL语言的模型元素,构成图6中的剩余区域,可以看出图6中剩余区域的每个任务 都和图2中剩余区域的元素一一对应,任务AreaA对应的是图2中已在源模型上直接验 证的区域A,然后保存每组元素的对应的映射信息,如D1→c1,D2→c2,D3→c3等,为 结构错误追踪定位提供依据。

步骤P09:在步骤P06和步骤P08完成后,将它们执行得到的目标模型片段,如图5 中的区域a、区域b和剩余区域,组合成最终的目标模型,如图6所示。

步骤P10:使用针对YAWL语言模型的验证工具如Woflan,WofYAWL,ProM等,对图6 所示的目标模型进行验证,检测出模型中存在死锁错误,本发明实施例中存在的错误由 区域b以及剩余区域中的元素c2-c3组成。

步骤P11:查询转换映射信息中所保存的控制流模式以及模型元素的映射信息,找 出目标模型中结构错误的组成元素在源模型中的编号,相应定位到源模型中的结构错误。 本发明实施例中查询所保存的区域以及元素的转换映射信息,找出目标模型中死锁结构 的组成元素为区域b和元素c2-c3,在源模型中的编号为区域C和元素D2-D3,于是追踪 定位到源模型中的死锁错误。

步骤P12:整合步骤P04和步骤P11中验证出的结构错误,得出对于图2所示源模 型的最终验证结果,本发明实施例中的最终验证结果是:在区域C和区域D的D2-D3位 置处存在死锁错误,然后结束验证过程。

本发明方法以直观、简单、有效的方式,提出了一种基于控制流模式的过程模型转换 与结构验证方法,在一定程度上解决了现有的过程结构验证方法和工具面向特定语言而缺 乏通用性以及现有模型转换方法在转换某些控制流模式时精度不高并且控制流信息丢失 等问题,特别是将控制流模式的思想引入模型转换和验证过程,并在模型转换中使用基于控 制流模式与基于元素映射相结合的方法,能更好的提高模型转换的精度和效率,使得针对 某一特定语言的过程结构验证方法和工具能够应用到其他建模语言建立的模型。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号