關于軟件體系結構的探討

[摘 要]目前的軟件體系結構建模中,典型地使用構件/連接子模型對體系結構進行描述。這樣的體系結構模型可以清晰表達軟件體系結構設計的結果,但是這種僅關注制品而未能顯式,就這一現(xiàn)狀本文從不同角度進行了闡述和探索。 

[關鍵詞]軟件工程 開放式數(shù)控 集成系統(tǒng) 

  目前,軟件體系結構(software architecture)已經(jīng)成為新一代數(shù)控技術的研究熱點,許多國家和研究機構在這個領域都開展了深入的研究。已經(jīng)越來越受到研究者和實踐者的重視,并成為軟件工程的一個重要的研究領域。在軟件開發(fā)過程中,軟件體系結構提供系統(tǒng)的高層抽象、支持開發(fā)人員之間的交流、支持軟件復用等,因而體系結構的設計在軟件生命周期中起到關鍵作用。體系結構設計本身是一個不斷做出決策的過程,產生大量的推理信息。 

  一、自動測試系統(tǒng)軟件體系結構 

  目前通用自動測試系統(tǒng)的軟件體系結構主要依據(jù)IEEE發(fā)布的寬域測試環(huán)境標準。ABBET將測試系統(tǒng)劃分成5個層次:產品描述層,測試需求/策略層,測試程序層,資源管理層和儀器控制層。并行自動測試系統(tǒng)具有串行自動測試系統(tǒng)的基本特性,其核心測試過程與串行自動測試系統(tǒng)的核心測試過程是一致的,因此,并行自動測試系統(tǒng)的軟件體系結構也采用層次化的體系結構風格。 

  自動測試系統(tǒng)軟件體系結構與傳統(tǒng)串行自動測試系統(tǒng)的軟件體系結構的不同在于其任務,資源管理層更加復雜。由于多任務的并行執(zhí)行,在這一層中不僅資源管理的功能需要擴展,以滿足測試資源安全共享的要求,還需要對測試任務進行管理,根據(jù)任務過程模型和任務調度模型合理調度任務的執(zhí)行。 

  二、開放式數(shù)控的軟件體系結構 

  數(shù)控系統(tǒng)是一個具有實時性和多任務性的專用操作系統(tǒng)。從功能來看,系統(tǒng)的任務可以分為管理任務和控制任務兩大類。管理任務主要完成系統(tǒng)資源管理和系統(tǒng)各子任務的調度,負責系統(tǒng)的程序管理、顯示和診斷等子任務;控制任務主要完成數(shù)控系統(tǒng)的基本功能,包括譯碼、刀具補償、速度預處理、插補運算和位置控制等子任務。如圖1所示。    

  資源分時共享主要采用的方法是循環(huán)輪流和中斷優(yōu)先,如圖2所示,系統(tǒng)在完成初始化工作以后自動進入時間分配環(huán)中,在環(huán)中依次輪流處理各任務,對于系統(tǒng)中一些實時性很強的任務則按優(yōu)先級排隊,分別放在不同的中斷級別上。 

  三、COTS軟件系統(tǒng)的軟件體系結構 

  軟件體系結構是由一些實體和這些實體間的關系所構成的模型,在體系結構觀點中實體是所關心的元素,它們可以是軟件組件、源文件、目標文件、編譯器、平臺等;關系可以用描述連結性、動態(tài)行為或者所關心的依賴性的任何其他類型 。體系結構中所使用的特殊的實體和關系取決于建造者試圖傳送的信息。 

  COTS 軟件系統(tǒng)的開發(fā)本質上是集成黑盒軟件組件的問題。這種集成過程是困難的,它容易出錯,需要大量的編碼,難以測試和調試。此外,許多COTS 組件都有高的短暫性,商業(yè)組件通常要頻繁升級,這些升級可能沒有增加集成者所希望的功能,或修復集成者所希望的錯誤。存在于先前版本中的關鍵功能可能在隨后的升級版本中被除去。在有些情況下,集成者可能希望用不同供應商的新版本的類似組件替換老組件。在COTS 軟件系統(tǒng)中,體系結構的設計合適與否直接關系到軟件的成功,因為體系結構是系統(tǒng)實現(xiàn)的藍圖,為組件的集成提供了上下文,很大程度上決定了系統(tǒng)的各種性能。在COTS 軟件系統(tǒng)中,體系結構中的實體就是COTS 組件,關系用以描述集成機制。 

  現(xiàn)今新的技術層出不窮的情況下,準確地把握系統(tǒng)當前的行為,能夠讓開發(fā)人員和維護人員盡快地進行技術上的調整,而能保持原有的行為效果不變。這對于節(jié)省開銷,保持程序的穩(wěn)定性都有重大的意義。在今后的研究工作中,將著力于改善方法中對于接口信息的定義形式,使其能提供更強的描述功能。此外,還將嘗試引入一定的動態(tài)分析工作,這有助于為我們方法提供對象在動態(tài)運行時的變量信息,根據(jù)這些信息對對象的行為方式進行更深人的分析。    

  參考文獻: 

  [1]Yang Jinlin:Evans n Dynamically Inferring Temporal Proper―ties[C] }Proc.the ACM-SIGPLAN-SIGSOFT Workshop onProgram Analysis for Software Tools and Eng]neering.2004:23―28 

  [2]Yuan Hai Xie Tao:Automatic Extraction of Abstract―object―state Machines Based on Branch Coverage[C] {Proceedings ofthe 1st International W orkshop on Reverse Engineering To Re―quirements at WCRE 2005(RETR 2005).November 2005:5-11 

  [3]黃洲 彭鑫 趙文耘:基于依賴性分析的對象行為協(xié)議逆向恢復[J].計算機科學,2008,35(8):265―268,276 

  [4]Tang Mei-huei,Wang Wen-li,Chen Mei小wa.A UML Approachfor So ftware Chang e Modeling.CS.albany.edu 

  [5]http:∥compilers.as.uclm edu/jtb/jtb-2003 

  [6]https://javac~dev.java net 

  [7]Mohamed G_Gouda Closed Covers:tO Verify Progress for Com―municating Finite State Machines Technical Report[R3.CS-TR-82―191 Year of Publication:1982