![CATIA CAA 二次開(kāi)發(fā)詳細(xì)教程 (1)-基礎(chǔ)概念_第1頁(yè)](http://file4.renrendoc.com/view14/M0B/27/0D/wKhkGWYKL8iAVyJhAAOQ9IN00q8657.jpg)
![CATIA CAA 二次開(kāi)發(fā)詳細(xì)教程 (1)-基礎(chǔ)概念_第2頁(yè)](http://file4.renrendoc.com/view14/M0B/27/0D/wKhkGWYKL8iAVyJhAAOQ9IN00q86572.jpg)
![CATIA CAA 二次開(kāi)發(fā)詳細(xì)教程 (1)-基礎(chǔ)概念_第3頁(yè)](http://file4.renrendoc.com/view14/M0B/27/0D/wKhkGWYKL8iAVyJhAAOQ9IN00q86573.jpg)
![CATIA CAA 二次開(kāi)發(fā)詳細(xì)教程 (1)-基礎(chǔ)概念_第4頁(yè)](http://file4.renrendoc.com/view14/M0B/27/0D/wKhkGWYKL8iAVyJhAAOQ9IN00q86574.jpg)
![CATIA CAA 二次開(kāi)發(fā)詳細(xì)教程 (1)-基礎(chǔ)概念_第5頁(yè)](http://file4.renrendoc.com/view14/M0B/27/0D/wKhkGWYKL8iAVyJhAAOQ9IN00q86575.jpg)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
CAA第一講By張顯藤2010-12-6PAGEPAGE3CATIACAA第一講:基本概念1.什么是組件?CAA,全稱(chēng)
Component
Application
Architecture,組件應(yīng)用架構(gòu)。這個(gè)東西對(duì)不搞軟件的人來(lái)說(shuō)可能很陌生,我也很陌生啊,原來(lái)光知道“面向?qū)ο蟮募夹g(shù)”就很牛逼了,“組件技術(shù)”難道更牛逼嗎?
既然類(lèi)和組件有著這么多類(lèi)似的地方,那么傳統(tǒng)的面向?qū)ο缶幊毯兔嫦蚪M件編程有什么區(qū)別呢?簡(jiǎn)單的說(shuō),面向?qū)ο箨P(guān)注的是組合在一個(gè)二進(jìn)制可執(zhí)行文件中的各個(gè)類(lèi)的關(guān)系,而面向組件的編程關(guān)注的是在彼此獨(dú)立的基礎(chǔ)上模塊之間的交互性,這種交互性使得你并不需要熟悉它們內(nèi)部的工作原理。
這兩種方法最基本的不同在于它們對(duì)最終的應(yīng)用程序的觀(guān)點(diǎn)。在傳統(tǒng)的面向?qū)ο缶幊讨?,盡管你可以精心的把所有的商業(yè)邏輯分布在不同的類(lèi)中,一旦這些類(lèi)被編譯,它們就被固化成了一個(gè)巨大的二進(jìn)制代碼。所有的類(lèi)共享同一個(gè)物理單元(通常是一個(gè)可執(zhí)行文件)、被操作系統(tǒng)認(rèn)為是同一個(gè)進(jìn)程,使用同一個(gè)地址空間以及共享相同的安全策略等等。如果多個(gè)開(kāi)發(fā)者在同一份代碼上進(jìn)行開(kāi)發(fā),他們甚至還要共享源文件。在這種情況下,修改一個(gè)類(lèi)可能會(huì)讓整個(gè)項(xiàng)目被重新鏈接,并重新進(jìn)行必要的測(cè)試,更嚴(yán)重的,還有可能要修改其他的類(lèi)。但是,在面向組件開(kāi)發(fā)中,應(yīng)用程序是由一系列可以互相交互的二進(jìn)制模塊組合而成的。
一個(gè)具體的二進(jìn)制組件可能并不能完成什么工作。有些組件是為了提供一些常規(guī)服務(wù)而編寫(xiě)的,例如通信的封裝或者文件訪(fǎng)問(wèn)組件。也有一些是為了某些特定應(yīng)用而專(zhuān)門(mén)開(kāi)發(fā)的。一個(gè)應(yīng)用程序的設(shè)計(jì)者可以通過(guò)把這些不同的組件提供的功能粘合在一起來(lái)實(shí)現(xiàn)他們需要的商業(yè)邏輯。很多面向組件的技術(shù)——例如:
COM
、
J2EE
、
CORBA
和
.NET
都為二進(jìn)制組件提供了的無(wú)縫鏈接的機(jī)制。而唯一的不同就是你需要在組件通信上花費(fèi)的力氣。
把一個(gè)二進(jìn)制應(yīng)用程序分解成不同的二進(jìn)制組件的動(dòng)機(jī)和把不同的類(lèi)放到不同的文件中是類(lèi)似的。后者使得不同的類(lèi)的開(kāi)發(fā)人員可以彼此獨(dú)立的工作,盡管即時(shí)修改了一個(gè)類(lèi)也要重新鏈接整個(gè)應(yīng)用程序,但是你只需要重新編譯被修改的部分就可以了。
但是,面向組件的開(kāi)發(fā)還是和簡(jiǎn)單軟件項(xiàng)目的管理更復(fù)雜一些。因?yàn)橐粋€(gè)面向組件的應(yīng)用程序是一個(gè)二進(jìn)制代碼塊的集合,你可以把組件當(dāng)作是
LEGO
的積木塊一樣,隨心所欲的拆裝它們。如果你需要修改一個(gè)組件的實(shí)現(xiàn),只需要修改那個(gè)組件就可以了,而組件的客戶(hù)機(jī)不需要重新編譯也不需要重新開(kāi)發(fā)。對(duì)于那些不常用到的組件,組件甚至可以在一個(gè)程序運(yùn)行的時(shí)候被更新。這些改進(jìn)和增強(qiáng)使得組件可以立即進(jìn)行更新,而所有該組件的客戶(hù)都將立即受益。無(wú)論是在同一臺(tái)機(jī)器上還是通過(guò)網(wǎng)絡(luò)遠(yuǎn)程訪(fǎng)問(wèn)。
面向組件的應(yīng)用程序也更易于擴(kuò)展。當(dāng)你需要實(shí)現(xiàn)新的需求的時(shí)候,你可以提供一個(gè)新的組件,而不去影響那些和新需求無(wú)關(guān)的組件。這些特點(diǎn)使得面向組件的開(kāi)發(fā)降低了大型軟件項(xiàng)目長(zhǎng)期維護(hù)的成本,這是一個(gè)最實(shí)際的商業(yè)問(wèn)題,也正是如此,組件技術(shù)才如此迅速的被接受。
面向組件的應(yīng)用程序通??梢愿斓捻憫?yīng)市場(chǎng),因?yàn)槟憧梢杂泻艽蟮倪x擇空間,不僅僅是自己開(kāi)發(fā)的組件,還可以從第三方廠(chǎng)商來(lái)購(gòu)買(mǎi)某些組件,從而避免了重復(fù)制造輪子。這里,
VB
就是一個(gè)很好的例子,豐富的
ActiveX
控件使得很多人在快速開(kāi)發(fā)中得到了享受。
面向?qū)ο蠛兔嫦蚪M件另一個(gè)重要的不同在于這兩種技術(shù)在繼承和重用模型上的側(cè)重點(diǎn)不同。
在面向?qū)ο蟮姆治龊驮O(shè)計(jì)中,應(yīng)用程序通常被分解成復(fù)雜的類(lèi)繼承結(jié)構(gòu)。類(lèi)的設(shè)計(jì)和要解決的商業(yè)問(wèn)題緊密結(jié)合。你可以從已有基類(lèi)繼承并特化其行為來(lái)實(shí)現(xiàn)代碼重用。問(wèn)題在于,這是一種很糟糕的重用的方法。當(dāng)你從一個(gè)基類(lèi)派生一個(gè)子類(lèi)的時(shí)候,你必須對(duì)基類(lèi)的實(shí)現(xiàn)有透徹的理解才可能保證不出問(wèn)題。例如:修改一個(gè)成員變量會(huì)不會(huì)帶來(lái)副作用?這會(huì)對(duì)基類(lèi)中的代碼有什么影響?重載基類(lèi)的方法會(huì)不會(huì)破壞那些想使用基類(lèi)版本的客戶(hù)的行為?等等。
這種形式的重用被稱(chēng)為白盒重用(White-boxreuse),因?yàn)楫?dāng)你重用的時(shí)候你就需要去了解基類(lèi)實(shí)現(xiàn)的細(xì)節(jié)。顯然。白盒重用在可擴(kuò)展性較高的大型應(yīng)用中并不經(jīng)濟(jì),也很難得到第三方Framework廠(chǎng)商的支持。
面向組件的開(kāi)發(fā)采用了黑盒重用(Black-boxreuse)的方法,它可以讓你對(duì)組件內(nèi)部全然不知的情況下來(lái)使用組件公開(kāi)的接口。這樣,你就可以遠(yuǎn)離那些復(fù)雜的繼承關(guān)系。而面向組件的開(kāi)發(fā)者也可以把更多的精力放在制定組件和客戶(hù)的溝通的接口上了。
最后,面向?qū)ο缶幊烫峁┝擞邢薜墓ぞ吆驮O(shè)計(jì)模式來(lái)處理和應(yīng)用程序運(yùn)行時(shí)相關(guān)的問(wèn)題,例如多線(xiàn)程、并發(fā)管理、安全、分布式應(yīng)用和版本控制等。面向?qū)ο蟮拈_(kāi)發(fā)者當(dāng)面對(duì)這些“公共需求”的時(shí)候,或多或少的需要自己來(lái)解決問(wèn)題。但是面向組件的開(kāi)發(fā)方式卻使你在這方面要靈活的多。
以下是CSDN社區(qū)網(wǎng)友對(duì)組件的一個(gè)討論:
1面向?qū)ο笫敲嫦蚪M件的基礎(chǔ),組件是在對(duì)象的基礎(chǔ)上加上屬性和事件
2復(fù)用粒度的大小不同。通常多個(gè)密切相關(guān)的對(duì)象組織在一起完成一個(gè)/或多特定的功能。組件有多個(gè)側(cè)面(facet),不同的使用者可能只使用其中的部分。
3級(jí)別不一樣,“面向?qū)ο蟆笔菍?duì)語(yǔ)言級(jí)別的,“組件”是對(duì)應(yīng)用級(jí)別的。組件可以由對(duì)象實(shí)體組成。
4組件由一個(gè)或若干個(gè)對(duì)象組成。對(duì)象提供可訪(fǎng)問(wèn)的接口。
5可笑,現(xiàn)在很多人把面向?qū)ο缶幊汤斫鉃槊嫦蚪M件編程,真是幼稚!
6組件是一種面向應(yīng)用的概念,對(duì)象是一種面向編程方法的概念。一般進(jìn)行組件編程都是用面向?qū)ο蟮姆椒ň幊踢M(jìn)行實(shí)現(xiàn)。組件已經(jīng)是一種能實(shí)際應(yīng)用的實(shí)例了。本人的理解,見(jiàn)笑了。
7面向?qū)ο笫窃诖a一級(jí)對(duì)數(shù)據(jù)和方法的封裝,C++,JAVA
面向組件是在二進(jìn)制代碼上的封裝,COM/COM+,CORBA
8面向組件的集成度和可重用度更高(如樓上的meking_lee所說(shuō)的),面向組件渴望一種真正的接口級(jí)的搭積木的軟件模式,目前在語(yǔ)言特性上支持這一點(diǎn)的就只有java了(當(dāng)然也許我見(jiàn)識(shí)短)。
9用C++實(shí)現(xiàn)組件,是因?yàn)闆](méi)有直接支持組件的語(yǔ)言。現(xiàn)在的組件太大了。
10
應(yīng)該說(shuō)是面向?qū)ο窈突诮M件2.CAA架構(gòu)CATIA本身是按照組件模型建立起來(lái)的,用戶(hù)可以通過(guò)開(kāi)發(fā)自己的CAA組件,對(duì)DASSAULTSYSTEMES的CATIAV5進(jìn)行擴(kuò)展;也可以把用戶(hù)自己開(kāi)發(fā)的CAA組件結(jié)合起來(lái),實(shí)現(xiàn)用戶(hù)自定義應(yīng)用。
CAA應(yīng)用的框架結(jié)構(gòu)遵從組件對(duì)象模型,有自己的框架結(jié)構(gòu)。每個(gè)應(yīng)用有至少一個(gè)框架(framework),每個(gè)框架有至少一個(gè)模塊(module)。每個(gè)框架里面有一個(gè)IdentityCard.h文件,這個(gè)文件通過(guò)宏“AddPrereqComponent(framenwork,protected)”來(lái)聲明“聲明”這個(gè)框架的一些首先必備的其他框架名稱(chēng),framework是框架名稱(chēng)。CAA的編譯器就是通過(guò)IdentityCard.h文件,來(lái)把頭文件搜索限制在首先必備框架所包含的接口中。每個(gè)模塊下面定義了一個(gè)Imakefile.mk文件,這個(gè)文件指明了這個(gè)模塊中所有文件在編譯時(shí)用到的其它模塊和一些外部庫(kù)以及為編譯器提供如何編譯的模塊必須信息,還指定在不同的操作系統(tǒng)下面編譯時(shí)的一些可能的特殊要求。CAA環(huán)境對(duì)Cnext能夠運(yùn)行的所有操作系統(tǒng)中采用同樣的編譯器,這為開(kāi)發(fā)者提供了很大的方便,因?yàn)樗麄兛梢圆恍枰涝鯓佑貌煌木幾g器和怎么寫(xiě)makefile。但是MKMK并不能做所有的事情,開(kāi)發(fā)者至少要說(shuō)明他們想要做什么。我們?cè)谧约旱脑次募杏玫狡渌K的接口,要在Imakefile.mk中進(jìn)行說(shuō)明。
程序結(jié)構(gòu)采用了COM組件模型,組件模型中有兩個(gè)常用的概念:接口(Interface)和實(shí)現(xiàn)(Implement)。接口是一個(gè)包含許多純虛函數(shù)的抽象對(duì)象,這些純虛函數(shù)指明了接口支持的方法。實(shí)現(xiàn)是一個(gè)具體定義接口中的方法的對(duì)象,一個(gè)實(shí)現(xiàn)對(duì)象必須顯式聲明它支持哪些接口,還必須定義它支持的接口中的所有抽象方法,實(shí)現(xiàn)對(duì)象可以支持一個(gè)或多個(gè)接口,而客戶(hù)應(yīng)用只能通過(guò)這些接口與實(shí)現(xiàn)對(duì)象發(fā)生聯(lián)系。
3.What'sRADE??RADE,RapidApplicationDevelopmentEnvironment,快速應(yīng)用研發(fā)環(huán)境,是一個(gè)可視化的集成開(kāi)發(fā)環(huán)境,它提供完整的編程工具組。RADE以MicrosoftVisualC++6.0為載體,開(kāi)發(fā)工具完全集成在了VC++環(huán)境中,并且提供了一個(gè)CAA框架程序編譯器,但同時(shí)也限制了VC++的部分功能??梢哉f(shuō)CATIACAA–RADE是目前所有高端CAD/CAM開(kāi)發(fā)環(huán)境中最為復(fù)雜、同時(shí)也是功能最為強(qiáng)大的一個(gè)。
CAAV5RADE包括一系列工具:TCK(ToolConfigurationKey)、MAB(多工作空間應(yīng)用生成器)、CUT(C++單元調(diào)試管理器)、MKMK(CAA編譯工具)
、CID(C++交互式面板)等,以插件的形式與MSDevVC++集成到一起。然后借助于這些工具在MSDev
環(huán)境下開(kāi)發(fā)自己的CAA組件。
TCK管理RADE環(huán)境,TCK命令是用來(lái)管理開(kāi)發(fā)工具包的安裝,用來(lái)創(chuàng)建一個(gè)工作環(huán)境。當(dāng)在WinowsNT上用CAAV5的可視化創(chuàng)建工具(以插件形式嵌入MicrosoftDeveloperStudio),tck_init
和
tck_profile
命令在打開(kāi)一個(gè)V5的工作區(qū)時(shí)被自動(dòng)調(diào)用。
MKMK(多工作區(qū)應(yīng)用編譯器)是DS(DassaultSystems)原代碼編譯工具,它構(gòu)建在平臺(tái)無(wú)關(guān)(UNIX和WindowsNT)的標(biāo)準(zhǔn)編譯器上,它支持面向組件的設(shè)計(jì)模式。MKMK提供一種統(tǒng)一的工具來(lái)編譯和連接CAA應(yīng)用而不管是用的什么編程語(yǔ)言(Fortran,C,C++,IDL,Express,CIRCE,...)。
CUT是單元調(diào)試管理器,CUT用mkodt命令來(lái)運(yùn)行傳遞給測(cè)試框架中的測(cè)試對(duì)象,通過(guò)選擇不同的命令參數(shù)來(lái)決定選擇測(cè)試一個(gè)對(duì)象或者所有對(duì)象。
CID即C++交互式面板,CID根據(jù)軟件開(kāi)發(fā)人員的需求,支持從設(shè)計(jì)、開(kāi)發(fā)到測(cè)試
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025會(huì)計(jì)基礎(chǔ)知識(shí)重點(diǎn):融資租賃合同
- 2025池塘清淤工程的施工合同
- 9 知法守法 依法維權(quán) 依法維權(quán)有途徑(說(shuō)課稿)-部編版道德與法治六年級(jí)上冊(cè)
- 21 淡水資源 說(shuō)課稿-2024-2025學(xué)年科學(xué)三年級(jí)上冊(cè)青島版
- 2025法律法規(guī)工傷員工續(xù)簽合同問(wèn)題 管理資料
- 6將相和(第一課時(shí))說(shuō)課稿-2024-2025學(xué)年五年級(jí)上冊(cè)語(yǔ)文統(tǒng)編版
- 農(nóng)村荒山承包合同范本
- 硬件維護(hù)投標(biāo)方案
- 2023二年級(jí)數(shù)學(xué)下冊(cè) 四 認(rèn)識(shí)萬(wàn)以?xún)?nèi)的數(shù)第8課時(shí) 近似數(shù)說(shuō)課稿 蘇教版001
- Unit 1 Making friends PartA Let's talk(說(shuō)課稿)-2024-2025學(xué)年人教PEP版(2024)英語(yǔ)三年級(jí)上冊(cè)
- 地理-山東省濰坊市、臨沂市2024-2025學(xué)年度2025屆高三上學(xué)期期末質(zhì)量檢測(cè)試題和答案
- 正面上手發(fā)球技術(shù) 說(shuō)課稿-2023-2024學(xué)年高一上學(xué)期體育與健康人教版必修第一冊(cè)
- 佛山市普通高中2025屆高三下學(xué)期一??荚嚁?shù)學(xué)試題含解析
- 事故隱患排查治理情況月統(tǒng)計(jì)分析表
- 永磁直流(汽車(chē))電機(jī)計(jì)算程序
- 國(guó)家電網(wǎng)招聘2025-企業(yè)文化復(fù)習(xí)試題含答案
- 頸部瘢痕攣縮畸形治療
- 貴州省貴陽(yáng)市2023-2024學(xué)年五年級(jí)上學(xué)期語(yǔ)文期末試卷(含答案)
- 醫(yī)院物業(yè)服務(wù)組織機(jī)構(gòu)及人員的配備、培訓(xùn)管理方案
- 端午做香囊課件
- 外觀(guān)判定標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論