本站小編為你精心準備了化學抽象機在軟件體系結構中運用參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
摘要:軟件體系結構在軟件工程領域中至關重要,而軟件體系結構描述語言ADL為軟件體系結構的表示和分析提供了語言符號和支持工具。分析和研究了動態形式化描述語言化學抽象機CHAM及其在軟件體系結構中的應用。
關鍵詞:化學抽象機;軟件體系結構信息科學
1概述軟件體系結構是當前軟件工程領域的一個研究熱點,是大型軟件開發中必須解決的核心技術。無數的寫作論文軟件工程實踐證明:一個成功的軟件系統往往都有一個好的軟件體系結構。但是在軟件設計、開發、測試、運行以及升級的各個階段,體系結構都不可避免地會發生變化,如何把運行時適應性機制加到復雜的大規模軟件系統中就成為一個重要的工程問題。然而要通過軟件體系結構的研究實現這一目標,首先必須用某種方式描述動態體系結構。
目前已定義的ADL超過20種,具有代表性的ADL包括C2、Darwin、Rapide、Unicon、Wright、D-ADL和ACME等[1];國內包括XYZ/ADL、ABC/ADL、FRADL和A-ADL等。但這些語言大多注重軟件系統結構靜態特性的描述,而對其動態特性描述不足。PaolaInverardi和AlexxanderLWolf[2]首先將CHAM應用于描述和分析軟件體系結構。他們充分利用CHAM擅長描述系統動態性和并行性的優點,用CHAM形式化方法描述和分析了軟件體系結構動態操作性語義,在軟件體系結構動態特性描述方面進行了有效的擴展,主張用CHAM模型描述軟件體系結構,并例舉描述了編譯器的體系結構,包括順序多階段編譯器和并行、共享存貯庫的多階段編譯器?;贑HAM的體系結構描述,運用重寫技術和結構歸納證明方法,能夠對體系結構的部分行為屬性進行形式化或半形式化的證明。
2化學抽象機化學抽象機CHAM主要用于異步并行計算模型的建模[3],通過將化學反應和抽象機概念有機結合描述系統狀態變化,它將一個系統的狀態看成化學溶液,溶液由分子組成,分子根據一定的反應規則相互反應又引起新的系統狀態變化。溶液中不同分子可按反應規則平行地進行反應,只要各自反應的分子集不重疊。因CHAM在描述系統動態性、并行性方面的優良特性,所以可較好描述異步并行計算模型,尤其擅長描述如λ計算和CCS進程計算模型[4]。一個化學抽象機由一組分子m0,m1,m2…、溶液s0,s1,s2…和變換規則組成,分子是CHAM的基本元素,由一個常數集和操作符集派生而成的句法代數定義;溶液是由有限多個分子的集合,它反映了系統的某種狀態,溶液中的分子根據變換規則進行反應。
變換規則從應用范圍可分為:通用規則,即在整個CHAM中通用的規則;專用規則,適用于某些特定分子的規則。從反應作用可分為:加熱規則,把大分子分解成小分子的規則;冷卻規則,小分子合成大分子的規則。從反應涉及的分子可分為:自反應規則,只有單一分子的狀態變化;互反應規則,反應過程中至少有兩個分子參加反應。本質上,CHAM可看成一種有限狀態機,因此它具有一般狀態機特征,與其他以狀態機為轉換模型的技術相比,CHAM利用化學反應這一隱喻,因此在刻畫系統的動態性特征方面比較自然。CHAM規格說明是一個基于操作的系統框架,這種框架不會把所描述的系統曲解為某種特定的計算模型。CHAM描述不僅可以描述系統靜態特征,還能從系統操作動態性方面進行描述,通過對各單元的描述、引入的轉換規則及項重寫描述和分析體系結構的動態行為,因而可使軟件開發人員很快地了解系統功能和行為,適用于多種層次的用戶。在CHAM中,膜是一種封裝結構,任何溶液可以被看作一個關于其它溶液的單一分子,膜內的溶液可以獨立進化。膜具有半可滲透性,允許某些分子進入和離開,通過膜上的氣孔,可以有選擇地從膜中抽取分子,同時,氣孔的可逆性允許分子被重新吸收到原始溶液中,膜表示了復合構件,實際上提供了一種刻畫系統模塊化的途徑。
3在SA中的應用3.1描述SA。用于描述SA的CHAM可表示成一個三元組CHAM=(M,E,R),其中:3.1.1分子集M={m|m∈MS∨MI},MS={mS1,…,mSn}為穩定狀態分子集,處于穩定狀態的分子不吸收或釋放電子,MI={mi|mi∈{mS(.P)+,(P.)+mS(.P)+,(P.)+mS}∧mS∈MS}為離子狀態分子集,處于離子狀態的分子準備進行吸收或釋放電子操作,其中P={i(e),o(e)}為分子上的操作集,i(e)為吸收電子,o(e)為釋放電子,操作符“.”表示操作順序。3.1.2電子集E={e1,…,ek},分子可根據自反應規則準備進行進行收或釋放電子,當溶液中有兩種互補電子,即一對釋放-吸收電子時,可根據互反應規則進行反應。3.1.3規則集R=RS∪RM,RS={r|r∈{mS1=mI1,…,mSj=mIj}∪{mS1=mS1*,…,mSj=mSj*},mSj∈MS∧mIj∈MI,j=1,2,…}是分子自身從吸收電子到釋放電子的過程或分子復制自身過程規則集,mSj*表示由mSj復制與mSj性質、狀態完全相同的分子,RM={r|r∈{m11,m21,…=m11,m21,…},mij,mij∈MI,i,j=1,2,…}是電子在分子間流動過程的規則集,rp∈RM,rq∈RM,p≠q,若{mp1,…,mpj}∩{mq1,…,mqj}=",則rp,rq可并行反應。3.2描述構件、連接件。用CHAM描述軟件連接件或構件,可表示成一個四元組(MC,ECI,ECO,RC):3.2.1連接件或構件的分子集MC;3.2.2連接件或構件的前置條件,即輸入電子集ECI;3.2.3連接件或構件的后置斷言,即輸出電子集ECO;3.2.4連接件或構件分子集的反應規則集Rc。連接件或構件的分子集反映了連接件或構件的角色集及在角色上進行的輸入輸出操作,相對來說是靜態的,是一種實現上的結構,屬于語法層。輸入電子集是使用該連接器或構件前必須具備的條件,輸出電子集后映的是使用該連接件或構件后的狀態。反應規則集說明了連接件或構件如何運用反應規則從而發生狀態的演變,實質上是連接件或構件的動態行為,是相對動態的,屬于語義層。如管道-過濾器體系結構風格的CHAM描述如下:定義過濾器:MC:PIPE_FILTERECI:readerECO:writerRC1:PIPE_FILTER=PIPE_FILTER.i(reader)RC2:PIPE_FILTER.i(reader)=i(reader).PIPE_FILTER,PIPE_FILTER.o(writer)RC3:PIPE_FILTER.o(writer)=o(writer).PIPE_FILTER定義管道:MC:PIPE_CONNECI:readerECO:writerRC1:PIPE_CONN=PIPE_CONN.i(reader)RC2:PIPE_CONN.i(reader)=i(reader).PIPE_CONN,PIPE_CONN.o(writer)RC3:PIPE_CONN.o(writer)=o(writer).PIPE_CONN由過濾器和管道構造一個系統:SYS_M:PIPE_FILTER,PIPE_CONNSYS_E:reader,writerSYS_R1:PIPE_FILTER.o(writer),PIPE_CONN.i(reader)=o(writ-er).PIPE_FILTER,i(reader).PIPE_CONN
4展望目前基于構件的軟件工程正逐漸成為軟件開發的新趨勢,但是也給基于構件的軟件系統測試帶來了新的問題,而CHAM不僅可用于描述動態軟件體系結構,還可用于測試體系結構,因為CHAM這種對系統狀態變化的描述特別適合于測試系統的行為和功能,Bertolino[5]等人提出從軟件體系結構描述中導出實現層的測試用例,以指導構件系統的集成測試的思想,隨著對CHAM的深入研究,必將有新的應用被提出。
參考文獻
[1]MedvidovicN,TaylorRN,Aclassificationandcomparisonframeworkforsoftwarearchitecturedescriptionlanguages[J].IEEETrans.onSoftwareEngi.,2000,26(1):70-93.
[2]InverardiP,WolfAL.Formalspecificationandanalysisofsoftwarearchitecturesusingthechemicalabstractmachinemodel[J].IEEETrans.onSoftwareEngi.,1995,21(4):373-386.
[3]BerryG.,BoudolG.TheChemicalAbstractMa-chine[J].TheoreticalComputerScience,1992,(96):217-248.
[4]BerryG,BoudolG.,Thechemicalabstractma-chine[A].InconferencerecordoftheseventeenthannualACMsynmposiumonprinciplesofpro-gramminglanguage[C].1990.
[5]BertolinoA,CorradiniF,InverardiP,etal.DerivingTestPlansfromArchitecturalDescriptions[A].In:ACMProc.Int.Conf.onsoftwareEngineering