摘 要:以建立隨機Petri網性能計算軟件的軟件體系結構為目的,采用面向對象的系統分析與設計方法,在對性能計算軟件需求分析的基礎上,設計了系統的總體結構,進而實現了系統各個模塊的功能。提出由三個主要構件組成的性能計算軟件體系結構:人機交互模塊,主控模塊,性能計算核心模塊。做出該軟件體系結構適用于基于基本建模理論性能計算軟件的結論。
關鍵詞:隨機Petri網; 軟件體系結構; 軟件開發; 面向對象方法
中圖分類號:TP311文獻標識碼:A
文章編號:1004-373X(2010)08-0051-03
Study on Performance Computing Software Architecture for Stochastic Petri Net
DING Jing, HAN Qiang
(School of Computer Science and Engineering, The North University for Ethnics,Yinchuan 750021, China)
Abstract:For the purpose of establishing software architecture with stochastic Petri net, the architecture of the system was designed to realize with the methods of object-oriented system analysis and design, functions of each module based onrequirement analysis of performance calculation softwares. The performance calculation software architecture composed of three modules: man-machine conversation module, master module and performance calculation module is proposed. The software architecture is suitable for the performance calculation software based on the basic modeling theory.
Keywords:stochastic Petri net; software architecture; software development; object-oriented method
0 引 言
Petri網是1962年由德國波恩大學的著名科學家Carl Adm Petri 在他的博士論文《用自動機通信》中首次提出來的,其目的是以它作為研究計算機系統中各組成部分之間的異步通信的數學模型。早期的Petri網沒有引進時間概念(稱之為基本Petri網),它主要用于系統邏輯行為的描述和邏輯性質的研究,即系統定性時態性質的研究\\。20世紀80年代初,Molloy提出了隨機Petri網(Stochatic Petri Nets,SPN),即在每個變遷的可實施與實施之間聯系一個隨機的延遲時間。SPN的可達圖同構于一個連續時間齊次馬爾科夫鏈,可用馬爾科夫隨機過程求解各標識穩定狀態概率,即基礎性能數據,并由基礎性能數據計算各擴展性能數據,從而為基于SPN目標模型的性能分析工作奠定基礎。同時,Petri網在軟件測試、語義Web服務方面具有廣泛的應用范圍\\。
一個軟件系統被分成許多模塊,模塊之間有相互作用,組合起來有整體的屬性,就具有了體系結構。在基于具有高復用性的構件和體系結構的軟件開發方法下,程序開發模式也相應地發生了根本變化。軟件開發不再是“算法+數據結構”,而是依托以軟件構件/構架技術為核心的軟件生產線\\,將應用系統的軟件開發過程變為“問題定義→軟件需求分析→軟件體系結構→軟件設計→軟件實現”,可認為軟件體系結構架起了軟件需求分析與軟件設計之間的一座橋梁\\。
1 軟件體系結構總體設計
1.1 隨機Petri網與軟件體系結構的關系及定位
軟件體系結構是設計抽象的進一步發展,能夠更好地理解軟件系統,方便地開發更大、更復雜的軟件系統的需要。建立軟件體系結構的目的是通過對主要任務的需求分析,建立該軟件的邏輯模型,并依據邏輯模型采用某種軟件開發方法將需求映射到相應的軟件模塊中,隨著軟件模塊可復用性的提高,軟件模塊向可復用構件轉化,同時建立模塊/構件之間的接口,最終建立軟件體系結構。
隨機Petri網性能計算軟件的體系結構研究是本文的主要任務,在建立該軟件體系結構之前,必須確定清楚二者的關系及定位。隨機Petri網定位于該軟件如何建立系統模型的理論依據,因此相應數據結構必然以隨機Petri網為準,軟件體系結構定位于該軟件采用何種體系架構組織安排上述任務。二者在軟件過程中分別扮演問題域理論基礎和解域結構基礎的角色,二者相互配合在本文選擇的解域理論基礎——面向對象的分析設計及人機接口等方法和技術\\9\\〗、瀑布模型的過程指導下共同服務于該軟件的分析與設計。
1.2 軟件基本需求
根據軟件總體任務的需求分析,該軟件需要滿足的需求可分為三部分:
(1) 實現隨機Petri網模型的建立,該項需求進一步劃分為模型的輸入、修改、刪除以及模型中各元素性能參數的錄入。在具體表現形式上,采用圖形化界面配套菜單及對話框選項等方式實現。
(2) 實現隨機Petri網模型的計算,該項需求進一步劃分為依據隨機Petri網模型建立同構的馬爾科夫方程、解馬爾科夫方程、依據解獲得基礎性能數據、依據基礎性能數據和結果集參數獲得擴展性能數據。
(3) 實現隨機Petri網模型性能的輸出,該項需求進一步劃分為性能輸出結果集參數的輸入、結果集的輸出。在具體表現形式上,采用具有多個選項的對話框方式實現。
1.3 軟件總體框架結構
根據上述需求分析,結合本文研究重點,初步建立起由三個模塊共同組成的軟件體系結構,即:
(1) 主控模塊:該模塊是軟件運行的組織核心。它以循環方式運行,僅當用戶選擇退出菜單時結束軟件整體的運行。在循環過程中,它負責協調其他模塊負責隨機Petri網模型的建立、計算和性能結果集的選項輸入及結果輸出。
(2) 人機交互模塊:該模塊是軟件的界面。它以圖形配合菜單及對話框以人機交互方式完成隨機Petri網模型的建立;它以對話框方式完成性能輸出結果集參數的錄入和結果的輸出。
(3) 性能計算核心模塊:該模塊是軟件的實現關鍵。它以后臺方式運行,依據隨機Petri網理論公式,根據已建立的隨機Petri網模型計算基礎性能數據,依據基礎性能數據和結果集的輸入參數計算擴展性能數據。
通過上述分析,初步給出隨機Petri網性能計算軟件的軟件體系結構是:人機交互模塊-主控模塊-性能計算模塊,詳見圖1。考慮到該軟件是以單用戶方式、每次計算完成用戶一次結果集輸入參數的計算為主,將該軟件設計為串行方式運行。
2 軟件體系結構詳細設計
2.1 主控模塊詳細設計
主控模塊循環調用人機交互模塊和性能計算模塊,在圖形化窗口中分別以圖形方式顯示最新的隨機Petri網圖,以結果集對話框方式顯示基礎性能數據和擴展性能數據。具體流程設計見圖2。
圖1 隨機Petri網性能計算軟件總體框架結構
2.2 接口設計
結合該軟件總體任務和本文研究重點,考慮到今后向提高模塊可復用性、軟件體系結構抽象性和可復用性的方向發展,決定采用面向對象的開發方法對本文重點進行研究。根據面向對象開發方法的指導流程,應該按照抽象原則,構建軟件體系結構中的模塊和接口,而模塊和接口均可以按照具體的需要以類的方式靜態表示。
根據前節的軟件基本需求,三個模塊的功能已經規劃完畢,重點是建立彼此之間的接口。理論上三個模塊之間應該有三個接口,但是該軟件由主控模塊統一協調其余兩個模塊的運行,因此僅有兩個接口,分別代表軟件運行數據的輸入和輸出方向。具體是,輸入方向:隨機Petri網類、結果集參數類;輸出方向:結果集基礎性能參數類、結果集擴展性能參數類。
由于上述接口中除隨機Peitri網類外,其他三個類均與結果集密切相關,因此在具體設計中將其合并到一個結果集類中集中反映,便于具體模塊的設計。
根據上述分析,最終確定該軟件三個模塊的兩個接口是:
(1) 隨機Peitri網類
成員:庫所數組、變遷數組、弧數組、圖元半徑;
操作:添加庫所、添加變遷、添加弧、清除數組、刪除庫所、刪除變遷、刪除弧、繪畫隨機Petri網、選擇庫所/變遷/弧。
(2) 結果集類
成員:庫所數、變遷數、可達標識數、可達標識矩陣、轉移速率矩陣、穩定狀態概率數組;
操作:建立馬爾可夫鏈,解馬爾可夫鏈、計算狀態駐留時間、計算狀態等待時間、計算庫所標記概率密度函數。
上述接口在軟件運行過程中的作用是:
(1) 輸入方向
① 用戶通過人機交互模塊以圖形化方式建立隨機Peitri網模型,以隨機Peitri網類為接口傳遞給主控模塊;主控模塊將隨機Peitri網類傳遞給性能計算模塊,交由其計算基礎性能數據,寫入結果集類。
② 用戶通過人機交互模塊輸入結果集參數,以結果集類為接口傳遞給主控模塊;主控模塊將結果集類傳遞給性能計算模塊,交由其根據隨機Peitri網類和結果集類計算擴展性能數據,寫入結果集類。
③ 輸出方向:
性能計算模塊將基礎性能數據和擴展性能數據寫入結果集類傳遞給主控模塊,主控模塊將其傳遞給人機交互模塊,交由其以對話框方式展示\\。
圖2 主控模塊流程設計
3 結 語
作為描述目標系統的基本理論和分析評價系統性能的重要手段之一,隨機Petri網自提出以來,日益受到學術界和產業界的關注。通過分析設計隨機Petri網性能軟件,得出關于計算隨機Petri網的通用軟件體系結構模型。這里的重點是分析數據結構,建立軟件體系結構,價值是對于以后的此類通用課題,建議嘗試本文提出的三大構件組成的軟件體系結構。
由于是理論性研究,尚缺乏通過實現來驗證該體系結構的正確性、完備性和可擴展性等,以及如何更好地剝離隨機Petri網性能計算的要素,提煉出更加抽象、更加通用的軟件體系結構,是以后的研究方向。
參考文獻
[1]ZUBEREK W M. Timed Petri nets definition[J]. Micro-electronic Reliability, 1991, 31(4): 627-644.
[2]林紅昌, 胡覺亮, 丁佐華. 基于Petri網的軟件測試用例的產生及分析[J]. 計算機工程與應用, 2009, 45(17): 57-60.
[3]趙娟. 基于Petri網的語義Web服務發現方法研究[J]. 現代電子技術,2009,32(19): 119-120.
[4]楊芙清. 軟件工程技術發展思索[J]. 軟件學報,2005, 16(1): 1-7.
[5]梅宏, 申峻嶸. 軟件體系結構研究進展[J]. 軟件學報, 2006, 17(6): 1257-1275.
[6]梅宏, 陳鋒, 馮耀東, 等. ABC: 基于體系結構、面向構件的軟件開發方法[J]. 軟件學報, 2003, 14(4): 721-732.
[7]邵維忠, 楊芙清. 面向對象的系統設計[M]. 北京: 清華大學出版社, 2004.
[8]邵維忠, 劉昕. 可視化編程環境下人機界面的面向對象設計[J]. 軟件學報, 2002, 13(8): 1494-1499.
[9]邵維忠, 楊芙清. 面向對象的系統分析[M]. 北京: 清華大學出版社, 2004.
[10]劉鴻, 林闖, 吳建平. 一種緊同步隨機Petri網模型的性能分析方法[J]. 軟件學報, 2003, 14(6): 1029-1036.