上海同濟(jì)大學(xué) 馬 亮
CHAM軟件連接形式化模型研究
上海同濟(jì)大學(xué) 馬 亮
CHAM形式化模型以代數(shù)演算的方式研究通信并發(fā)系統(tǒng),將進(jìn)程看作是代標(biāo)號的變遷系統(tǒng),遷移的規(guī)則是以句法重新安排的方式來反映狀態(tài)信息的變化過程。
1.CHAM形式化模型結(jié)構(gòu)。CHAM形式化模型最初是由Berry和Boudol開發(fā)研制的,它建立在化學(xué)隱喻的基礎(chǔ)上。CHAM形式化模型中的各個結(jié)構(gòu)都可以利用化學(xué)概念來描述,CHAM形式化模型主要包括分子(Molecules)、溶液(Solutions)以及膜(Membrane)結(jié)構(gòu)。
(1)分子。分子是組成CHAM形式化模型的進(jìn)本元素,由進(jìn)程代數(shù)理論可知,子結(jié)構(gòu)主要是由一些基本常量和操作細(xì)節(jié)所組成,分別用m1,m2,…,mn來表示。
(2)溶液。溶液是多分子的集合體,可以表示為S = m1,m2,…,mn,而且有多個溶液組成的一個較大型的溶液還可以表示為S∪S′ = m1,m2,…,mn,m1′,m2′,…,mn′,在CHAM形式化模型中溶液可以定義為一個狀態(tài)信息。
(3)膜結(jié)構(gòu)。膜結(jié)構(gòu)是對CHAM形式化模型的各種結(jié)構(gòu)進(jìn)行封包分層細(xì)化,可以表示為{︱.︱},利用膜結(jié)構(gòu)可以將不同溶液進(jìn)行封包,此時就可以將被封裝的溶液看作是一個單一分子,即為{︱S = m1,m2,…,mn︱}。而且膜結(jié)構(gòu)還具有一定的選擇透過性,即通過膜上的氣孔,對分子的進(jìn)入和離開進(jìn)行選擇,這一過程可以表示為S′= mi{︱m1,m2,…,mn︱}。
2.CHAM形式化模型遷移規(guī)律。分為一般反應(yīng)和特定反應(yīng)兩大類。一般反應(yīng)是對所有的CHAM形式化模型描述的軟件體系結(jié)構(gòu)都有效,沒有任何限制;特定反應(yīng)只是針對某一具體的CHAM形式化模型進(jìn)行描述,是一種無任何前置條件的基本項重寫規(guī)則。
1.CHAM形式化模型的構(gòu)建元素。包括處理元素、數(shù)據(jù)元素、連接元素、膜元素四種基本構(gòu)件元素。
(1)處理元素。處理元素可以表示為分子結(jié)構(gòu),具體是指具有一定功能的邏輯處理對象或者單元,在進(jìn)行軟件體系結(jié)構(gòu)描述的過程中也可以代表軟件的構(gòu)件單元。CHAM形式化模型的處理元素主要是由接口描述以及狀態(tài)定義兩大部分構(gòu)成。其中接口描述包括一組說明處理元素與外部環(huán)境交互的端口,而狀態(tài)定義則是用來描述軟件的構(gòu)件單元的當(dāng)前狀態(tài)。
(2)數(shù)據(jù)元素。數(shù)據(jù)元素主要包括進(jìn)行軟件結(jié)構(gòu)描述所使用和變化的信息,通常,數(shù)據(jù)元素用依附在處理元素的紅色和藍(lán)色三角形來表示;紅色三角形代表從處理元素中輸入的數(shù)據(jù)元素,而藍(lán)色三角形則代表從處理元素輸出的數(shù)據(jù)元素。
(3)連接元素。連接元素的主要作用是將體系結(jié)構(gòu)中的各個成分連接在一起。例如,在不同處理元素之間進(jìn)出的有效通訊元素就屬于連接元素。而且每一個連接元素都具有連接不同處理元素之間的交互條件,也就是CHAM形式化模型中的反應(yīng)規(guī)則,一般情況下用圓圈表示連接元素。
(4)膜元素。膜元素是由一些處理元素和連接元素根據(jù)行對應(yīng)的要求組合而成的,可以通過膜上的氣孔實(shí)現(xiàn)處理元素的輸出與輸入。
2.CHAM形式化模型的實(shí)現(xiàn)。CHAM形式化模型的實(shí)現(xiàn)主要應(yīng)用Java語言,在NIST/ECMA環(huán)境集成的參考模型來構(gòu)建。建模過程包括指圖形視圖和文本視圖兩大部分,圖形視圖和文本視圖建立在同一數(shù)據(jù)模型的基礎(chǔ)上。先以Shape基類為根節(jié)點(diǎn),然后派生出Process類、Date類、Membrane類、Port類數(shù)據(jù)模型。通過面向?qū)ο笳Z言的多態(tài)性等特征,就可以將一些例如繪制、移動以積分放縮等相同的操作或者函數(shù)歸于同一基類中。再根據(jù)DRTSADL的語法建立數(shù)據(jù)模型元素間的樹形結(jié)構(gòu),通過這種樹形結(jié)構(gòu)在方便實(shí)現(xiàn)數(shù)據(jù)模型元素導(dǎo)航的同時也更有利于Java序列化存儲。使用CHAM形式化模型的基本建模元素設(shè)計軟件體系結(jié)構(gòu)圖,并且在構(gòu)圖的同時還可以進(jìn)行模型語義一致性檢查等工作。在設(shè)計軟件體系結(jié)構(gòu)圖功能時,使用了職責(zé)鏈設(shè)計模式,即在加入其他新建模元素類時,不會對原先的系統(tǒng)造成任何影響。文本視圖建模主要包括程序理解以及信息瀏覽兩大功能,程序理解部分主要是由軟件架構(gòu)師根據(jù)圖形建模生成的或者手工編寫的CHAM形式化模型的描述并最終生成CHAM形式化模型的層次結(jié)構(gòu)。源文件的瀏覽顯示CHAM形式化模型的文件內(nèi)容,包括關(guān)鍵字、操作符等內(nèi)容。另外,由于圖形視圖和文本視圖建立在同一數(shù)據(jù)模型的基礎(chǔ)上,因此更有利于兩者間的數(shù)據(jù)轉(zhuǎn)換。從軟件體系結(jié)構(gòu)圖生成CHAM形式化模型的文本的過程來分析,兩者之間的數(shù)據(jù)交換主要是按照CHAM形式化模型的語法結(jié)構(gòu),直接從數(shù)據(jù)模型中抽取文本,屬于一個正向的過程。而從CHAM形式化模型的文本產(chǎn)生軟件體系結(jié)構(gòu)圖則屬于一個逆向過程,因為文本視圖所映射的數(shù)據(jù)模型知識和圖形視圖所映射的數(shù)據(jù)模型子集不包含圖形視圖的布局信息,需要通過軟件結(jié)構(gòu)配置語義生成對應(yīng)的布局信息,并且要確保布局的合理性以及有效性。
隨著軟件技術(shù)的快速發(fā)展,各行各業(yè)對于軟件的使用和依賴性越來越高,CHAM軟件是一款專門用來描述各類軟件系統(tǒng)動態(tài)行為的一種工具,廣泛應(yīng)用于各類軟件的體系結(jié)構(gòu)及行為的描述和分析。本文,筆者以CHAM形式化模型為主要研究對象,重點(diǎn)介紹了CHAM形式化模型的特點(diǎn)以及CHAM軟件構(gòu)建形式化模型的主要工作原理,并且詳細(xì)分析了該模型的設(shè)計與實(shí)現(xiàn),對建立系統(tǒng)、完善的計算機(jī)軟件質(zhì)量評價體系具有一定的指導(dǎo)意義。