基于面向方面Petri网的业务流程改进方法研究

2016-06-08 06:04张瑞云倪珊珊
计算机应用与软件 2016年5期
关键词:切点业务流程度量

张瑞云 张 璇,2* 王 旭 倪珊珊

2(云南大学软件学院 云南 昆明 650091)2(云南省软件工程重点实验室 云南 昆明 650091)3(云南大学经济学院 云南 昆明 650091)



基于面向方面Petri网的业务流程改进方法研究

张瑞云1张璇1,2*王旭3倪珊珊1

2(云南大学软件学院云南 昆明 650091)2(云南省软件工程重点实验室云南 昆明 650091)3(云南大学经济学院云南 昆明 650091)

摘要由于传统的业务流程改进方法需要重新设计实现业务流程,这样的改进方法不够灵活,改进风险较大,可重用性差。针对传统业务流程改进方法的不足,提出了面向方面的业务流程改进方法。面向方面的业务改进方法可以不直接修改原流程,而是根据实际改进需求,通过织入流程方面改进业务流程。这种改进方法比较灵活,降低了改进的风险,并提高了业务流程模块的可重用性,适用于需要经常改进的业务流程。

关键词业务流程改进面向方面Petri网

0引言

随着市场竞争的加剧,企业内外部环境日新月异,企业想要一直保证竞争力,就必须随着市场变化对业务流程进行灵活的改进[1]。

面向方面[2,3]是目前使用较为广泛的一种方法,本文将面向方面的思想运用到业务流程改进中,在需要改进的部分织入方面,在不直接修改原流程的情况下改进业务流程。

为了更好地形式化描述面向方面的业务流程改进,我们使用面向方面的思想来扩展Petri网[4],定义了面向方面Petri网的概念,并使用面向方面Petri网来实现面向方面业务流程的建模。

基于面向方面Petri网,我们针对几种常用的业务流程改进,提出了具体的实施方案。对于不同的业务流程改进需求,通过织入不同的方面,以实现所需的改进。并将铁路物流中的发送代理流程作为案例,使用本文提出的改进方法来改进业务流程。通过案例,详细地阐述了这种改进方法,并展示了这种改进方法的优势。

这种改进方法能够提高业务流程改进的灵活性。对于相同的改进需求,可以重复使用预定义好的改进方法,可重用性高。如果所需的流程改进没能实现,这些变化可以轻易消除,降低了业务流程改进的风险。弥补了传统业务流程改进方法的不足。

1相关工作

业务流程改进是由业务流程重组演化而来。1990年,迈克尔·哈默率先提出了流程重组[5]的概念。业务流程重组的思想一经提出,便迅速席卷了整个美国和其他工业化国家并风靡世界,但最终却以失败结束。业务流程改进便在这种情况下诞生了。业务流程改进观点的代表人物詹姆斯·哈林顿指出,业务流程改进的目标就是改进,通过逐步改进实现渐进式的再造[6]。

查阅了一些业务流程改进的资料,例如文献[1,7,8]中提出的业务流程改进方法,都是对业务流程进行重设计。这样的改进风险比较大,如果改进失败,将会导致企业经济受到严重损失。此外,在业务流程改进中,经常会遇到相同的改进需求,如果对于相同的改进需求,每次都去重新设计实现,这样会浪费很多不必要的人力和物力。

为了降低业务流程改进的风险,提高业务流程改进的可重用性,我们将面向方面的思想引入到业务流程改进中,如果预期的改进没有实现,可以通过删除织入的方面还原流程,降低了改进的风险。对于相同的改进需求,可以织入相同的预定义好的方面。方面只需要定义一次,定义好后,可以重复使用,织入到不同的流程中,提高了业务流程改进的可重用性。

面向方面是目前使用得比较广泛的一种方法,它最初出现在编程级别,即面向方面编程(AOP),主要用于解决面向对象编程不能解决的问题[9]。但发展到现在,面向方面已经不再局限于编程级别了,而是越来越多地延伸到软件开发生命周期的实现步骤,如需求工程、分析和设计等[10]。同样的,也可以将其运用到业务流程中,使用面向方面的方法对业务流程进行改进。

由于目前面向方面还没有统一的标准的建模方法[11],因此很多学者都对面向方面的建模方法进行了探索。文献[12-14]提出了面向方面Petri网的概念,并对面向方面Petri网作出了自己的定义,由于他们的定义各不相同,没办法统一,所以本文借鉴了他们的部分思想,根据具体的建模需求,对面向方面Petri网作出了自己的定义。

2面向方面Petri网

Petri网具有良好的图形描述能力,能够用来描述具有分布式、并行和随机性等的复杂系统[15],是业务流程建模的常用方法。但是传统的Petri网并不支持面向方面的建模,因此我们引入了面向方面Petri网,通过把面向方面的特征加入到Petri网中,扩展Petri网去支持面向方面建模。

2.1Petri网描述业务流程的基本模型

在使用Petri网描述业务流程模型时,常常用变迁元素表示活动,库所元素表示活动之间的条件关系,token表示流程执行的状态。常见的业务流程模型有顺序、选择、并发和迭代这四种[16]。

顺序表示一系列按固定顺序执行的活动;选择表示彼此之间具有相互制约与排斥关系的分支活动;并发指一组具备执行条件且互不影响的活动;迭代表示需要重复执行多次的活动。有了这四种基本的模型,只要灵活地加以组合和处理,就能把复杂多变的业务流程精确、完整地描述出来。

2.2面向方面Petri网定义

面向方面Petri网继承了面向方面的概念和特征,一个面向方面Petri网模型包括基本网(基本流程)和方面网(方面流程)。基本网、方面网和织入的形式化定义如下:

定义1(基本网)

基本网本质为一个基本Petri网,因此基本网的定义跟Petri网定义相同。根据文献[3]中对Petri网的定义,将基本网定义为一个满足下列条件的三元组N=(S,T;F):

S∪T≠∅

(1)

S∩T=∅

(2)

F⊆(S×T)∪(T×S)

(3)

dom(F)∪cod(F)=S∪T

(4)

其中:

(5)

(6)

定义2(方面网)

一个方面网为一个三元组A=(Cut,VN,Ct),其中Cut为切点,VN为通知,Ct为通知类型。其中:

(1) 切点Cut为一个二元组Cut=(bcut,acut),其中bcut={bcut(1),…,bcut(n)}(n≥1)为基本网中切点的有限集合,bcut(x)是基本网中的切点(x为参数,表示的是切点的编号)。acut={acut(1),…,acut(n)}(n≥1)为方面网中切点的有限集合,acut(x)是方面网中的切点(x为参数,表示的是切点的编号)。

(2) 通知VN为一个三元组VN=(S,T;F),本质为一个基本Petri网,定义与基本网定义相同。为了跟基本网中的元素进行区分,在通知的库所元素和变迁元素名称前加上其对应方面的方面名。

(3) Ct={Ct(1),…,Ct(n)}(n≥1)为通知类型的有限集合。Ct(x)为切点x对应的通知类型,Ct(x)=before或Ct(x)=after或Ct(x)=around,分别对应前置通知、后置通知和环绕通知。

定义3(织入)

给出一个基本网N和方面网A,将方面网A织入到基本网N中的织入机制定义如下:

(1) 方面网A中的切点acut(x)与基本网N中的切点bcut(x),参数x相同的,按照通知类型连接,并增加连接切点的弧线Fcut,Fcut={Fcut(1),…,Fcut(n)}(n≥1)为一个新增的连接切点的流关系集合。

当Ct(x)=before时,Fcut(x)=(acut(x),bcut(x));

当Ct(x)=after时,Fcut(x)=(bcut(x),acut(x));

当Ct(x)=around时,不增加弧线。

(2) 定义基本网N=(S,T;F)中需要删除的部分为D=(SD,TD;FD),其中SD⊆S;TD⊆T;FD⊆F。

(3) 从基本网N中删除需要删除的部分D。

3基于面向方面Petri网的业务流程改进方法

业务流程改进的重点在于消除非增值活动、调整核心增值活动,最终为客户增加价值[7]。结合实际情况,我们总结了几种常用的改进:“重新执行”、“删除”、“替代”、“增加”、“交换执行顺序”、“顺序变并发”和“并发变顺序”。

下面我们使用面向方面的方法来实现以上几种改进,在不改变原有流程的基础上改进业务流程。

(1) 重新执行

为了预防可能产生的流程错误,我们对比较重要的或者出错率较高的活动增加一个业务活动度量,得到一个度量值,当度量值不合格时,重新执行该活动,当度量值合格时,就执行下一个活动。

图1(a)为基本网N,代表原业务流程。

图1(b)为方面网A,其中At1为度量,As1为度量值,V为空变迁。空变迁仅有传递token的作用,不指代具体的活动。

该面向方面Petri网中共有3个切点,其中bcut(1)=s2,bcut(2)=s1,bcut(3)=t2;acut(1)=At1,acut(2)=At2,acut(3)=As1;Ct(1)=after,Ct(2)=before,Ct(3)=before。需要删除的部分D=(SD,TD,FD),SD=∅;TD=∅;FD={(s2,t2)}。

图1(c)为基本网N和方面网A的织入网,即改进后的业务流程模型。在改进后的业务流程中,活动t1执行完后,At1对其进行度量,得到度量值As1,若度量值合格,就执行下一个活动t2,若度量值不合格,就重新执行活动t1。

图1 重新执行

(2) 删除

删除业务流程中的非增值作业活动,使业务流程变得更优。

图2(a)为基本网N,代表原业务流程。

图2(b)为方面网A,其中V为空变迁。

该面向方面Petri网中共有2个切点,其中bcut(1)=t1,bcut(2)=t3;acut(1)=As1,acut(2)=As2;Ct(1)=after,Ct(2)=before。需要删除的部分D=(SD,TD,FD),SD={s2,s3};TD={t2};FD={(t1,s2),(s2,t2),(t2,s3),(s3,t3)}。

图2(c)为基本网N和方面网A的织入网,即改进后的业务流程模型。在改进后的业务流程中,t2不会被执行。

图2 删除

(3) 替代

使用整合简化后的流程来替代原来冗余复杂的流程。

图3(a)为基本网N,代表原业务流程。

图3(b)为方面网A,其中At1为用来替代t2的活动。

该面向方面Petri网中共有2个切点,其中bcut(1)=t1,bcut(2)=t3;acut(1)=As1,acut(2)=As2;Ct(1)=after,Ct(2)=before。需要删除的部分D=(SD,TD,FD),SD={s2,s3};TD={t2};FD={(t1,s2),(s2,t2),(t2,s3),(s3,t3)}。

图3(c)为基本网N和方面网A的织入网,即改进后的业务流程模型。在改进后的业务流程中,At1会替代t2被执行,即At1会执行而t2不会执行。

图3 替代

(4) 增加

将需要补充的新的业务活动增加到原业务流程中。

图4(a)为基本网N,代表原业务流程。

图4(b)为方面网A,其中At1为需要增加的活动。

该面向方面Petri网中共有2个切点,其中bcut(1)=t1,bcut(2)=s2;acut(1)=As1,acut(2)=At1;Ct(1)=after,Ct(2)=before。需要删除的部分D=(SD,TD,FD),SD=∅;TD=∅;FD={(t1,s2)}。

图4(c)为基本网N和方面网A的织入网,即改进后的业务流程模型。在改进后的业务流程中,活动At1被成功的增加到原业务流程中,并且会在t1之后t2之前执行。

图4 增加

(5) 交换执行顺序

如果两个活动之间没有依赖关系,但由于资源的支持有限,不可以同时执行,可以交换两个活动的执行顺序,让易出错(即失败率高)的,耗时少的活动先执行[17]。使流程的运作更加顺畅,效率更优。

图5(a)为基本网N,代表原业务流程。在基本网N中,t1先执行,t2后执行。

图5(b)为方面网A,其中At1=t2,At2=t1(元素相等即它们代表的是同一个活动)。

该面向方面Petri网中共有2个切点,其中bcut(1)=s1,bcut(2)=s3;acut(1)=As1,acut(2)=As2;Ct(1)=after,Ct(2)=before。需要删除的部分D=(SD,TD,FD),SD=∅;TD=∅;FD=∅。

图5(c)为基本网N和方面网A的织入网,即改进后的业务流程模型。在改进后的业务流程中,两条支路是选择执行的关系,即可以根据具体情况选择先执行t1后执行t2或者先执行t2后执行t1。

图5 交换执行顺序

(6) 顺序变并发

如果两个活动之间没有依赖关系,可以同时执行,则可以将其由顺序关系转变为并发关系,让他们可以同时执行,提高业务流程的效率。

图6(a)为基本网N,代表原业务流程。在原业务流程中,活动t2和活动t3为顺序关系。

图6(b)为方面网A1,其中A1s1=s3,A1t1=t4。

图6(c)为方面网A2,其中A2t1=t3。

该面向方面Petri网中共有4个切点,其中bcut(1)=s3,bcut(2)=t4,bcut(3)=t1,bcut(2)=t4;acut(1)=A1s1,acut(2)=A1t1,acut(3)=A2s1,acut(4)=A2s2;Ct(1)=around,Ct(2)=around,Ct(3)=after,Ct(2)=before。需要删除的部分D=(SD,TD,FD),SD={s4} ;TD={t3} ;FD={(s3,t3),(t3,s4),(s4,t4)}。

图6(d)为基本网N和方面网A的织入网,即改进后的业务流程模型。在改进后的业务流程中,活动t2和活动t3由原来的顺序关系变为了并发关系。

图6 顺序变并发

(7) 并发变顺序

随着企业内外部环境的改变,如果在原流程中并发执行的两个活动在新环境中不能同时执行,就需要将其改为顺序执行。

图7(a)为基本网N,代表原业务流程。在原业务流程中,活动t2和活动t3为并发关系。

图7(b)为方面网A1,其中A1s1=s3,A1s2=s4,V为空变迁。

该面向方面Petri网中共有2个切点,其中bcut(1)=s3,bcut(2)=t4;acut(1)=As1,acut(2)=As2;Ct(1)=around,Ct(2)=around。需要删除的部分D=(SD,TD,FD),SD=∅;TD=∅;FD={(s3,t4),(t1,s4)}。

图7(c)为基本网N和方面网A的织入网,即改进后的业务流程模型。在改进后的业务流程中,活动t2和活动t3由原来的并发关系变为了顺序关系。

图7 并发变顺序

4案例分析

物流是现代服务业的重要组成部分,物流的发展对我国的经济发展有着重大的意义。铁路作为我国重要的物流通道,肩负着我国物资流通的使命,在运输过程中发挥着不可替代的作用[18]。发送代理流程是铁路物流中心业务流程之一,改进发送代理流程能够提高铁路物流的总体效率。本文使用文献[19]中铁路物流的发送代理流程作为研究案例。

铁路物流发送代理的原业务流程如图8所示。

图8 铁路物流发送代理流程图

根据图8所示的流程图,绘制出铁路物流发送代理原业务流程的Petri网模型,如图9所示。

图9 铁路物流发送代理Petri网模型

发送代理流程改进分析:

① 客户提出需求t2需要审核,否则如果需求理解有误,后面的流程将全部错误。为了预防可能产生的错误,我们对t2增加一个度量,度量不合格就重新执行该活动。

② 客户提出申报计划t4需要审核,因为需要确定客户的申报计划是否合理,我们对t4增加一个度量,度量不合格就重新执行该活动。

③ 因为流程采用计算机前期录入,自动存档,无需再次录入,因此删除录入计划信息t10。

④ 核对货物并检查作业安全t14出错的的概率比填制《货物搬入证》t13出错的概率大得多,且t14的执行与t13没有依赖关系,但是由于执行人是相同的,不能改为并发,所以应当让t14先于t13执行,因此,交换t13与t14的执行顺序。

⑤ 在要求请车t18之前,应该对货物情况进行存档,故应该在t18之前增加一个存档。

⑥ 填制运单t19需要审核,因为运单中的信息必须填写正确,如果出错会带来很多不必要的损失。因此对t19增加一个度量,度量不合格就重新执行该活动。

⑦ 因为输机点直接根据电子运单进行批量化处理,不再汇总,因此删除汇总请车计划t22。

⑧ 在通知客户请车情况t23后,应该得到客户确认再进行汇总请车计划,故应该在t23后增加一个客户确认流程。

⑨ 汇总存档请车计划t24需要审核,因为汇总信息不能出错,出错将会导致后面的流程也跟着出错。因此对t24增加一个度量,度量不合格就重新执行该活动。

⑩ 因为安放防护标识t26和检查线路t27这两个流程间并无因果关系和依赖性,且无资源冲突,因此可以将其改为并发以提高效率。

对于相同的改进需求,其织入的方面只需要定义一次,便可以被多次重复使用。具体改进如下:

(1) ①②⑥⑨都需要使用“重新执行”,根据上一节中的“重新执行”改进,如图10所示定义方面A1。

图10 方面A1

其中A1t1为度量,A1s1为度量值,V为空变迁。①②⑥⑨分别按照其指定的织入方式织入方面A1。

(2) ③⑦都需要使用“删除”,根据上一节中的“删除”改进,如图11所示定义方面A2。

图11 方面A2

其中V为空变迁。③⑦分别按照其指定的织入方式织入方面A2。

(3) ④需要使用“交换执行顺序”,根据上一节中的“交换执行顺序”改进,如图12所示定义方面A3。

图12 方面A3

其中,在④中,A3t1=t14,A3t2=t13。④按照其指定的织入方式织入方面A3。

图13 方面A4

(5) ⑩需要使用“顺序变并发”,根据上一节中的“顺序变并发”改进,如图14所示定义方面A5。

图14 方面A5

其中,在⑩中,A5t1=t27。⑩按照其指定的织入方式织入方面A5。

图15 方面A6

将所有定义好的方面按照指定的织入方式织入到原业务流程中,得到改进后的业务流程Petri网模型,如图16所示。

图16 改进后的发送代理Petri网模型

由上述案例可知,使用面向方面的业务流程改进方法可以不直接修改原流程来改进业务流程。在修改后的业务流程中,保留了原业务流程。如果改进后的某部分流程需要还原,可以通过删除织入的方面,消除这些变化,还原流程,降低了业务流程改进的风险。对于相同的业务改进需求,可以织入相同的方面,其方面只需要定义一次,这样大大节省了改进所需耗费的人力物力。

5结语

本文将面向方面的思想运用到业务流程的改进中,通过织入流程方面来改进业务流程。因为这种改进方法保留了原流程,可以通过删除织入的方面来还原流程,所以这种方法能够降低改进的风险。此外,面向方面有利于业务流程的重用,增加了业务流程的可重用性,能够减少业务流程改进所需要耗费的人力物力。面向方面Petri网是一种很好用的面向方面建模方法,能够形式化地描述面向方面业务流程的改进,通过面向方面Petri网模型,直观地展示出了本文提出的改进方法。本文提出的几种具体的改进方法,可以在实际的业务流程改进中使用,具有实用性。

在之后的研究中,将通过方面追踪来进一步验证这种改进方法的正确性和有效性。

参考文献

[1] 李枫林.企业业务流程管理[M].武汉:武汉大学出版社,2006.

[2] Clarke.面向方面的分析与设计[M].武汉:机械工业出版社,2006.

[3] Amin J.Foundation of Aspect Oriented Business Process Management[D].Sweden:Stockholm University,2011.

[4] 吴哲辉.Petri网导论[M].北京:机械工业出版社,2006.

[5] Michael H.Reengineering work:don’t automate,obliterate[J].Harvard Business Review,1990,7(8):104-112.

[6] James H.业务流程改进[M].于增彪,译.北京:中国财政经济出版社,2002.

[7] 水藏玺.流程优化与再造[M].北京:中国经济出版社,2012.

[8] 蒋志青.企业业务流程设计与管理[M].北京:电子工业出版社,2004.

[9] Gunter M.Aspect-Oriented User Requirements Notation[D].Canada:University of Ottawa,2008.

[10] Andrea S,Schwinger W,Kapsammer E.A Survey on Aspect-Oriented Modeling Approaches[R].Austria:Vienna university of technology,Austria October,2007.

[11] 刘瑞成,张立臣.基于UML的面向方面建模方法[J].计算机科学,2005,32(10):204-213.

[12] Xu Dianxiang.Threat-driven modeling and verification of secure software using aspect-oriented petri nets[J].Software Engineering,2006,32(4):265-278.

[13] 刘瑞成,张立臣.基于面向方面的实时系统建模方法[J].计算机科学,2006,33(7):262-265.

[14] 范贵生.基于面向方面技术的服务安全组合故障分析[J].小型微型计算机系统,2011,32(9):1762-1769.

[15] 袁崇义.Petri应用[M].北京:科学出版社,2013.

[16] 李彤.软件演化过程建模[M].北京:清华大学出版社,2008.

[17] Alireza Pourshahid.An Aspect-Oriented Framework for Business Process Improvement[J].Business Information Processing,2009,26(8):290-305.

[18] 李兆云,陈潇尧,王喜富.铁路物流中心业务流程及发展模式研究[J].物流技术,2010,29(8):30-36.

[19] 聂闻聪.基于Petri网的铁路物流中心业务流程优化[D].四川:西南交通大学,2009.

ON BUSINESS PROCESS IMPROVEMENT METHOD BASED ON ASPECT-ORIENTED PETRI NET

Zhang Ruiyun1Zhang Xuan1,2*Wang Xu3Ni Shanshan1

1(SchoolofSoftware,YunnanUniversity,Kunming650091,Yunnan,China)2(TheKeyLaboratoryforSoftwareEngineeringofYunnanProvince,Kunming650091,Yunnan,China)3(SchoolofEconomics,YunnanUniversity,Kunming650091,Yunnan,China)

AbstractSince traditional business process improvement methods need to redesign the implementation of business process, they are not flexible enough and have higher risk and poor reusability as well. In view of this, we propose an aspect-oriented business process improvement method. This method can improve the business process according to practical improvement demand by weaving the process aspects without directly modifying the original processes. It is flexible, reduces the risks of improvement, and improves the reusability of business process module. It is suitable for the business process that needs to be improved frequently.

KeywordsBusiness process improvementAspect-orientedPetri net

收稿日期:2014-12-30。国家自然科学基金项目(61262025,6137 9032,61502413,61262024);云南省应用基础研究计划面上项目(C012 0150180);云南省教育厅科学研究基金重点项目(2015Z020,2013A0 56);云南省软件工程重点实验室开放基金面上项目(2015SE202,2012 SE308);云南大学高水平创新团队“软件工程创新团队”专项项目;云南大学“中青年骨干教师培养计划”专项项目;云南大学人文社科项目基金(13YNUHSS007)。张瑞云,硕士,主研领域:面向方面建模,Petri网。张璇,副教授。王旭,讲师。倪珊珊,硕士。

中图分类号TP311

文献标识码A

DOI:10.3969/j.issn.1000-386x.2016.05.013

猜你喜欢
切点业务流程度量
鲍文慧《度量空间之一》
模糊度量空间的强嵌入
RPA机器人助业务流程智能化
抛物线的切点弦方程的求法及性质应用
迷向表示分为6个不可约直和的旗流形上不变爱因斯坦度量
一种伪内切圆切点的刻画办法
企业财务管理、业务流程管理中整合ERP之探索
互联网+背景下物流公司的业务流程再造
基于财务业务流程再造的ERP信息系统构建探析
椭圆的三类切点弦的包络