基于面向对象技术的代数Petri网模型的研究
2014-06-12李金友纪洪波
李金友,纪洪波
(通化师范学院 计算机学院,吉林 通化 134002)
1 前言
随着计算机技术的迅速发展,计算机及其系统被广泛地应用到科研、教育、商业,以及军事等诸多领域.与之相应的软件开发的规模和复杂程度也越来越高.在开发过程中,不断增加开发预算,推后交付日期已经成为软件项目中亟待解决的问题.为此,国内外的学者和研究者对如何提高软件开发质量和开发效率进行了大量的研究[1].目前解决这一问题的方法主要是从建立合理高效的软件系统模型入手.而在众多的开发和设计中,Agent以及MAS理论和方法最受关注.
目前,国内外对Agent的研究和正在开发的项目有很多,主要包括形式化描述方法和非形式化描述两种[2].形式化描述方法可以很容易地建立理论研究与实际工程项目之间的联系(relation),能够在最大程度上减少设计阶段出现的错误,因此,软件的早期错误较少,软件开发成本较其它模型低.而非形式化描述方法语法简单,开发人员容易掌握和使用,但是存在精确度差,容易产生歧义性的缺点.因此,这种描述方法只适合那些有丰富工程和开发经验的人员使用.本文在对多种描述方法进行研究的基础上,采用了Petri网和面向对象等技术,提出一种面向代数Petri网的模型.通过实验表明,该模型可以有效解决目前形式化描述方法的缺点.
2 模型的形式化定义[3]
定义1:假设给定代数规格说明为Sp=(S,OP,X,EQ),那么OOAPN模型定义为3元组:
OOAPN=(OIP,A,ION)
(1)
其中,ION是一个经过修改的有色Petri网,代表OOAPN模型的内部行为,其形式为一个9元组:
ION=(P,T,H,d,,E,G,F,IO)
(2)
其中:
①P∪T=Ø,P∪T=Ø,HP×T∪T×P; ②d:P→GS,是一个映射,使得每一个库所关联一个基本类别,即:∀p∈P,d(p)∈{s|s∈S}; ③v:T→Ut∈T(Xt)MS,是一个赋值函数,给每一个转换t∈T赋予一组多重集变量.即∀t∈T,v(t)∈(Xt)MS;
OIP是对象标识库所,定义为一个4元组:
OIP=(oip,pid,m0,status)
(3)
定义2 在OOAPN中,库所集P定义为一个2元组:
P=(BP,AP)
(4)
定义3 在OOAPN模型中,转换集T定义为一个3元组:
T={BT,AT,TCREATE,COT}
(5)
其中:
BT是OOAPN模型类中的基本转换;
AT=(tn,refine-state,action)是抽象转换,其中:
①tn是抽象转换名;
②refine-state是一个逻辑型标志变量,指示抽象转换的精化,G(AT)=true,同时遵循如下规则:
如果refine-state==true,
抽象库所AT被进一步精化,并且υ(AT)∈U(Ut∈T(Xt)MS),否则,提炼网不被精化,内部行为的静态反映模拟为action.
图1 OOAPN模型的一般符号表示
OOAPN模型的图形表示如图1所示.其中TIN、TOUT分别表示IN转换和OUT转换.
3 OOAPN模型的行为语义定义
OOAPN模型的标识是一个映射M:P→DMS,即∀p∈P,M(p)∈DMS(D(p)),满足如下规则:
(1)对于简单库所,初始标识M0定义为初始化符号标识的计算,即:∀p∈BP,M0(p)=eval(m0(p));
通过定义和使能条件可以看出,基于面向对象技术的代数Petri网模型是类别代数理论、Petri网技术、结构化原理和面向对象方法的有机集成.基于面向对象技术的代数Petri网模型能够在最大程度上减少设计阶段出现的错误,软件的早期错误较少,软件开发成本较其它模型低.同时该方法语法简单,开发人员容易掌握和使用,并具有精确度高,不会产生歧义性的优点[4-5],在软件开发方面具有很好的可借鉴性.
参考文献:
[1]李金友.OOAPN模型建模工具正向代码的生成[J].通化师范学院学报,2009(8).
[2]Pillow.Pillow v2.2.1(PIL fork)tutorial[EB/OL].http://pillow.readthedocs.org/en/latest/handbook/tutorial.html,2013
[3]潘洪军.面向对象代数Petri网[J].吉林大学学报,2006(3).
[4]袁崇义.Petri网原理与应用[M].北京:电子工业出版社,1998.
[5]贾立新,薛钧义,茹峰.采用模糊Petri网的形式化推理算法及其应用[J].西安交通大学学报,2003(12).