摘要:本文討論Petri網模型和函數之間的映射問題。用Petri網的運行等效完成程序的執行。為系統中每一個功能模塊建立一個Petri網模型,對每個Petri網進行封裝,組合所有的Petri網,完成系統的開發。最后,給出一個實例,驗證了Petri網與函數之間的對應關系。
關鍵詞:Petri網 函數 軟件開發體系 可信性
0 引言
因Petri網對軟件過程靜態行為描述的完備性、對動態過程描述的直觀性,Petri網模型是軟件開發人員與客戶交流的最佳平臺。目前,關于Petri網的研究:一方面通過Petri網的靜態結構對系統進行性質分析,確保系統的正確性;另一方面,通過Petri網的動態性質對系統進行模擬運行,測試系統運行無死鎖出現,必要時對系統進行仿真實現。因為Petri網模型到代碼實現工具的欠缺,Petri網模型的應用局限于系統模型的驗證。也使得關于Petri網的研究局限于理論上面。
1 國內外研究現狀
目前,基于新型軟件開發體系,眾多模型到代碼的自動轉換研究:在自動代碼生成技術研究和實現方面,近年來的主要研究方向為基于MDA的代碼自動生成技術[1],基于UML的代碼自動生成技術[2]和基于形式化描述方法的代碼自動生成技術。
本文研究Petri網到函數的對應關系。主要原因是:Petri網不僅具有圖形化的表示方式,還有形式化的語法語義定義,有助于精確定義系統需要的屬性,精確描述系統的行為。另外,它提供了很多驗證方法,幫助在建模階段就發現設計的錯誤,減少損失。近年來,Petri網的理論研究不斷完善,提出很多拓展Petri網類型:時間Petri網[3]、顏色Petri網、邏輯Petri網[4]等,使Petri網的描述能力不斷增強。
2 程序功能模塊的Petri網模型
軟件是一個完整的程序系統,它由多個功能程序組成。程序運行是程序語句的依次執行,程序運行的過程是為了根據語句來不停修改各個變量的值。程序和Petri網間存在某些對應關系(見圖1).這種對應關系使得程序執行可以用Petri網的運行來代替。我們只要提取Petri網運行之后的狀態值,即可知道程序運行的結果。
由以上可知,我們可以改進新型的軟件開發過程,用Petri網的運行來等效地完成程序的執行。為系統中每一個函數建立一個Petri網模型;對每個Petri網進行封裝,只提取運行后返回值;最后,組合所有的Petri網,即完成整個系統的開發。這樣,我們減少編碼。節省了大量時間并避免了編碼的錯誤。對于Petri網模型,可以用Petri網的理論分析方法對其分析,保證其正確性和有效性。
定義1(時間序列圖):時間序列圖是按發生次序排列的一系列事件的集合體。時間序列圖中各個事件有嚴格的發生次序,一般情況下,事件發生的必要條件是排在它前面的所有事件都已發生。引入幾個符號:t1; t2表示事件t1和事件t2可以同時發生。{ t11, t12…t1k};{ t21,t22……t2k}表示事件序列t11, t12…t1k和事件序列t21,t22……t2k可以在一個時間段內發生。
算法1功能模塊到Petri網模型的轉換算法:①提取功能模塊中的變量的集合S和執行事件的集合T;②給出功能模塊中執行事件的時間序列圖T1。時間序列圖表示出事件次序的即是程序語句運行的順序。一個事件轉換為一條程序命令。
③以S為庫所集,以T為變遷集建立Petri網。
④Petri網的建立:
a畫出所有的庫所和變遷;
b按照T1中的順序依次判斷每個執行事件t。假設執行事件t的發生會改變變量集{s1,s2…sk},則在t和每個變量之間建立一個弧t→si, 根據變量si改變量的大小建立不同的Petri網結構。
c當判斷完T1中的最后一個事件后,與模型元對應的Petri網已經建立。
Petri網運行和函數的執行是等效的。論文給出加法函數和邏輯運算函數對應的Petri網模型。圖2表示三位二進制數值的運算:表示范圍是:000~111。最大運算結果是8。
a實現二進制加法的Petri網模型
b圖a)中的紅框封裝中的細節圖
3 結論
本文為軟件開發提供了一種全新的思路。促進了軟件可信性和提高軟件開發效率的理論研究。以后工作的重點問題為:①建立模塊間的接口;運用封裝和面向對象的技術把各個功能模塊組合,完成整個軟件執行模型的建立p;②Petri網中變量的提取。
參考文獻:
[1]溫衍博,吳泉源.MDA 的代碼生成技術在電子商務開發平臺中的應用.計算機工程.Vol.31 NO.20.October 2005.
[2]顧瑩瑩,高建華.從 UML 類圖到關系數據庫表的代碼生成方法.計算機工程.Vol.31 NO.10.May 2005.
[3]Lin C.Qu Y.Temporal inference of workflow systems based on time Petri nets:Quantitative and qualitative analysis[J].International Journal of Intelligent Systems. 2004.19.19 (5).417-442.
[4]Y.Y.Du,C.J.Jiang,M.C.Zhou.A Petri-net-based correctness anal
ysis of Internet stock trading systems.IEEE TRANSACTIONS ON SY
STEMS MAN AND CYBERNETICS PART C-APPLICATIONS AND REVIEWS.38 (1).93-99 JAN 2008.
本文得到山東科技大學研究生創新基金等項目的資助。