簡介
IntelligentNeworkFunctionalModel--智慧型網功能模型相關資料
軟體體系結構是具有一定形式的結構化元素,即構件的集合,包括處理構件、數據構件和連線構件。處理構件負責對數據進行加工,數據構件是被加工的信息,連線構件把體系結構的不同部分組組合連線起來。這一定義注重區分處理構件、數據構件和連線構件,這一方法在其他的定義和方法中基本上得到保持。一、軟體體系結構的定義
雖然軟體體系結構已經在軟體工程領域中有著廣泛的套用,但迄今為止還沒有一個被大家所公認的定義。許多專家學者從不同角度和不同側面對軟體體系結構進行了刻畫,較為典型的定義有:
(1)DewaynePerry和A1exWo1f曾這樣定義:軟體體系結構是具有一定形式的結構化元素,即構件的集合,包括處理構件、數據構件和連線構件。處理構件負責對數據進行加工,數據構件是被加工的信息,連線構件把體系結構的不同部分組組合連線起來。這一定義注重區分處理構件、數據構件和連線構件,這一方法在其他的定義和方法中基本上得到保持。
(2)MaryShaw和DavidGarlan認為軟體體系結構是軟體設計過程中的一個層次,這一層次超越計算過程中的算法設計和數據結構設計。體系結構問題包括總體組織和全局控制、通訊協定、同步、數據存取,給設計元素分配特定功能,設計元素的組織,規模和性能,在各設計方案間進行選擇等。軟體體系結構處理算法與數據結構之上關於整體系統結構設計和描述方面的一些問題,如全局組織和全局控制結構、關於通訊、同步與數據存取的協定,設計構件功能定義,物理分布與合成,設計方案的選擇、評估與實現等
(3)Kruchten指出,軟體體系結構有四個角度,它們從不同方面對系統進行描述:概念角度描述系統的主要構件及它們之間的關係;模組角度包含功能分解與層次結構;運行角度描述了一個系統的動態結構;代碼角度描述了各種代碼和庫函式在開發環境中的組織。
(4)HayesRoth則認為軟體體系結構是一個抽象的系統規範,主要包括用其行為來描述的功能構件和構件之間的相互連線、接口和關係。
(5)DavidGarlan和DewnePerry於1995年在IEEE軟體工程學報上又採用如下的定義:軟體體系結構是一個程式/系統各構件的結構、它們之間的相互關係以及進行設計的原則和隨時間進化的指導方針。
(6)BarryBoehm和他的學生提出,一個軟體體系結構包括一個軟體和系統構件,互聯及約束的集合;一個系統需求說明的集合;一個基本原理用以說明這一構件,互聯和約束能夠滿足系統需求。
(7)1997年,Bass,Ctements和Kazman在《使用軟體體系結構》一書中給出如下的定義:一個程式或計算機系統的軟體體系結構包括一個或一組軟體構件、軟體構件的外部的可見特性及其相互關係。其中,"軟體外部的可見特性"是指軟體構件提供的服務、性能、特性、錯誤處理、共享資源使用等。
二、軟體體系結構的發展歷史
與最初的大型中央主機相適應,最初的軟體結構體系也是Mainframe結構,該結構下客戶、數據和程式被集中在主機上,通常只有少量的GUI界面,對遠程資料庫的訪問比較困難。隨著PC的廣泛套用,該結構逐漸在套用中被淘汰。
在80年代中期出現了Client/Server分散式計算結構,應用程式的處理在客戶(PC機)和伺服器(Mainframe或Server)之間分擔;請求通常被關係型資料庫處理,PC機在接受到被處理的數據後實現顯示和業務邏輯;系統支持模組化開發,通常有GUI界面。Client/Server結構因為其靈活性得到了極其廣泛的套用。但對於大型軟體系統而言,這種結構在系統的部署和擴展性方面還是存在著不足。
Internet的發展給傳統套用軟體的開發帶來了深刻的影響。基於Internet和Web的軟體和套用系統無疑需要更為開放和靈活的體系結構。隨著越來越多的商業系統被搬上Internet,一種新的、更具生命力的體系結構被廣泛採用,這就是為我們所知的“三層/多層計算”。