论文部分内容阅读
北京大学研发的基于模式的软件过程构造工具集能够利用可复用的过程模式高效的定制适应特定项目需求的过程模型,此模型采用BPEL语言描述,可以在流程引擎的驱动下执行,为软件过程的自动化提供支持。然而,过程模式中可能存在的错误,以及对过程模型的手工修改都可能使得最终交付到过程引擎上执行的过程模型存在缺陷,并导致过程模型在执行中因异常而意外终止,或者产生死锁、不可达活动等问题。为解决此问题,在过程执行前,需要对BPEL语言描述的过程模型进行验证,并根据验证的结果改正错误。 由于BPEL本身未提供过程验证的支持机制,因此本文采用了基于Petri网的过程验证方法。此方法首先将BPEL过程转换为Petri网,然后再利用Petri网中的成熟算法对过程性质进行验证。这不仅因为研究者已经开发了丰富的基于Petri网的过程验证机制、算法,而且Petri网对过程中的并发、异步、分布式等特性提供较好的表达能力,能够方便的表达软件过程中的各种过程结构。经过对过程中常见的错误进行分析,本文归纳了三类常见的错误,并将这些错误抽象为对Petri网有界性、可达性、活性三种性质的违反,分别利用Petri网中的覆盖树算法、关联矩阵与状态方程,迁移矩阵来对三种性质进行验证。 本文首先对基于Petri网的BPEL过程验证方法进行概述;接下来,对过程中的常见错误进行了分析,并给出了验证这三类错误的Petri网算法;最后,给出了支撑上述验证方法的工具设计与实现细节。