軟體框架
指導大型軟體系統設計的規範
徠軟體框架(software framework),通常指的是為了實現某個業界標準或完成特定基本任務的軟體組件規範,也指為了實現某個軟體組件規範時,提供規範所要求之基礎功能的軟體產品。
框架的功能類似於基礎設施,與具體的軟體應用無關,但是提供並實現最為基礎的軟體架構和體系。軟體開發者通常依據特定的框架實現更為複雜的商業運用和業務邏輯。這樣的軟體應用可以在支持同一種框架的軟體系統中運行。
簡而言之,框架就是制定一套規範或者規則(思想),大家(程序員)在該規範或者規則(思想)下工作。或者說使用別人搭好的舞台來做編劇和表演。
正如同軟體本身有其要達到的目標一樣,架構設計要達到的目標是什麼呢?一般而言,軟體架構設計要達到如下的目標:
可靠性(Reliable:軟體系統對於用戶的商業經營和管理來說極為重要,因此軟體系統必須非常可靠。
安全性(Secure):軟體系統所承擔的交易的商業價值極高,系統的安全性非常重要。
可伸縮性(SCAlable):軟體必須能夠在用戶的使用率、用戶的數目增加很快的情況下,保持合理的性能。只有這樣,才能適應用戶的市場擴展得可能性。
可定製化(CuSTomizable):同樣的一套軟體,可以根據客戶群的不同和市場需求的變化進行調整。
可擴展性(Extensible):在新技術出現的時候,一個軟體系統應當允許導入新技術,從而對現有系統進行功能和性能的擴展。
可維護性(MAIntainable):軟體系統的維護包括兩方面,一是排除現有的錯誤,二是將新的軟體需求反映到現有系統中去。一個易於維護的系統可以有效地降低技術支持的花費。
客戶體驗(Customer Experience):軟體系統必須易於使用。
市場時機(Time to Market):軟體用戶要面臨同業競爭,軟體提供商也要面臨同業競爭。以最快的速度爭奪市場先機非常重要。
軟體框架是一個容易理解的概念,多數工程師(尤其是經驗不多的工程師)會從直覺上來認識它,但要給出精確的定義很困難。特別是,很難明確地區分設計和構架:構架屬於設計的一方面,它集中於某些具體的特徵。
軟體框架是指在一定的設計原則基礎上,從不同角度對組成系統的各部分進行搭配和安排,形成系統的多個結構而組成架構,它包括該系統的各個組件,組件的外部可見屬性及組件之間的相互關係。組件的外部可見屬性是指其他組件對該組件所做的假設。
從和徠目的、主題、材料和結構的聯繫上來說,軟體框架可以和建築物的架構相比擬。一個軟體框架師需要有廣泛的軟體理論知識和相應的經驗來實施和管理軟體產品的高級設計。軟體框架師定義和設計軟體的模塊化,模塊之間的交互,用戶界面風格,對外介面方法,創新的設計特性,以及高層事物的對象操作、邏輯和流程。
一般而言,軟體系統的框架(ArchitECture)有兩個要素:它是一個軟體系統從整體到部分的最高層次的劃分。一個系統通常是由元件組成的,而這些元件如何形成、相互之間如何發生作用,則是關於這個系統本身結構的重要信息。詳細地說,就是要包括架構元件(Architecture Component)、聯結器(Connector)、任務流(TASk-flow)。所謂架構元素,也就是組成系統的核心"磚瓦",而聯結器則描述這些元件之間通訊的路徑、通訊的機制、通訊的預期結果,任務流則描述系統如何使用這些元件和聯結器完成某一項需求。·建造一個系統所作出的最高層次的、以後難以更改的,商業的和技術的決定。在建造一個系統之前會有很多的重要決定需要事先作出,而一旦系統開始進行詳細設計甚至建造,這些決定就很難更改甚至無法更改。顯然,這樣的決定必定是有關係統設計成敗的最重要決定,必須經過非常慎重的研究和考察。
框架模式是解決複雜構架問題的現成形式。構架框架或構架基礎設施(中間件)是可以在其上構建某種構架的構件集。許多主要的構架困難應在框架或基礎設施中進行解決,而且通常針對於特定的領域:命令和控制、MIS、控制系統等等。