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

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

申請免費試用、咨詢電話:400-8352-114

  在中小規(guī)模的軟件中,對象和對象之間的協(xié)作關系就能夠滿足需要。但是當軟件規(guī)模擴大,復雜度上升的時候,面向對象技術強調(diào)的協(xié)作卻表現(xiàn)出另一個極端的特點-耦合度太高導致的復雜度。這時候就需要有一種新的方法來彌補面向對象技術的弱點。

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

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

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

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

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

  面向組件編程

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

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

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

  理解組件

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

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

  組件的粒度

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

  針對接口

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

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

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

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

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

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

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

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

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

咨詢:400-8352-114

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

QQ在線咨詢