當(dāng)前位置:工程項目OA系統(tǒng) > 房地產(chǎn)OA系統(tǒng) > 相關(guān)系統(tǒng) > 房地產(chǎn)項目管理軟件
軟件質(zhì)量之路-面向組件的大規(guī)模軟件架構(gòu)
在中小規(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.增加了重用的可能性。
- 12015年安全工程師考試《生產(chǎn)管理知識》沖刺題(5)
- 2Shashi Caan:設(shè)計,一種嚴(yán)肅的行為
- 32015年安全工程師考試《安全產(chǎn)生法》模擬題(32)
- 4尼克:不能為了設(shè)計而設(shè)計
- 5[四川]學(xué)校工程“魯班獎”創(chuàng)優(yōu)計劃
- 6河北秦皇島壓力管道安裝表格若干
- 7快速處理測試項目中的任務(wù)分配
- 82015年安全工程師考試《安全生產(chǎn)管理知識》模擬題6
- 9云造價,引領(lǐng)信息時代造價行業(yè)新風(fēng)向
- 10項目管理之我見
- 11安全工程師考試《生產(chǎn)法及法律知識》模擬題(17)
- 12李長敏:建議東大直街重新規(guī)劃 種植行道樹
- 132014年中國LED燈條燈帶出口現(xiàn)狀及趨勢分析
- 14時評:奇怪建筑潮該消退了
- 15安全工程師《法律法規(guī)》第三講習(xí)題精選(4)
- 162015年安全工程師考試《案例分析》練習(xí)(8)
- 17LED顯示屏行業(yè)整體分析
- 18某會議中心工程竣工城建檔案目錄(案卷目錄、卷內(nèi)目錄)
- 19河南某活動中心工程創(chuàng)優(yōu)方案(中州杯 魯班獎)
- 20時評:城市規(guī)劃要多點前瞻少點浪費(fèi)
- 21建筑工程項目安全管理實務(wù)
- 22空氣凈化系統(tǒng)檢測記錄
- 23項目管理中安全管理的重要性
- 24時評:城市報刊亭 不宜一撤了之
- 25電子政務(wù)項目管理八點啟
- 26鄒德儂:中國歐式建筑為何很多“四不像”?
- 27IT項目管理面臨的挑戰(zhàn)
- 28何麗楓:度假地產(chǎn)徐徐前行中的鈍感和定力
- 29李鐵:警惕智慧城市建設(shè)引發(fā)新一輪政績工程
- 30Michael C. Mitchell:主題公園的規(guī)劃和主題化
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓