李金友,紀洪波
(通化師范學院 計算機學院,吉林 通化 134002)
隨著計算機技術的迅速發展,計算機及其系統被廣泛地應用到科研、教育、商業,以及軍事等諸多領域.與之相應的軟件開發的規模和復雜程度也越來越高.在開發過程中,不斷增加開發預算,推后交付日期已經成為軟件項目中亟待解決的問題.為此,國內外的學者和研究者對如何提高軟件開發質量和開發效率進行了大量的研究[1].目前解決這一問題的方法主要是從建立合理高效的軟件系統模型入手.而在眾多的開發和設計中,Agent以及MAS理論和方法最受關注.
目前,國內外對Agent的研究和正在開發的項目有很多,主要包括形式化描述方法和非形式化描述兩種[2].形式化描述方法可以很容易地建立理論研究與實際工程項目之間的聯系(relation),能夠在最大程度上減少設計階段出現的錯誤,因此,軟件的早期錯誤較少,軟件開發成本較其它模型低.而非形式化描述方法語法簡單,開發人員容易掌握和使用,但是存在精確度差,容易產生歧義性的缺點.因此,這種描述方法只適合那些有豐富工程和開發經驗的人員使用.本文在對多種描述方法進行研究的基礎上,采用了Petri網和面向對象等技術,提出一種面向代數Petri網的模型.通過實驗表明,該模型可以有效解決目前形式化描述方法的缺點.
定義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轉換.
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).