一种适应需求变更的形式化Petri网模型自动演化方法与流程

文档序号:13207102阅读:376来源:国知局
一种适应需求变更的形式化Petri网模型自动演化方法与流程

本发明涉及petri网的模型技术领域,特别涉及一种适应需求变更的形式化petri网模型自动演化方法。



背景技术:

随着分布式技术及网络技术的发展,软件开发所面临的挑战主要来自于业务系统自身需求的变化和新需求的融入增长。这种需求的变化使得业务系统与不同环境下的应用基础结构相互交织,这就要求业务系统更加灵活且可调整,以满足不同技术平台的要求。而模型演化可以有效的解决业务需求的变更问题。

petri网作为一个通用的形式化模型,利用“流”的形式分析系统的行为,能够更好的定义业务模型的过程语义。因而,当前众多的研究聚焦于petri网形式化模型的研究,并利用形式验证和模型推理验证业务模型的正确性。因此,petri网形式化模型的演化功能不仅能解决业务模型变更所带来的业务模型重验证问题,而且还能解决形式化模型本身的进一步优化问题。

由于当前的业务建模通常基于业务需求稳定清晰的前提,因而业务模型形式化研究的重点在于利用csp、本体模型、范畴论、petri网等形式化方法对业务过程模型进行验证。但在软件开发过程中,一方面由于不同涉众(stakeholders)之间沟通和理解的困难、企业环境的影响、需求本身的动态性等不确定问题引起的软件失败项目占很大比重。另一方面,随着分布式技术和网络技术的发展,当前软件系统更具复杂性、开放性、动态变化性和多形态性的特点,使得业务系统的需求具有更大的不确定性。这些需求的不确定性会导致业务过程模型会发生变化,因而业务模型的形式化研究必须考虑且解决需求变更所带来的一系列模型验证问题。因此,支持需求变更的petri网形式化模型自动演化操作能进一步节省模型形式化验证的时间和成本。



技术实现要素:

本发明针对现有技术的缺陷,提供了一种适应需求变更的形式化petri网模型自动演化方法,能有效的解决上述现有技术存在的问题。

为了实现以上发明目的,本发明采取的技术方案如下:

一种适应需求变更的形式化petri网模型自动演化方法,包括以下步骤:

s1:设计模型检查程序对原始业务过程模型和修改后的业务过程模型进行匹配检查,检查程序需要将这两个模型中不匹配的内容记录下来,并根据内容确定执行的修改操作;

s2:设计模型探测程序定时检查模型修改数据文件中的内容,如果该文件中存在新的信息,则启动所设计的模型演化程序,准备开始执行演化操作;

s3:设计模型演化程序读取模型修改数据文件的内容,根据该文件中记录的更改操作和更改内容调用petri网模型中相应的add、join、merge、update、delete等演化操作,从而实现模型演化程序的自动执行。

进一步地,所述s1的模型检测组件是为了查找出业务过程模型中被修改的对象及其被修改的操作;具体包括以下步骤:

s11:以原始的bpmn模型文件和新bpmn模型文件为输入;

s12:设计一致性匹配算法对原始bpmn模型和新bpmn模型进行一致性匹配检验;

s13:创建一个xml格式的modification_datas文件,记录模型修改的数据和操作;该记录文件中根据bpmn模型的元模型结构,设计包括bpmn模型中的任务task、时序流sequenceflow、消息流messageflow、网关gateway等对象记录的列表。

进一步地,所述s12中的一致性匹配检验步骤如下:

s121:在程序中设计一个任务列表存储bpmn模型中任务对象的修改信息;

s122:设计o_tasks和n_tasks两个列表分别存储原始bpmn模型和新bpmn模型中的任务对象;

s123:为任务对象设计一个操作属性,记录任务对象在新的模型中所执行的操作;

s124:针对每一个任务对象,一致性匹配算法执行比较操作,如果一个在原始bpmn模型中存在的任务对象在新bpmn模型中不存在,则表明该任务对象在新的bpmn模型中执行了删除操作,因此,其操作标识符被标识为“delete”;反之,则认为在新的bpmn模型中执行了增加任务的操作,其操作标识为“insert”;直到对bpmn模型中的所有元素进行检查,并记录修改的内容和操作,为演化组件的执行提供数据依据。

进一步地,所述s3中的演化操作是基于petri网元模型进行设计,具体包括以下步骤:

s31:设计petri网模型的元模型结构;

s32:设计元模型元素的演化操作;

s33:根据s31的元模型结构和s32的演化操作,设计模型演化组件;

s34:基于eclipse建模平台,利用qvt模型转换语言的in-place机制,实现模型演化组件开发。

进一步地,s31所述的petri网模型中的主要元素包括事件transition、条件place、连接弧arc、初始标识marking组成;其中事件分为静态事件silenttransition和动态事件behaviourtransition;静态事件以实心矩形标记用于表示业务过程的开始和结束,以及捕获业务过程流的路径信息;而动态事件表示业务过程模型中的动态行为事件,以空心矩形标记用于表示业务过程模型中的任务元素和事件信息;place元素以圆标记用于表示不同任务之间的执行流信息以及表示任务结点元素的执行顺序;arc元素用于连接条件元素与事件元素。

进一步地,s32所述的模型演化操作主要是对s31中的事件元素进行设计,其具体步骤为:

s321:设计petri网模型元素的演化操作;

s322:设计behaviourtransition元素演化;

s323:设计silenttransition元素演化;

s324:设计place元素演化。

进一步地,s321中需要根据bpmn模型元素与petri网模型元素之间的对应关系,设计petri网模型中的动态事件behaviourtransition、静态事件silenttransition以及条件place元素的演化操作;

进一步地,s322中根据bpmn模型元素与petri网模型元素之间的对应关系,bpmn模型中task元素和intermediatethrowevent元素的结点合并修改会启动behaviourtransition元素的“merge”演化执行;

其演化操作的步骤如下:

s3221:设计一个qvt查询,从黑盒库中获取被删除的behaviourtransition结点的id号;

s3222:执行删除behaviourtransition结点操作;

s3223:获取连接被删除结点的输入弧,删除连接该弧的源place结点;

s3224:删除连接被删除behaviourtransition结点的输出弧;

s3225:修改被删结点的输入弧,将该弧的源端和目的端重新连接。

进一步地,s323所述的silenttransition元素演化内容,根据bpmn模型与petri网模型之间的对应关系,bpmn模型中的开始事件、结束事件和所有网关的修改会涉及到形式化petri网模型中的silenttransition元素的演化;其静态事件元素的增加结点演化操作步骤如下:

s3231:设计一个查询,获取bpmn模型中新增网关元素的id号,同时在petri网模型中克隆一个静态变迁元素;

s3232:设置新增静态变迁元素的名字;

s3233:克隆一个源“place”元素和一个源“arc”元素;

s3234:设置新增“arc”元素的源点和终点。

进一步地,s33所述的模型演化组件包括:模型演化组件、模型黑盒库组件和模型检查组件三个组件;其中,模型演化组件实现qvto转换;模型黑盒库组件方便模型演化组件调用java黑盒操作;而模型检查组件执行模型一致性检查算法,匹配原bpmn模型与更改后的bpmn模型的模型元素,并记录修改的数据及修改操作;

其模型演化操作的步骤为:首先执行模型检测组件,记录模型修改的数据及操作;然后模型黑盒库组件分析这些修改数据和修改操作,并将这些数据传递给转换组件;最后模型演化组件读取这些参数,并调用petri网模型的元模型执行in-place转换,进而重写原始的petri网形式化模型,完成模型的演化操作。

进一步地,s34所述的演化实现步骤如下:

s341:当bpmn模型中的task结点被删除,该演化操作启动执行;

s342:在“inout”映射中首先需要定义一个getobjecttodelete()查询,用于获取需要删除的behaviourtransition结点的信息;

s343:getobjecttodelete()查询使用黑盒方法isdeleteobject(),读取修改记录数据的文件并定位删除结点;

s344:执行删除结点操作;

s345:删除连接被删除结点的arc和place元素;

s346:修改删除结点的输入弧的目标连接点。

与现有技术相比本发明的优点在于:

1、所设计的模型检测组件能够检测和记录需求变更的内容和操作,避免业务过程模型变更所带来的重复性形式化操作。

2、基于模型驱动技术所设计的模型演化组件,能实现petri网模型形式化演化操作的自动执行。

3、对petri网模型的自动演化操作的设计进一步扩展了petri网形式化业务模型的能力,为不确定需求的业务建模提供保障。

4、利用模型驱动技术构建petri网形式化模型的自动演化机制,并利用java语言设计模型检测组件,实现模型演化操作的自动化执行,可以帮助软件工程师在不需要了解详细的形式化理论的基础上对业务过程模型进行变更,保持变更的业务过程模型的正确性。

附图说明

图1为本发明实施例petri网模型演化步骤示意图;

图2为本发明实施例bpmn模型的模型一致性匹配算法示意图;

图3为本发明实施例petri网元模型结构示意图;

图4为本发明实施例merge操作的in-place转换示意图;

图5为本发明实施例增加网关操作的in-place转换示意图;

图6为本发明实施例petri网模型的演化组件结构示意图;

图7为本发明实施例删除behaviourtransition结点的演化实现示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明做进一步详细说明。

一种适应需求变更的形式化petri网模型自动演化方法,包括以下步骤:

s1:设计模型检查程序对原始业务过程模型和修改后的业务过程模型进行匹配检查,检查程序需要将这两个模型中不匹配的内容记录下来,并根据内容确定执行的修改操作;

s2:设计模型探测程序定时检查模型修改数据文件中的内容,如果该文件中存在新的信息,则启动所设计的模型演化程序,准备开始执行演化操作;

s3:设计模型演化程序读取模型修改数据文件的内容,根据该文件中记录的更改操作和更改内容调用petri网模型中相应的add、join、merge、update、delete等演化操作,从而实现模型演化程序的自动执行。

进一步地,s1所述的模型检测组件是为了查找出业务过程模型中被修改的对象及其被修改的操作。具体包括以下步骤:

s11:以原始的bpmn模型文件和新bpmn模型文件为输入;

s12:设计一致性匹配算法(图2)对原始bpmn模型和新bpmn模型进行一致性匹配检验;

s13:创建一个xml格式的modification_datas文件,记录模型修改的数据和操作。该记录文件中根据bpmn模型的元模型结构,设计包括bpmn模型中的任务(task)、时序流(sequenceflow)、消息流(messageflow)、网关(gateway)等对象记录的列表。

进一步地,步骤s12中的一致性匹配检验过程如下:

s121:在程序中设计一个任务列表存储bpmn模型中任务对象的修改信息;

s122:设计o_tasks和n_tasks两个列表分别存储原始bpmn模型和新bpmn模型中的任务对象;

s123:为任务对象设计一个操作属性,记录任务对象在新的模型中所执行的操作;

s124:针对每一个任务对象,一致性匹配算法执行比较操作,如果一个在原始bpmn模型中存在的任务对象在新bpmn模型中不存在,则表明该任务对象在新的bpmn模型中执行了删除操作,因此,其操作标识符被标识为“delete”;反之,则认为在新的bpmn模型中执行了增加任务的操作,其操作标识为“insert”。直到对bpmn模型中的所有元素进行检查,并记录修改的内容和操作,为演化组件的执行提供数据依据。

进一步地,s3中的演化操作是基于petri网元模型进行设计,具体包括以下步骤:

s31:设计petri网模型的元模型结构;

s32:设计元模型元素的演化操作;

s33:根据s31的元模型结构和s32的演化操作,设计模型演化组件;

s34:基于eclipse建模平台,利用qvt(查询-视图-转换)模型转换语言的in-place机制,实现模型演化组件开发。

优选地,s31所述的petri网元模型结构如图3所示,该petri网模型中的主要元素包括事件(transition)、条件(place)、连接弧(arc)、初始标识(marking)组成。其中事件分为静态事件(silenttransition)和动态事件(behaviourtransition)。静态事件以实心矩形标记用于表示业务过程的开始和结束,以及捕获业务过程流的路径信息。而动态事件表示业务过程模型中的动态行为事件,以空心矩形标记用于表示业务过程模型中的任务元素和事件信息。place元素以圆标记用于表示不同任务之间的执行流信息以及表示任务结点元素的执行顺序。arc元素用于连接条件元素与事件元素。在本实施例中,一个带有前置条件的静态事件一旦被标记为标符(token)就意味着业务过程的开始。

在petri网的这些模型元素中,事件元素描述业务过程模型中的行为内容。

优选地,s32所述的模型演化操作主要是对步骤s31中的事件元素进行设计,其具体步骤为:

s321:设计petri网模型元素的演化操作;

s322:设计behaviourtransition元素演化;

s323:设计silenttransition元素演化;

s324:设计place元素演化。

优选地,s321中需要根据bpmn模型元素与petri网模型元素之间的对应关系,设计petri网模型中的动态事件(behaviourtransition)、静态事件(silenttransition)以及条件(place)元素的演化操作。其bpmn模型与petri网模型之间的一致性对应关系和演化操作如表1所示。

表1与bpmn模型保持一致性的petri网模型演化操作

优选地,s322中根据表1中的对应关系,bpmn模型中task元素和intermediatethrowevent元素的修改会启动behaviourtransition元素的演化执行。在实际的信息系统中,分析员在业务建模过程中有可能会修改业务模型,比如将两个相似任务进行合并,或者将一个复杂的任务分解为多个独立的任务等修改操作。以图4演示的模型修改为例,根据一致性原则,“validateusername”和“validatepassword”两个任务执行“merge”操作,则相应的petri网中需要将两个place元素合并,并删除其中一个behaviourtransition元素。

其演化操作的步骤如下:

s3221:设计一个qvt查询,从黑盒库中获取被删除的behaviourtransition结点的id号;

s3222:执行删除behaviourtransition结点操作;

s3223:获取连接被删除结点的输入弧,删除连接该弧的源place结点;

s3224:删除连接被删除behaviourtransition结点的输出弧;

s3225:修改被删结点的输入弧,将该弧的源端和目的端重新连接。

实现上述“merge”操作需要设计的qvtin-place操作如表2所示。

表2merge操作设计

优选地,s323所述的silenttransition元素演化内容,根据表1中bpmn模型与petri网模型之间的对应关系,bpmn模型中的开始事件、结束事件和所有网关的修改会涉及到形式化petri网模型中的silenttransition元素的演化。在实际的信息系统业务中,系统分析员在业务模型中或许会增加一个平衡(parallel)网关将一条业务路径扩展为多条业务路径。一旦bpmn模型中的网关元素进行了修改,则petri网形式化模型需要执行in-place转换完成模型演化。

以网关元素的演化操作为例,图5显示了在网上购物系统中,用户进行订单支付之前可能会有几种业务情形,如用户可以取消订单、用户在规定的时间内没有完成支付等,针对这种情形的业务,bpmn模型中需要添加一个“inclusive”网关和相应的操作,而形式化petri网模型中则需要执行的模型演化操作包括新增silenttransition、place、arc等模型元素。

其静态事件元素的模型演化操作步骤如下:

s3231:设计一个查询,获取bpmn模型中新增网关元素的id号,同时在petri网模型中克隆一个静态变迁元素;

s3232:设置新增静态变迁元素的名字;

s3233:克隆一个源“place”元素和一个源“arc”元素;

s3234:设置新增“arc”元素的源点和终点。

以上4个步骤的实现需要定义一系列qvto操作,表2列举了新增“silenttransition”元素演化操作的规则。

表2增加silenttransition结点演化操作设计

优选地,s33所述的模型演化组件包括模型演化组件、模型黑盒库组件和模型检查组件三个组件(图6)。其中,模型演化组件(petrinetin-place.core.qvt.transformation)实现qvto转换;模型黑盒库组件(petrinetin_place.core.qvt.libraries)方便模型演化组件调用java黑盒操作;而模型检查组件执行模型一致性检查算法,匹配原bpmn模型与更改后的bpmn模型的模型元素,并记录修改的数据及修改操作。其模型演化操作的步骤为:首先执行模型检测组件,记录模型修改的数据及操作;然后模型黑盒库组件分析这些修改数据和修改操作,并将这些数据传递给转换组件;最后模型演化组件读取这些参数,并调用petri网模型的元模型执行in-place转换,进而重写原始的petri网形式化模型,完成模型的演化操作。

优选地,s34所述的演化实现过程见图7所示,以删除behaviourtransition结点演化操作为例,其具体过程为:

s341:当bpmn模型中的task结点被删除,该演化操作启动执行;

s342:在“inout”映射中首先需要定义一个getobjecttodelete()查询,用于获取需要删除的behaviourtransition结点的信息;

s343:getobjecttodelete()查询使用黑盒方法isdeleteobject(),读取修改记录数据的文件并定位删除结点;

s344:执行删除结点操作;

s345:删除连接被删除结点的arc和place元素;

s346:修改删除结点的输入弧的目标连接点。

本实施例提供的在eclipse平台上的适应需求变更的petri网模型的自动演化方法,应用模型驱动开发技术,通过读取业务过程模型的修改信息和修改操作,利用qvto模型转换语言的in-place转换技术实现了petri网模型的自动演化操作。设计的模型检测组件克服了模型单一演化操作不能进行自动化联动演化操作的缺点。根据实际需要,也可以在其他模型驱动开发平台上应用本方法建模,如rsa(ibmrationalsoftwarearchitect)。因此,本发明提供的使用需求变更的petri网模型演化方法,可以广泛的适用于复杂业务系统的业务建模。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1