監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設(shè)計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉

軟件質(zhì)量之路-面向組件的大規(guī)模軟件架構(gòu)

申請免費(fèi)試用、咨詢電話:400-8352-114

  在中小規(guī)模的軟件中,對象和對象之間的協(xié)作關(guān)系就能夠滿足需要。但是當(dāng)軟件規(guī)模擴(kuò)大,復(fù)雜度上升的時候,面向?qū)ο蠹夹g(shù)強(qiáng)調(diào)的協(xié)作卻表現(xiàn)出另一個極端的特點-耦合度太高導(dǎo)致的復(fù)雜度。這時候就需要有一種新的方法來彌補(bǔ)面向?qū)ο蠹夹g(shù)的弱點。

  大規(guī)模軟件的特點

  大規(guī)模軟件主要特點是復(fù)雜度。比較典型的例子是集成性的項目。軟件系統(tǒng)需要將各種各樣的硬件、遺留系統(tǒng)、外部接口整合起來。其間可能遇到不同的硬件接口,不同的操作系統(tǒng),不同的語言,不同的平臺,不同的數(shù)據(jù)庫,不同的消息中間件,不同的網(wǎng)絡(luò)介質(zhì)。這些都使得系統(tǒng)變得非常的復(fù)雜。

  面向?qū)ο蠹夹g(shù)的特點是通過對象之間的職責(zé)分工和高度協(xié)作來完成任務(wù)。這樣的好處是代碼量較少,系統(tǒng)布局合理,重用程度高。但是當(dāng)對象的個數(shù)大量增加的時候,對象之間的高度耦合的關(guān)系將會使得系統(tǒng)變得復(fù)雜,難以理解。

  以前對于這個問題的方法是采用包(請參考拙作面向?qū)ο筌浖_發(fā)中對包的相關(guān)討論)作為容器來組織對象,對象之間的依賴性將轉(zhuǎn)化為包之間的依賴性。這種方法聽起來有道理,但是在實際中仍會出現(xiàn)難以解決的問題。

  包僅僅只是容器。這意味著對對象的組織可以是任意的,而包之間依賴關(guān)系的設(shè)計則還是取決于對象的依賴。此外,包的設(shè)計和對象一樣,缺乏一個統(tǒng)一的風(fēng)格。而統(tǒng)一的風(fēng)格正是大規(guī)模軟件設(shè)計所必須的,因為這樣可以有效改進(jìn)系統(tǒng)的可理解性,這一點非常重要。

  面向組件編程

  面向組件編程的縮寫是COP.COP是對OOP的補(bǔ)充,幫助實現(xiàn)更加優(yōu)秀的軟件結(jié)構(gòu)。組件的粒度可大可小,需要取決于具體的應(yīng)用。

  在COP中有幾個重要的概念:服務(wù),服務(wù)(Service)是一組接口,供客戶端程序使用。例如,驗證和授權(quán)服務(wù),任務(wù)調(diào)度服務(wù)。服務(wù)是系統(tǒng)中各個部件相互調(diào)用的接口;組件,組件(Component)實現(xiàn)了一組服務(wù),此外,組件必須符合容器訂立的規(guī)范,例如,初始化,配置、銷毀。

  COP 是對一種組織代碼的思路,尤其是服務(wù)和組件兩個概念。在下文會提到Spring框架中,就采用了COP的思路,將系統(tǒng)看作一個個的組件,通過定義組件之間的協(xié)作關(guān)系(通過服務(wù))來完成系統(tǒng)的構(gòu)建。這樣做的好處是能夠隔離變化,合理的劃分系統(tǒng)。而框架的意義就在于定義一個組織組件的方式。

  理解組件

  組件不是一個新的概念,Java中的javaBean規(guī)范和EJB規(guī)范都是典型的組件。組件的特點在于他定義了一種通用的處理方式。例如,JavaBean 擁有內(nèi)視的特性,這樣就可以通過工具來實現(xiàn)JavaBean的可視化。而EJB規(guī)范定義了企業(yè)服務(wù)中的一些特性,使得EJB容器能夠為符合EJB規(guī)范的代碼增添企業(yè)計算所需要的能力,例如事務(wù)、持久化、池等。

  所以,組件比起對象來的進(jìn)步就在于通用的規(guī)范的引入。通用規(guī)范往往能夠為組件添加新的能力(就像上面所討論的),但也給組件添加了限制,例如你需要實現(xiàn)EJB的一些接口。以下我們將討論組件的一些相關(guān)問題:

  組件的粒度

  組件的粒度是和系統(tǒng)的架構(gòu)息息相關(guān)的。組件的粒度確定了,系統(tǒng)的架構(gòu)也就確定了。在小規(guī)模的軟件中,可能組件的粒度很小,僅相當(dāng)于普通的對象,但是對于大規(guī)模的系統(tǒng)來說,一個組件可能包括幾十,甚至上百個對象。因此,對使用COP技術(shù)的系統(tǒng)來說,需要正確的定義組件的粒度。較好的定義粒度的方法是對核心流程進(jìn)行分析。

  針對接口

  接口和實現(xiàn)分離是COP的基礎(chǔ),沒有接口和實現(xiàn)的分離,就沒有COP.接口的高度抽象特性使得各個組件能夠被獨立的抽取出來,而不影響到系統(tǒng)的其它部分。

  接口和實現(xiàn)分離有以下幾個好處:

  1.在模塊/組件/對象之間解耦。

  2.輕松的抽換實現(xiàn),而不用修改客戶端。

  3.用戶只需要了解接口,而不需要了解實現(xiàn)細(xì)節(jié)。

  4.增加了重用的可能性。

發(fā)布:2007-02-28 10:20    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:
相關(guān)系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號1層9號

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費(fèi)獲取試用系統(tǒng)

QQ在線咨詢