一、軟件體系結(jié)構(gòu)和框架的定義

          軟件體系結(jié)構(gòu)的英文單詞是“architecture”. Architecture的基本詞義是建筑、建筑學(xué)、建筑風(fēng)格。

          軟件體系結(jié)構(gòu)雖然根植于軟件工程,但還處于一個研究發(fā)展的階段,迄今為止還沒有一個為大家所公認(rèn)的定義。

           《設(shè)計模式》中對框架的定義是框架就是一組相互協(xié)作的類,對于特定的一類軟件,框架構(gòu)成了一種可重用的設(shè)計。

          軟件框架是 項目軟件開發(fā)過程中提取特定領(lǐng)域軟件的共性部分形成的體系結(jié)構(gòu),不同領(lǐng)域的軟件項目有著不同的框架類型。框架的作用在于:由于提取了特定領(lǐng)域軟件的共性部 分,因此在此領(lǐng)域內(nèi)新項目的開發(fā)過程中代碼不需要從頭編寫,只需要在框架的基礎(chǔ)上進行一些開發(fā)和調(diào)整便可滿足要求;對于開發(fā)過程而言,這樣做會提高軟件的 質(zhì)量,降低成本,縮短開發(fā)時間,使開發(fā)越做越輕松,效益越做越好,形成一種良性循環(huán)。

          框 架不是現(xiàn)成可用的應(yīng)用系統(tǒng)。是一個半成品,需要后來的開發(fā)人員進行二次開發(fā),實現(xiàn)具體功能的應(yīng)用系統(tǒng)。框架不是“平臺”,平臺概念比較模糊可以是一種操作 系統(tǒng),一種應(yīng)用服務(wù)器,一種數(shù)據(jù)庫軟件,一種通訊中間件等地那個,因此平臺在應(yīng)用平臺主要指提供特定服務(wù)的系統(tǒng)軟件,而框架更側(cè)重了設(shè)計,開發(fā)過程,或者 可以說,框架通過調(diào)用平臺提供的服務(wù)而起的作用。

          框架不是工具包或者類庫,調(diào)用API并不就是在使用框架開發(fā),緊緊使用API是,開發(fā)者完成系統(tǒng)的主題部分,并不時地調(diào)用類庫實現(xiàn)特定任務(wù)。而框架構(gòu)成了通用的、具有一般性的系統(tǒng)主體部分,二次開發(fā)人員只是像做填空一樣,根據(jù)具體業(yè)務(wù),完成特定應(yīng)用系統(tǒng)中與眾不同的特殊部分。

          二、框架與架構(gòu)之間的關(guān)系
              框架不是構(gòu)架(即軟件體系機構(gòu))。體系結(jié)構(gòu)確定了系統(tǒng)整體結(jié)構(gòu)、層次劃分,不同部分之間的協(xié)作等設(shè)計考慮。框架比架構(gòu)更具體。更偏重于技術(shù)涉嫌。確定框架后,軟件體系結(jié)構(gòu)也隨之確定,而對于同一軟件體系結(jié)構(gòu)(比如Web開發(fā)中的MVC),可以通過多種框架來實現(xiàn)。

          三、框架與設(shè)計模式之間的關(guān)系

          設(shè) 計模式和框架在軟件設(shè)計中是兩個不同的研究領(lǐng)域。設(shè)計模式研究的是一個設(shè)計問題的解決方法,一個模式可應(yīng)用于不同的框架和被不同的語言所實現(xiàn);而框架則是 一個應(yīng)用的體系結(jié)構(gòu),是一種或多種設(shè)計模式和代碼的混合體雖然它們有所不同,但卻共同致力于使人們的設(shè)計可以被重用,在思想上存在著統(tǒng)一性的特點,因而設(shè) 計模式的思想可以在框架設(shè)計中進行應(yīng)用。

          框架和設(shè)計模式存在著顯著的區(qū)別,主要表現(xiàn)在二者提供的內(nèi)容和致力應(yīng)用的領(lǐng)域。

          1)從應(yīng)用領(lǐng)域上分,框架給出的是整個應(yīng)用的體系結(jié)構(gòu);而設(shè)計模式則給出了單一設(shè)計問題的解決方案,并且這個方案可在不同的應(yīng)用程序或者框架中進行應(yīng)用。

          2)從內(nèi)容上分,設(shè)計模式僅是一個單純的設(shè)計,這個設(shè)計可被不同語言以不用方式來實現(xiàn);而框架則是設(shè)計和代碼的一個混合體,編程者可以用各種方式對框架進行擴展,進而形成完整的不同的應(yīng)用。

          3)以第二條為基礎(chǔ),可以得出設(shè)計模式比框架更容易移植:框架一旦設(shè)計成形,雖然還沒有構(gòu)成完整的一個應(yīng)用,但是以其為基礎(chǔ)進行應(yīng)用的開發(fā)顯然要受制于框架的實現(xiàn)環(huán)境;而設(shè)計模式是與語言無關(guān)的,所以可以在更廣泛的異構(gòu)環(huán)境中進行應(yīng)用。

          總之,框架是軟件,而設(shè)計模式是軟件的知識體,提升框架的設(shè)計水平。


          Feedback

          # re: 軟件體系結(jié)構(gòu)(構(gòu)架)、架構(gòu)、設(shè)計模式之間的關(guān)系  回復(fù)  更多評論   

          2005-11-18 13:08 by 非魚
          FRAMEWORK和ARCHITECTURE屬于不同的設(shè)計層次。DP和FRAMEWORK、ARCHITECTURE分屬不同的領(lǐng)域,DP只能和ARCHITECTURAL PATTERN相提并論。

          # re: 軟件體系結(jié)構(gòu)(構(gòu)架)、架構(gòu)、設(shè)計模式之間的關(guān)系  回復(fù)  更多評論   

          2005-11-18 17:59 by publisher luo
          ARCHITECTURE是描述系統(tǒng)整體的一種結(jié)構(gòu)(C/S架構(gòu),B/S架構(gòu),三層架構(gòu)等),使用框架開發(fā)的web系統(tǒng)也是一種體系結(jié)構(gòu),而架構(gòu)是系統(tǒng)中的一部分具體實現(xiàn)。框架的設(shè)計也使用了很多設(shè)計模式。設(shè)計模式只是一個問題解決域,而框架可以利用設(shè)計模式來解決客觀存在的問題。不知道這么說是否好理解一點。

          # re: 軟件體系結(jié)構(gòu)(構(gòu)架)、框架、設(shè)計模式之間的關(guān)系  回復(fù)  更多評論   

          2006-11-26 21:50 by tomas rayyn
          沒看明白你們再說什么,感覺邏輯上有的地方很混亂。

          # re: 軟件體系結(jié)構(gòu)(構(gòu)架)、框架、設(shè)計模式之間的關(guān)系  回復(fù)  更多評論   

          2009-12-21 17:48 by Nils
          建議樓主,結(jié)合《系統(tǒng)科學(xué)》、《系統(tǒng)工程原理、方法與應(yīng)用》整理自己的理解,然后,再閱讀一下《邏輯學(xué)》,看看/學(xué)一學(xué)如何下定義、如何比較兩個概念...

          posts - 9, comments - 27, trackbacks - 0, articles - 19

          Copyright © publisher luo

          主站蜘蛛池模板: 怀集县| 嘉荫县| 临颍县| 邢台县| 宁城县| 麻城市| 广平县| 开江县| 行唐县| 安化县| 红原县| 昌吉市| 珲春市| 宾阳县| 普安县| 隆安县| 泸州市| 墨竹工卡县| 马尔康县| 云阳县| 梓潼县| 襄樊市| 繁昌县| 霍城县| 马尔康县| 铜山县| 南涧| 清远市| 南宫市| 郁南县| 抚顺市| 廉江市| 民丰县| 乳山市| 宝兴县| 酒泉市| 青龙| 扬州市| 吴江市| 安丘市| 祁阳县|