一、軟件體系結構和框架的定義
軟件體系結構的英文單詞是“architecture”. Architecture的基本詞義是建筑、建筑學、建筑風格。
軟件體系結構雖然根植于軟件工程,但還處于一個研究發(fā)展的階段,迄今為止還沒有一個為大家所公認的定義。
《設計模式》中對框架的定義是框架就是一組相互協(xié)作的類,對于特定的一類軟件,框架構成了一種可重用的設計。
軟件框架是項目軟件開發(fā)過程中提取特定領域軟件的共性部分形成的體系結構,不同領域的軟件項目有著不同的框架類型??蚣艿淖饔迷谟冢河捎谔崛×颂囟I域軟件的共性部分,因此在此領域內新項目的開發(fā)過程中代碼不需要從頭編寫,只需要在框架的基礎上進行一些開發(fā)和調整便可滿足要求;對于開發(fā)過程而言,這樣做會提高軟件的質量,降低成本,縮短開發(fā)時間,使開發(fā)越做越輕松,效益越做越好,形成一種良性循環(huán)。
框架不是現(xiàn)成可用的應用系統(tǒng)。是一個半成品,需要后來的開發(fā)人員進行二次開發(fā),實現(xiàn)具體功能的應用系統(tǒng)。框架不是“平臺”,平臺概念比較模糊可以是一種操作系統(tǒng),一種應用服務器,一種數(shù)據(jù)庫軟件,一種通訊中間件等地那個,因此平臺在應用平臺主要指提供特定服務的系統(tǒng)軟件,而框架更側重了設計,開發(fā)過程,或者可以說,框架通過調用平臺提供的服務而起的作用。
框架不是工具包或者類庫,調用API并不就是在使用框架開發(fā),緊緊使用API是,開發(fā)者完成系統(tǒng)的主題部分,并不時地調用類庫實現(xiàn)特定任務。而框架構成了通用的、具有一般性的系統(tǒng)主體部分,二次開發(fā)人員只是像做填空一樣,根據(jù)具體業(yè)務,完成特定應用系統(tǒng)中與眾不同的特殊部分。
二、框架與架構之間的關系
框架不是構架(即軟件體系機構)。體系結構確定了系統(tǒng)整體結構、層次劃分,不同部分之間的協(xié)作等設計考慮??蚣鼙燃軜嫺唧w。更偏重于技術涉嫌。確定框架后,軟件體系結構也隨之確定,而對于同一軟件體系結構(比如Web開發(fā)中的MVC),可以通過多種框架來實現(xiàn)。
三、框架與設計模式之間的關系
設計模式和框架在軟件設計中是兩個不同的研究領域。設計模式研究的是一個設計問題的解決方法,一個模式可應用于不同的框架和被不同的語言所實現(xiàn);而框架則是一個應用的體系結構,是一種或多種設計模式和代碼的混合體雖然它們有所不同,但卻共同致力于使人們的設計可以被重用,在思想上存在著統(tǒng)一性的特點,因而設計模式的思想可以在框架設計中進行應用。
框架和設計模式存在著顯著的區(qū)別,主要表現(xiàn)在二者提供的內容和致力應用的領域。
1)從應用領域上分,框架給出的是整個應用的體系結構;而設計模式則給出了單一設計問題的解決方案,并且這個方案可在不同的應用程序或者框架中進行應用。
2)從內容上分,設計模式僅是一個單純的設計,這個設計可被不同語言以不用方式來實現(xiàn);而框架則是設計和代碼的一個混合體,編程者可以用各種方式對框架進行擴展,進而形成完整的不同的應用。
3)以第二條為基礎,可以得出設計模式比框架更容易移植:框架一旦設計成形,雖然還沒有構成完整的一個應用,但是以其為基礎進行應用的開發(fā)顯然要受制于框架的實現(xiàn)環(huán)境;而設計模式是與語言無關的,所以可以在更廣泛的異構環(huán)境中進行應用。
總之,框架是軟件,而設計模式是軟件的知識體,提升框架的設計水平。
Feedback
# re: 軟件體系結構(構架)、架構、設計模式之間的關系 回復 更多評論
2005-11-18 13:08 by 非魚
FRAMEWORK和ARCHITECTURE屬于不同的設計層次。DP和FRAMEWORK、ARCHITECTURE分屬不同的領域,DP只能和ARCHITECTURAL PATTERN相提并論。
# re: 軟件體系結構(構架)、架構、設計模式之間的關系 回復 更多評論
2005-11-18 17:59 by publisher luo
ARCHITECTURE是描述系統(tǒng)整體的一種結構(C/S架構,B/S架構,三層架構等),使用框架開發(fā)的web系統(tǒng)也是一種體系結構,而架構是系統(tǒng)中的一部分具體實現(xiàn)??蚣艿脑O計也使用了很多設計模式。設計模式只是一個問題解決域,而框架可以利用設計模式來解決客觀存在的問題。不知道這么說是否好理解一點。996901137
-
留言與評論(共有 0 條評論)