開發(fā)過程與方法簡介_第1頁
開發(fā)過程與方法簡介_第2頁
開發(fā)過程與方法簡介_第3頁
開發(fā)過程與方法簡介_第4頁
開發(fā)過程與方法簡介_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余26頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

組建應(yīng)用接口快速應(yīng)用開發(fā)環(huán)境二 結(jié)構(gòu)的建創(chuàng)建工作空間 DeveloperStudioopen "File"andselect"OpenCAAV5Workspace",thefollowingwindowappearsinwhichyoucanselecttoopenyourworkspacewiththe"mkmk"EithermodewillgiveyouaccesstotheCodeGeneratorfeatures.Onceyouhavefilledintheworkspaceinformation,clickon"OK".Alogwindowappearswhileyourenvironmentisupdatedandtheworkspaceopened.WhenthiswindowhasdisappearedDeveloperStudioloadstheprojectfilesitstoredinyourworkspaceandyouarereadytowork.ThecommandsavailableintheCodeGeneratorareasetofwizardswhereinyouspecifyaseriesofparametersanditwillgeneratecodeforyou.Beforecreatingthecode,areportwindowappearssothatyoumayverifythatthecodegeneratedisasyouexpectit.Youmayfindthatsomeofteratedsourcefilescontaincommentedoutstatementssuchas"DONOTEDIT::THECAA2WIZARDSWILLINSERTCODEHERE".Donotmodifywhatyoufindbetweenthesecommentedlinesorthewizardswillnolongerbeabletoinsertcodeinthesourcefile.(CAAV5 DeveloperStudio,open "Project"andselect"NewFramework…"ThewizardwillthencreatethefollowingdirectoryEducationtypeframeworksaresuffixed".edu"andTestframeworksaresuffixed".tst".Thewizardappendsthesesuffixestothenameoftheframework.定義接口空間(InterfaceAninterfaceframeworkisaframeworkthatcontains(mainly)interfacesinbothC++orIDLlanguage.Thestructureofthisinterfaceisveryspecific.V5namingconventionsrequiresthattheseinterfacesbedistinguishablethroughan"Interfaces"suffix.Thereforeifyoutypein"Bird"intheframeworkname,thegeneratedframeworkwillbecalled"BirdInterfaces".Thegeneratedstructureisthefollowing:Afterthefilestructurehasbeencreated,theC++InteractiveDashboardupdatesyourDeveloperStudioprojecttotakeintoaccountthenewfilesanddirectories.IntheJavaInteractiveDashboard,youwillseethenewframeworkintheworkspacetreeview.Notethattheframeworkissetasthecurrentlyactiveproject.定義模塊 DeveloperStudio,open "Project"andselect"NewModule…"Whenyouclickon"OK"areportwindowisdisplayedtoshowyouthefilesanddirectoriesthatwillbecreated.Ifyouaccept,thefollowingfilestructurewillbecreated:NotethatthenewlycreatedmoduleissetasthecurrentlyactiveCodeGeneratorwizardsenableyoutocreatespecificV5objectsthatimplementcustomaryV5patterns.Thesecurrentlyinclude:Objectmodelerinterfaces(bothC++andObjectmodeler V5 DeveloperStudio,sourcecodeisgeneratedinthecurrentlyactivemodule.Iftheactiveprojectisnotamodule,thefollowingwarningboxwillaskyoutoselectanactivemodule.In Studio,thisisdonebyactivatingthe onthedesiredproject("SetasWhenyougeneratesourcecodeusingtheCodeGenerator,yourworkspaceisupdatedtotakeintoaccountthefilesnewlycreated.InDeveloperStudioonly,thisoftenresultsinthefollowingThisisanexpectedbehaviouranditissafetoreloadyourCAAV5C++ DeveloperStudio,open "Insert"andselect"CAAV5Class...".Itis mendedtousethiscommandratherthanusingMsDev'sownclasscreatorbecauseittakesintoaccounttheCAAV5FileTree,aswellasthestandardmacrosincludedintheCAAclasses.Thewizardwillcreateaheaderandasourcefilecomprisingastandardconstructoranddestructor,aswellasanequaloperatorandacopyconstructor.Thefollowingfilesarecreated.元件接口類(ObjectModelerInterfacescanbedefinedinC++orinIDL(interfacedefinition DeveloperStudio,open andselect"Interface...".V5namingconventionsrequirethatyourinterfacehavea3letterprefix,followedbytheletter'I'inuppercase,followedbyanythingelse,asinIDLIDLinterfacescanonlybegeneratedinsideanInterfaceframework.TheIDLradiobuttonwillbegreyedoutinanyothertypeofframework.V5namingconventionsrequirethatautomationinterfacehavea3letterprefix,followedbythelettersIAinuppercase,followedbyanythingelse.TheautomationaliaswillbegeneratedbyextractingtheXXXIAprefixfromtheinterfacename.Whenyouclickon"OK"areportwindowisdisplayedtoshowthefilesthatwillbecreated.Ifyouaccept,thefollowingfileswillbecreated(oraffected):元件實現(xiàn)類(ObjectModelerComponentimplementationsarewritteninC++.Theycannotbeincludedininterfaceframeworks...InDeveloperStudio, "Insert"andselect"Component..."EventhoughyoumaycreateanimplementationfromeitheraC++oranIDLinterface,thewizardwillnotfunctiononanpiledIDLIfyoudirectlytypeinthenameoftheinterfaceyouwishtoimplement,thecommandwillpromptyoutospecifytheheaderfilethatcontainsthedefinitionoftheinterface.Youmayalsoaskthewizardtolistalloftheavailableinterfacesinyourworkspace,orinyourprerequisiteworkspaces(thismaytakesometimeasitparsesalltheinterfacesintheworkspace).Whenyouclickon"OK"areportwindowisdisplayedtoshowyouthefilesthatwillbecreated.Ifyouaccept,thefollowingfileswillbeThepreviouscommandalsoallowsyoutoaddnewextensionstoalreadyexistingimplementations.Youdothisbycheckingtheitem"Extends"andbyspecifyingwhichobjectyouareextending.Teratedobjectsforextensionsarethesameasfor利用元件實現(xiàn)類構(gòu)造工具(ImplementationWhenyoudevelopanewimplementationorextension,youmayderivefromanotherC++classthatalreadyimplementssomeofthefunctionsoftheinterfaceyouareimplementing.Assuch,youhaveachoicebetweenoverloadingthosefunctionalitesornotredefiningthemandusingthemastheyhavebeendefinedinthebaseclass.Bydefault,theimplementationbuilderwillmakeyouwriteallthemethodsoftheinterface.Byusingthewizard,youcanchoosebetweenredefiningthosemethodsornot.(Ofcourse,ifthebaseclassimplementsnomethodfromtheinterface,usingthewizardwillnotbeofanyuse).ThewizardpushbuttonisavailableassoonasyoutypeinaclassdifferentfromCATBaseUnknownorCATIABaseObject.Thewizardwillthenscanthebaseclasstofindifitimplementsanymethodsoftheinterfaceandwilldisplaytheminalist命令類Youmaycreateseveraldifferenttypesofnewcommandsthatyoucanaddinyourworkshops: DeveloperStudio, "Insert"and Whenspecifyingthenameofaworkshop(orworkbench),thewizardwilllocatethecodeforthatworkshopandgenerateacommandheaderforyou.Ifnocommandheaderisfound,anewtypeofheaderwillbegenerated.Eventhoughyouhaveselectedthe"Includeincheck,youwillstillneedtousethe"Customize"functionalityofCATIAtoaccessthecommandfromyourpalette.3.5框類(DialogYoumaycreateinteractivelyanewdialogelementbasedontheDialogframework: DeveloperStudio, "Insert"and"CATIANotethatifyouwanttocreateadialog-basedcommand,youshouldusethe"Command..."itemofthe"CATIAResource" ofthe Whenyouselectthiscommand,ane geisinsertedinyourMsDevenvironmentwithanewandemptydialogRefertoDialogbuilderfeatures"forfull 測試實例(V5Test-Youmaycreateinteractivelyanewtestcasescriptinsideatest-dedicatedframeworkbyusing: DeveloperStudio, "Insert"andWhenyouselectthiscommand,anewtestcasescriptiscreatedinyourframework.Thistestcasecanberunusingthe"ReplayTest-Cases"commandfoundinthe"Build".ThecomponentbuildercurrentlyonlyallowsyoutogenerateonetypeofV5pattern:Workshops(orworkbenches) DeveloperStudio, "Insert"and"CATIAResource/CATIAYou selectthetypeofcomponentyouwishtoThewizardleadsyouthroughaseriesofpanelswhereinyouarepromptedforthecaracteristicsoftheobjectyouwishtocreate.Afterfillingineachpanel,youcanmoveontothenextpanelusingthewizardnavigationbar.Whenallthestepshavebeencompleted,youclickon"Finish"togeneratethecomponent.ThesearethestepstocreateaV5框詳見《框的開發(fā)方法五、支撐框架設(shè)置Asalmostallcomponents(frameworks)arebuiltuponotherscomponents,itisnecessaryToincludeatcompiletimethecorrespondingheaderToreferenceatlinktimethecorrespondinglibraries.Howeverthesourcefilesofagivencomponentmayincludealotofheaderfilesand,withouttheIdentityCardfile,wemustbrowseallthefilestoknowthenamesofincludedheaderfilesandthenfindthenamesofthecorrespondingcomponents.TheIdentityCardfilesynthesizesthoserelationshipsbetweenframeworksinordertogetquicklytheprerequisiteframeworks.Warning:TheIdentityCardfileofanyframeworkmustatleastcontainastatementtosettheSystemframeworkasaprerequisiteframeworkuptoitsprotectedpart,asfollows:ponent("System","Protected");Youmustbeawarethatoneuserhasoftennotallframeworksinhis/herownworkspace,andthatmostoftheprerequisiteframeworkshe/sheneedsarelocatedinothersworkspaces.ThankstotheIdentityCardfile(s),toolslikemkmkgainaneasywaytodetermineandthenaccesstoprerequisiteframeworks.ThefigurebelowgivesasummaryoftheuseofIdentityCardfiles.Anapplicationismadeofcomponents:BuiltornotuponotherUsingtheCAAarchitectureeachcomponentisknownasaframeworkpossiblyhavingprerequisiteframeworksPrerequisiteframeworksofagivenframeworkarespecifiedinitsIdentityCardfile.NotealsoEveryframeworkhasanIdentityCardfilewhichcanbeemptyifitdoesnotneedothercomponenttoimplementitsservices.Thisisnotshowninthefigure.OnlyframeworksthataredirectlyusedarespecifiedinanIdentityCardfile.Rememberthenotionsofpublicandprivatepartsofacomponent:youdon'tknowhowaframeworkisimplemented,soyoushouldn'tknowitsownprerequisites.EveryframeworkmusthaveanIdentityCardfile,ThisfileisstoredindirectoryIdentityCard,rightundertheframeworkrootdirect

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論