下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
CAA第一講By張顯藤2010-12-6PAGEPAGE3CATIACAA第一講:基本概念1.什么是組件?CAA,全稱
Component
Application
Architecture,組件應(yīng)用架構(gòu)。這個東西對不搞軟件的人來說可能很陌生,我也很陌生啊,原來光知道“面向?qū)ο蟮募夹g(shù)”就很牛逼了,“組件技術(shù)”難道更牛逼嗎?
既然類和組件有著這么多類似的地方,那么傳統(tǒng)的面向?qū)ο缶幊毯兔嫦蚪M件編程有什么區(qū)別呢?簡單的說,面向?qū)ο箨P(guān)注的是組合在一個二進(jìn)制可執(zhí)行文件中的各個類的關(guān)系,而面向組件的編程關(guān)注的是在彼此獨(dú)立的基礎(chǔ)上模塊之間的交互性,這種交互性使得你并不需要熟悉它們內(nèi)部的工作原理。
這兩種方法最基本的不同在于它們對最終的應(yīng)用程序的觀點(diǎn)。在傳統(tǒng)的面向?qū)ο缶幊讨?,盡管你可以精心的把所有的商業(yè)邏輯分布在不同的類中,一旦這些類被編譯,它們就被固化成了一個巨大的二進(jìn)制代碼。所有的類共享同一個物理單元(通常是一個可執(zhí)行文件)、被操作系統(tǒng)認(rèn)為是同一個進(jìn)程,使用同一個地址空間以及共享相同的安全策略等等。如果多個開發(fā)者在同一份代碼上進(jìn)行開發(fā),他們甚至還要共享源文件。在這種情況下,修改一個類可能會讓整個項目被重新鏈接,并重新進(jìn)行必要的測試,更嚴(yán)重的,還有可能要修改其他的類。但是,在面向組件開發(fā)中,應(yīng)用程序是由一系列可以互相交互的二進(jìn)制模塊組合而成的。
一個具體的二進(jìn)制組件可能并不能完成什么工作。有些組件是為了提供一些常規(guī)服務(wù)而編寫的,例如通信的封裝或者文件訪問組件。也有一些是為了某些特定應(yīng)用而專門開發(fā)的。一個應(yīng)用程序的設(shè)計者可以通過把這些不同的組件提供的功能粘合在一起來實現(xiàn)他們需要的商業(yè)邏輯。很多面向組件的技術(shù)——例如:
COM
、
J2EE
、
CORBA
和
.NET
都為二進(jìn)制組件提供了的無縫鏈接的機(jī)制。而唯一的不同就是你需要在組件通信上花費(fèi)的力氣。
把一個二進(jìn)制應(yīng)用程序分解成不同的二進(jìn)制組件的動機(jī)和把不同的類放到不同的文件中是類似的。后者使得不同的類的開發(fā)人員可以彼此獨(dú)立的工作,盡管即時修改了一個類也要重新鏈接整個應(yīng)用程序,但是你只需要重新編譯被修改的部分就可以了。
但是,面向組件的開發(fā)還是和簡單軟件項目的管理更復(fù)雜一些。因為一個面向組件的應(yīng)用程序是一個二進(jìn)制代碼塊的集合,你可以把組件當(dāng)作是
LEGO
的積木塊一樣,隨心所欲的拆裝它們。如果你需要修改一個組件的實現(xiàn),只需要修改那個組件就可以了,而組件的客戶機(jī)不需要重新編譯也不需要重新開發(fā)。對于那些不常用到的組件,組件甚至可以在一個程序運(yùn)行的時候被更新。這些改進(jìn)和增強(qiáng)使得組件可以立即進(jìn)行更新,而所有該組件的客戶都將立即受益。無論是在同一臺機(jī)器上還是通過網(wǎng)絡(luò)遠(yuǎn)程訪問。
面向組件的應(yīng)用程序也更易于擴(kuò)展。當(dāng)你需要實現(xiàn)新的需求的時候,你可以提供一個新的組件,而不去影響那些和新需求無關(guān)的組件。這些特點(diǎn)使得面向組件的開發(fā)降低了大型軟件項目長期維護(hù)的成本,這是一個最實際的商業(yè)問題,也正是如此,組件技術(shù)才如此迅速的被接受。
面向組件的應(yīng)用程序通??梢愿斓捻憫?yīng)市場,因為你可以有很大的選擇空間,不僅僅是自己開發(fā)的組件,還可以從第三方廠商來購買某些組件,從而避免了重復(fù)制造輪子。這里,
VB
就是一個很好的例子,豐富的
ActiveX
控件使得很多人在快速開發(fā)中得到了享受。
面向?qū)ο蠛兔嫦蚪M件另一個重要的不同在于這兩種技術(shù)在繼承和重用模型上的側(cè)重點(diǎn)不同。
在面向?qū)ο蟮姆治龊驮O(shè)計中,應(yīng)用程序通常被分解成復(fù)雜的類繼承結(jié)構(gòu)。類的設(shè)計和要解決的商業(yè)問題緊密結(jié)合。你可以從已有基類繼承并特化其行為來實現(xiàn)代碼重用。問題在于,這是一種很糟糕的重用的方法。當(dāng)你從一個基類派生一個子類的時候,你必須對基類的實現(xiàn)有透徹的理解才可能保證不出問題。例如:修改一個成員變量會不會帶來副作用?這會對基類中的代碼有什么影響?重載基類的方法會不會破壞那些想使用基類版本的客戶的行為?等等。
這種形式的重用被稱為白盒重用(White-boxreuse),因為當(dāng)你重用的時候你就需要去了解基類實現(xiàn)的細(xì)節(jié)。顯然。白盒重用在可擴(kuò)展性較高的大型應(yīng)用中并不經(jīng)濟(jì),也很難得到第三方Framework廠商的支持。
面向組件的開發(fā)采用了黑盒重用(Black-boxreuse)的方法,它可以讓你對組件內(nèi)部全然不知的情況下來使用組件公開的接口。這樣,你就可以遠(yuǎn)離那些復(fù)雜的繼承關(guān)系。而面向組件的開發(fā)者也可以把更多的精力放在制定組件和客戶的溝通的接口上了。
最后,面向?qū)ο缶幊烫峁┝擞邢薜墓ぞ吆驮O(shè)計模式來處理和應(yīng)用程序運(yùn)行時相關(guān)的問題,例如多線程、并發(fā)管理、安全、分布式應(yīng)用和版本控制等。面向?qū)ο蟮拈_發(fā)者當(dāng)面對這些“公共需求”的時候,或多或少的需要自己來解決問題。但是面向組件的開發(fā)方式卻使你在這方面要靈活的多。
以下是CSDN社區(qū)網(wǎng)友對組件的一個討論:
1面向?qū)ο笫敲嫦蚪M件的基礎(chǔ),組件是在對象的基礎(chǔ)上加上屬性和事件
2復(fù)用粒度的大小不同。通常多個密切相關(guān)的對象組織在一起完成一個/或多特定的功能。組件有多個側(cè)面(facet),不同的使用者可能只使用其中的部分。
3級別不一樣,“面向?qū)ο蟆笔菍φZ言級別的,“組件”是對應(yīng)用級別的。組件可以由對象實體組成。
4組件由一個或若干個對象組成。對象提供可訪問的接口。
5可笑,現(xiàn)在很多人把面向?qū)ο缶幊汤斫鉃槊嫦蚪M件編程,真是幼稚!
6組件是一種面向應(yīng)用的概念,對象是一種面向編程方法的概念。一般進(jìn)行組件編程都是用面向?qū)ο蟮姆椒ň幊踢M(jìn)行實現(xiàn)。組件已經(jīng)是一種能實際應(yīng)用的實例了。本人的理解,見笑了。
7面向?qū)ο笫窃诖a一級對數(shù)據(jù)和方法的封裝,C++,JAVA
面向組件是在二進(jìn)制代碼上的封裝,COM/COM+,CORBA
8面向組件的集成度和可重用度更高(如樓上的meking_lee所說的),面向組件渴望一種真正的接口級的搭積木的軟件模式,目前在語言特性上支持這一點(diǎn)的就只有java了(當(dāng)然也許我見識短)。
9用C++實現(xiàn)組件,是因為沒有直接支持組件的語言?,F(xiàn)在的組件太大了。
10
應(yīng)該說是面向?qū)ο窈突诮M件2.CAA架構(gòu)CATIA本身是按照組件模型建立起來的,用戶可以通過開發(fā)自己的CAA組件,對DASSAULTSYSTEMES的CATIAV5進(jìn)行擴(kuò)展;也可以把用戶自己開發(fā)的CAA組件結(jié)合起來,實現(xiàn)用戶自定義應(yīng)用。
CAA應(yīng)用的框架結(jié)構(gòu)遵從組件對象模型,有自己的框架結(jié)構(gòu)。每個應(yīng)用有至少一個框架(framework),每個框架有至少一個模塊(module)。每個框架里面有一個IdentityCard.h文件,這個文件通過宏“AddPrereqComponent(framenwork,protected)”來聲明“聲明”這個框架的一些首先必備的其他框架名稱,framework是框架名稱。CAA的編譯器就是通過IdentityCard.h文件,來把頭文件搜索限制在首先必備框架所包含的接口中。每個模塊下面定義了一個Imakefile.mk文件,這個文件指明了這個模塊中所有文件在編譯時用到的其它模塊和一些外部庫以及為編譯器提供如何編譯的模塊必須信息,還指定在不同的操作系統(tǒng)下面編譯時的一些可能的特殊要求。CAA環(huán)境對Cnext能夠運(yùn)行的所有操作系統(tǒng)中采用同樣的編譯器,這為開發(fā)者提供了很大的方便,因為他們可以不需要知道怎樣用不同的編譯器和怎么寫makefile。但是MKMK并不能做所有的事情,開發(fā)者至少要說明他們想要做什么。我們在自己的源文件中用到其它模塊的接口,要在Imakefile.mk中進(jìn)行說明。
程序結(jié)構(gòu)采用了COM組件模型,組件模型中有兩個常用的概念:接口(Interface)和實現(xiàn)(Implement)。接口是一個包含許多純虛函數(shù)的抽象對象,這些純虛函數(shù)指明了接口支持的方法。實現(xiàn)是一個具體定義接口中的方法的對象,一個實現(xiàn)對象必須顯式聲明它支持哪些接口,還必須定義它支持的接口中的所有抽象方法,實現(xiàn)對象可以支持一個或多個接口,而客戶應(yīng)用只能通過這些接口與實現(xiàn)對象發(fā)生聯(lián)系。
3.What'sRADE??RADE,RapidApplicationDevelopmentEnvironment,快速應(yīng)用研發(fā)環(huán)境,是一個可視化的集成開發(fā)環(huán)境,它提供完整的編程工具組。RADE以MicrosoftVisualC++6.0為載體,開發(fā)工具完全集成在了VC++環(huán)境中,并且提供了一個CAA框架程序編譯器,但同時也限制了VC++的部分功能??梢哉fCATIACAA–RADE是目前所有高端CAD/CAM開發(fā)環(huán)境中最為復(fù)雜、同時也是功能最為強(qiáng)大的一個。
CAAV5RADE包括一系列工具:TCK(ToolConfigurationKey)、MAB(多工作空間應(yīng)用生成器)、CUT(C++單元調(diào)試管理器)、MKMK(CAA編譯工具)
、CID(C++交互式面板)等,以插件的形式與MSDevVC++集成到一起。然后借助于這些工具在MSDev
環(huán)境下開發(fā)自己的CAA組件。
TCK管理RADE環(huán)境,TCK命令是用來管理開發(fā)工具包的安裝,用來創(chuàng)建一個工作環(huán)境。當(dāng)在WinowsNT上用CAAV5的可視化創(chuàng)建工具(以插件形式嵌入MicrosoftDeveloperStudio),tck_init
和
tck_profile
命令在打開一個V5的工作區(qū)時被自動調(diào)用。
MKMK(多工作區(qū)應(yīng)用編譯器)是DS(DassaultSystems)原代碼編譯工具,它構(gòu)建在平臺無關(guān)(UNIX和WindowsNT)的標(biāo)準(zhǔn)編譯器上,它支持面向組件的設(shè)計模式。MKMK提供一種統(tǒng)一的工具來編譯和連接CAA應(yīng)用而不管是用的什么編程語言(Fortran,C,C++,IDL,Express,CIRCE,...)。
CUT是單元調(diào)試管理器,CUT用mkodt命令來運(yùn)行傳遞給測試框架中的測試對象,通過選擇不同的命令參數(shù)來決定選擇測試一個對象或者所有對象。
CID即C++交互式面板,CID根據(jù)軟件開發(fā)人員的需求,支持從設(shè)計、開發(fā)到測試
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025合法的私人工程合同樣式
- 2025司機(jī)勞務(wù)合作合同協(xié)議范本
- 2025某項目公共服務(wù)設(shè)施及商業(yè)用房、地下室建設(shè)工程施工補(bǔ)充合同
- 2025買樓定金合同范本
- 涉外補(bǔ)償貿(mào)易合同范本
- 室內(nèi)裝飾工程設(shè)計合同書
- 資金信托合同范本
- 2025年業(yè)務(wù)代合同(五篇)
- 2025年上海市食用菌菌棒定購合同范文(2篇)
- 地鐵站租賃合同
- GB/T 43650-2024野生動物及其制品DNA物種鑒定技術(shù)規(guī)程
- 2024年南京鐵道職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 暴發(fā)性心肌炎查房
- 口腔醫(yī)學(xué)中的人工智能應(yīng)用培訓(xùn)課件
- 工程質(zhì)保金返還審批單
- 【可行性報告】2023年電動自行車項目可行性研究分析報告
- 五月天歌詞全集
- 商品退換貨申請表模板
- 實習(xí)單位鑒定表(模板)
- 數(shù)字媒體應(yīng)用技術(shù)專業(yè)調(diào)研方案
- 2023年常州市新課結(jié)束考試九年級數(shù)學(xué)試卷(含答案)
評論
0/150
提交評論