【摘 要】本文主要介紹了一種基于軟件體系結構的構件模型和語言,其中主要包括構件模型SACM,面向構件語言SAJ,SAJ語言的語法、語義和類型系統(tǒng),豐富構件接口信息等幾個方面。通過研究表明,該模型和方案能解決軟件開發(fā)中所面臨的問題,有利于軟件的開發(fā)和完善,在今后的實際工作中值得進一步推廣和應用。 

  【關鍵詞】軟件體系結構 構件模型 構件語言 SACM SAJ 

  【中圖分類號】G642 【文獻標識碼】A 【文章編號】1674-4810(2013)14-0081-01 

  在軟件開發(fā)中,如何提高軟件質(zhì)量是人們的普遍追求和共同愿望。而提高質(zhì)量的關鍵問題就是構件技術和軟件體系結構技術。但是,目前在這兩項技術開發(fā)中面臨著多方面的挑戰(zhàn),本文擬對這些問題提出相應的解決方案。 

  一 基于軟件體系結構的構件模型SACM 

  第一,構件。SACM構件是能提供相對獨立服務的計算單元,具有規(guī)范的接口和顯示的上下文依賴,能夠被第三方組合。就其組成來看,主要包括端口和服務兩個部分,每個端口代表一個交互點,至多有一個請求服務接口和一個提供服務接口。對于構件來說,其服務實現(xiàn)部分由方法體構成,這就降低了構件之間的耦合度,能夠提高構件的復用程度。 

  第二,構件之間的關系。在SACM中,存在著多種構件,這些構架之間相互聯(lián)系,形成了多種多樣的不同的關系,主要有部分-整體關系、泛化關系、連接關系、協(xié)作關系。 

  第三,連接子的引入及其作用。為了更容易地實現(xiàn)映射、對軟件系統(tǒng)屬性進行分析、驗證和跟蹤,提高構件的復用程度,提高軟件系統(tǒng)結構的動態(tài)配置、加強低軟件的維護,在SACM構件中有必要引入連接子。就其作用來看,連接子主要發(fā)揮通信、轉(zhuǎn)換、輔助交換、協(xié)調(diào)控制的作用,對整個軟件系統(tǒng)的運行有著積極的意義。 

  第四,基于連接子構件組合方法。在SACM構件當中,構件組合方法主要有兩種:基于被動的和基于主動的連接子構件組合方法,不同的方式有各自的優(yōu)勢,需要根據(jù)具體情況選用。 

  二 面向構件語言SAJ 

  第一,SAJ語言設計的目的。該語言設計的目的主要包括以下幾個方面:能夠更好地支持面向構件軟件開發(fā)、實現(xiàn)從體系結構設計模型到地層代碼的映射。 

  第二,SAJ語言支持面向構件軟件開發(fā)。在進行軟件開發(fā)的過程中,為了能夠更好地對面向構件的軟件進行支持,面向構件語言應能夠支持構件的封裝、復用和組合,并支持構件的設計與開發(fā)。具體來說,是從以下五個方面來支持面向構件軟件開發(fā)的:構件的封裝性、構件組合、面向構件設計原則、設計模式、連接子復用。 

  第三,SAJ語言的實現(xiàn)。使用Polyglot框架來實現(xiàn)SAJ語言的編譯器,并將編寫的源代碼翻譯成Java代碼,每個端口自動產(chǎn)生一個字段,保存所使用的連接子。由連接子協(xié)調(diào)構件之間的通信,通過消息截取和消息過濾,有利于解決構件之間不相容的問題。有利于實現(xiàn)日志、數(shù)據(jù)加密傳輸?shù)确⻊,并能夠(qū)崿F(xiàn)各種體系結構風格,具有良好的運用空間。 

  三 SAJ語言的語法、語義和類型系統(tǒng) 

  第一,SAJ語言的簡介。對于SAJ語言來說,它的核心是基于RelJ,它是在RelJ的基礎上,添加了構件、端口、連接子、角色等軟件體系結構。 

  第二,SAJ語言的類型系統(tǒng)。類型是程序設計中項的集合,它們具有共同的性質(zhì)。對于類型系統(tǒng),從本質(zhì)上來說,它是一個類型推導規(guī)則的集合,在程序設計中具有重要的作用:檢查類型錯誤、支持語言抽象、優(yōu)化程序,并支持語言的安全性。 

  四 豐富構件接口信息 

  第一,顯示相應的服務關系。顯示描述請求服務和提供服務之間的關系,構件要想為外界服務,就需要從外界得到相應的請求服務。對于現(xiàn)有構件模型來說,請求服務和提供服務之間的關系是固定的。但是在可復用構件的軟件開發(fā)中,請求服務和提供服務之間不存在嚴格的依賴關系,往往存在著一些問題與不足,影響正常的服務。因此,有必要顯示請求服務與提供服務之間的關系。此外,從構件復用粒度的角度來說,顯示它們之間的服務也是十分必要的。同時,顯示它們之間的關系,有利于對構件質(zhì)量進行精確度量、調(diào)整與改進,更能靈活適應不同的環(huán)境,提高服務質(zhì)量,更好地滿足軟件開發(fā)的實際需要。 

  第二,描述服務的參數(shù)值。在進行軟件開發(fā)時,服務的參數(shù)值往往會對構件行為產(chǎn)生一定的影響。并且構件開發(fā)人員對這個也非常清楚。所以,在接口中增加描述服務的參數(shù)值是現(xiàn)實的、必要的。在構件接口中,有提供服務和請求服務,對于它們的參數(shù)值描述略有不同。一般是在行為協(xié)議中描述參數(shù)值,并在構件組合中得到具體應用。 

  五 結束語 

  總之,構件模型和面向構件語言有利于解決當前構件技術和軟件體系結構技術所面臨的問題。文中所提出的構件模型SACM和構件語言SAJ,能夠有力地促進構件技術的發(fā)展。在今后的實際工作中,仍然有對該相關問題進行進一步深入研究的必要。 

  參考文獻 

  [1]岳洋.SMC/ADL:一種層級式構件系統(tǒng)的體系結構描述語言[J].計算機科學,2012(7) 

  [2]馬維綱.基于軟件體系結構的構件組裝技術研究[D].西安理工大學,2007 

  [3]陳波.基于軟件體系結構的構件模型和語言研究[D].國防科學技術大學,2007