當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 房地產(chǎn)OA系統(tǒng) > 相關(guān)系統(tǒng) > 房地產(chǎn)項(xiàng)目管理軟件
軟件質(zhì)量之路-面向組件的大規(guī)模軟件架構(gòu)
申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114
在中小規(guī)模的軟件中,對(duì)象和對(duì)象之間的協(xié)作關(guān)系就能夠滿足需要。但是當(dāng)軟件規(guī)模擴(kuò)大,復(fù)雜度上升的時(shí)候,面向?qū)ο蠹夹g(shù)強(qiáng)調(diào)的協(xié)作卻表現(xiàn)出另一個(gè)極端的特點(diǎn)-耦合度太高導(dǎo)致的復(fù)雜度。這時(shí)候就需要有一種新的方法來彌補(bǔ)面向?qū)ο蠹夹g(shù)的弱點(diǎn)。
大規(guī)模軟件的特點(diǎn)
大規(guī)模軟件主要特點(diǎn)是復(fù)雜度。比較典型的例子是集成性的項(xiàng)目。軟件系統(tǒng)需要將各種各樣的硬件、遺留系統(tǒng)、外部接口整合起來。其間可能遇到不同的硬件接口,不同的操作系統(tǒng),不同的語言,不同的平臺(tái),不同的數(shù)據(jù)庫,不同的消息中間件,不同的網(wǎng)絡(luò)介質(zhì)。這些都使得系統(tǒng)變得非常的復(fù)雜。
面向?qū)ο蠹夹g(shù)的特點(diǎn)是通過對(duì)象之間的職責(zé)分工和高度協(xié)作來完成任務(wù)。這樣的好處是代碼量較少,系統(tǒng)布局合理,重用程度高。但是當(dāng)對(duì)象的個(gè)數(shù)大量增加的時(shí)候,對(duì)象之間的高度耦合的關(guān)系將會(huì)使得系統(tǒng)變得復(fù)雜,難以理解。
以前對(duì)于這個(gè)問題的方法是采用包(請(qǐng)參考拙作面向?qū)ο筌浖_發(fā)中對(duì)包的相關(guān)討論)作為容器來組織對(duì)象,對(duì)象之間的依賴性將轉(zhuǎn)化為包之間的依賴性。這種方法聽起來有道理,但是在實(shí)際中仍會(huì)出現(xiàn)難以解決的問題。
包僅僅只是容器。這意味著對(duì)對(duì)象的組織可以是任意的,而包之間依賴關(guān)系的設(shè)計(jì)則還是取決于對(duì)象的依賴。此外,包的設(shè)計(jì)和對(duì)象一樣,缺乏一個(gè)統(tǒng)一的風(fēng)格。而統(tǒng)一的風(fēng)格正是大規(guī)模軟件設(shè)計(jì)所必須的,因?yàn)檫@樣可以有效改進(jìn)系統(tǒng)的可理解性,這一點(diǎn)非常重要。
面向組件編程
面向組件編程的縮寫是COP.COP是對(duì)OOP的補(bǔ)充,幫助實(shí)現(xiàn)更加優(yōu)秀的軟件結(jié)構(gòu)。組件的粒度可大可小,需要取決于具體的應(yīng)用。
在COP中有幾個(gè)重要的概念:服務(wù),服務(wù)(Service)是一組接口,供客戶端程序使用。例如,驗(yàn)證和授權(quán)服務(wù),任務(wù)調(diào)度服務(wù)。服務(wù)是系統(tǒng)中各個(gè)部件相互調(diào)用的接口;組件,組件(Component)實(shí)現(xiàn)了一組服務(wù),此外,組件必須符合容器訂立的規(guī)范,例如,初始化,配置、銷毀。
COP 是對(duì)一種組織代碼的思路,尤其是服務(wù)和組件兩個(gè)概念。在下文會(huì)提到Spring框架中,就采用了COP的思路,將系統(tǒng)看作一個(gè)個(gè)的組件,通過定義組件之間的協(xié)作關(guān)系(通過服務(wù))來完成系統(tǒng)的構(gòu)建。這樣做的好處是能夠隔離變化,合理的劃分系統(tǒng)。而框架的意義就在于定義一個(gè)組織組件的方式。
理解組件
組件不是一個(gè)新的概念,Java中的javaBean規(guī)范和EJB規(guī)范都是典型的組件。組件的特點(diǎn)在于他定義了一種通用的處理方式。例如,JavaBean 擁有內(nèi)視的特性,這樣就可以通過工具來實(shí)現(xiàn)JavaBean的可視化。而EJB規(guī)范定義了企業(yè)服務(wù)中的一些特性,使得EJB容器能夠?yàn)榉螮JB規(guī)范的代碼增添企業(yè)計(jì)算所需要的能力,例如事務(wù)、持久化、池等。
所以,組件比起對(duì)象來的進(jìn)步就在于通用的規(guī)范的引入。通用規(guī)范往往能夠?yàn)榻M件添加新的能力(就像上面所討論的),但也給組件添加了限制,例如你需要實(shí)現(xiàn)EJB的一些接口。以下我們將討論組件的一些相關(guān)問題:
組件的粒度
組件的粒度是和系統(tǒng)的架構(gòu)息息相關(guān)的。組件的粒度確定了,系統(tǒng)的架構(gòu)也就確定了。在小規(guī)模的軟件中,可能組件的粒度很小,僅相當(dāng)于普通的對(duì)象,但是對(duì)于大規(guī)模的系統(tǒng)來說,一個(gè)組件可能包括幾十,甚至上百個(gè)對(duì)象。因此,對(duì)使用COP技術(shù)的系統(tǒng)來說,需要正確的定義組件的粒度。較好的定義粒度的方法是對(duì)核心流程進(jìn)行分析。
針對(duì)接口
接口和實(shí)現(xiàn)分離是COP的基礎(chǔ),沒有接口和實(shí)現(xiàn)的分離,就沒有COP.接口的高度抽象特性使得各個(gè)組件能夠被獨(dú)立的抽取出來,而不影響到系統(tǒng)的其它部分。
接口和實(shí)現(xiàn)分離有以下幾個(gè)好處:
1.在模塊/組件/對(duì)象之間解耦。
2.輕松的抽換實(shí)現(xiàn),而不用修改客戶端。
3.用戶只需要了解接口,而不需要了解實(shí)現(xiàn)細(xì)節(jié)。
4.增加了重用的可能性。
- 12015年安全工程師考試《生產(chǎn)管理知識(shí)》沖刺題(5)
- 2Shashi Caan:設(shè)計(jì),一種嚴(yán)肅的行為
- 32015年安全工程師考試《安全產(chǎn)生法》模擬題(32)
- 4尼克:不能為了設(shè)計(jì)而設(shè)計(jì)
- 5[四川]學(xué)校工程“魯班獎(jiǎng)”創(chuàng)優(yōu)計(jì)劃
- 6河北秦皇島壓力管道安裝表格若干
- 7快速處理測(cè)試項(xiàng)目中的任務(wù)分配
- 82015年安全工程師考試《安全生產(chǎn)管理知識(shí)》模擬題6
- 9云造價(jià),引領(lǐng)信息時(shí)代造價(jià)行業(yè)新風(fēng)向
- 10項(xiàng)目管理之我見
- 11安全工程師考試《生產(chǎn)法及法律知識(shí)》模擬題(17)
- 12李長敏:建議東大直街重新規(guī)劃 種植行道樹
- 132014年中國LED燈條燈帶出口現(xiàn)狀及趨勢(shì)分析
- 14時(shí)評(píng):奇怪建筑潮該消退了
- 15安全工程師《法律法規(guī)》第三講習(xí)題精選(4)
- 162015年安全工程師考試《案例分析》練習(xí)(8)
- 17LED顯示屏行業(yè)整體分析
- 18某會(huì)議中心工程竣工城建檔案目錄(案卷目錄、卷內(nèi)目錄)
- 19河南某活動(dòng)中心工程創(chuàng)優(yōu)方案(中州杯 魯班獎(jiǎng))
- 20時(shí)評(píng):城市規(guī)劃要多點(diǎn)前瞻少點(diǎn)浪費(fèi)
- 21建筑工程項(xiàng)目安全管理實(shí)務(wù)
- 22空氣凈化系統(tǒng)檢測(cè)記錄
- 23項(xiàng)目管理中安全管理的重要性
- 24時(shí)評(píng):城市報(bào)刊亭 不宜一撤了之
- 25電子政務(wù)項(xiàng)目管理八點(diǎn)啟
- 26鄒德儂:中國歐式建筑為何很多“四不像”?
- 27IT項(xiàng)目管理面臨的挑戰(zhàn)
- 28何麗楓:度假地產(chǎn)徐徐前行中的鈍感和定力
- 29李鐵:警惕智慧城市建設(shè)引發(fā)新一輪政績工程
- 30Michael C. Mitchell:主題公園的規(guī)劃和主題化
成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓