




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于模型驅(qū)動(dòng)的安全系統(tǒng)開(kāi)發(fā)
第三章:模型驅(qū)動(dòng)開(kāi)發(fā)概述主講:徐田華
mail:thxu@
基于模型驅(qū)動(dòng)的安全系統(tǒng)開(kāi)發(fā)內(nèi)容模型及其意義模型驅(qū)動(dòng)的開(kāi)發(fā)及其意圖模型驅(qū)動(dòng)開(kāi)發(fā)的定義和關(guān)鍵問(wèn)題模型驅(qū)動(dòng)開(kāi)發(fā)授課內(nèi)容內(nèi)容模型及其意義3什么是模型?模型是對(duì)現(xiàn)實(shí)世界的一個(gè)簡(jiǎn)化3什么是模型?模型是對(duì)現(xiàn)實(shí)世界的一個(gè)簡(jiǎn)化4什么是模型?4什么是模型?5什么是模型?5什么是模型?6為什么要有模型?建??梢赃_(dá)到以下四個(gè)目的:把目前正在構(gòu)建的系統(tǒng)可視化描述系統(tǒng)的結(jié)構(gòu)和行為為構(gòu)建系統(tǒng)提供模板和指導(dǎo)記錄在開(kāi)發(fā)過(guò)程所形成的設(shè)計(jì)決策管理系統(tǒng)復(fù)雜度復(fù)雜的系統(tǒng)很難被認(rèn)識(shí)和理解,建??梢院芎玫墓芾磉@種復(fù)雜度幫助團(tuán)隊(duì)成員之間的溝通模型可以幫助開(kāi)發(fā)人員之間相互理解對(duì)方的設(shè)計(jì)意圖6為什么要有模型?建模可以達(dá)到以下四個(gè)目的:7什么是MDD?MDD是一種抽象的軟件開(kāi)發(fā)設(shè)計(jì)流程,主要包括以下特點(diǎn):抽象(提高層次)、封裝和信息隱藏通過(guò)模型的多個(gè)層次(橫向和縱向)來(lái)隱藏和展現(xiàn)信息,從而使模型更容易被理解以模型為中心開(kāi)發(fā)過(guò)程始終以模型為工作中心不依賴于任何一種特定的實(shí)現(xiàn)模型獨(dú)立于運(yùn)行平臺(tái)的實(shí)現(xiàn)細(xì)節(jié),這部份往往是最容易發(fā)生變化的7什么是MDD?MDD是一種抽象的軟件開(kāi)發(fā)設(shè)計(jì)流程,主要8軟件開(kāi)發(fā)方法的演化(抽象)純粹基于模型的開(kāi)發(fā)Model只有模型什么是模型?Code只有代碼代碼就是模型ModelCode代碼可視化visualize模型就是代碼ModelCode以模型為中心generate抽象和自動(dòng)化程度同步代碼和模型ModelCode雙向工程synchronize軟件開(kāi)發(fā)
發(fā)展方向軟件開(kāi)發(fā)
實(shí)踐現(xiàn)狀8軟件開(kāi)發(fā)方法的演化(抽象)純粹基于模型的開(kāi)發(fā)Model只有9什么是MDD?MDD是一種抽象的軟件開(kāi)發(fā)設(shè)計(jì)流程,主要包括以下特點(diǎn):雙向工程新應(yīng)用開(kāi)發(fā)-通過(guò)正向工程來(lái)生成代碼針對(duì)遺留系統(tǒng)的開(kāi)發(fā)–通過(guò)逆向工程來(lái)從代碼中抽象出模型應(yīng)用系統(tǒng)的自動(dòng)生成能夠從模型生成完全可運(yùn)行的應(yīng)用系統(tǒng)我們可以把MDD看作是一種使用模型來(lái)進(jìn)行編程的開(kāi)發(fā)技術(shù)9什么是MDD?MDD是一種抽象的軟件開(kāi)發(fā)設(shè)計(jì)流程,主要10什么是MDA?MDA–ModelDrivenArchitectureMDA是OMG(ObjectManagementGroup)制定的一種MDD實(shí)現(xiàn)MDA包括了一組實(shí)現(xiàn)MDD方法的標(biāo)準(zhǔn)和工具集合MDA定義了關(guān)于MDD軟件開(kāi)發(fā)方法的一種概念框架10什么是MDA?MDA–ModelDrivenA為什么需要MDAOMG提出的MDA方法的三個(gè)主要目標(biāo):輕便性、互操性和可重用性。具體解決以下問(wèn)題:扭轉(zhuǎn)以代碼為中心的軟件開(kāi)發(fā)方法;解決不同平臺(tái),不同技術(shù)路線之間的集成和互操作問(wèn)題;便于適應(yīng)將來(lái)出現(xiàn)的新技術(shù)和新平臺(tái);為什么需要MDAOMG提出的MDA方法的三個(gè)主要目標(biāo):輕便性
Inconsistency
betweendocumentandcode
Difficulty
maintainability,poor
adaptation
ofnewtechnology
Poorin
interoperationDeveloperlike?IterativeprocessCodedrivendevelopmentrequirementSystemanalysisdesigncodeAcceptanceTestdocumentDocument,diagramcodecodeDocument,diagramInconsistencybetweendocumeCodeDrivenDevelopment傳統(tǒng)軟件開(kāi)發(fā)的問(wèn)題隨著軟件系統(tǒng)的復(fù)雜程度越來(lái)越高,傳統(tǒng)的軟件開(kāi)發(fā)開(kāi)始面臨有以下幾個(gè)問(wèn)題疲于應(yīng)付需求的不斷變更;文檔迅速地失效、維護(hù)困難;項(xiàng)目二期開(kāi)發(fā)生產(chǎn)力無(wú)法提升。每當(dāng)一種新的技術(shù)產(chǎn)生的時(shí)候,必須做許多重復(fù)的工作。系統(tǒng)永遠(yuǎn)不可能只用一種技術(shù)實(shí)現(xiàn),且不跟其它系統(tǒng)交互。不斷變更的需求同樣也給系統(tǒng)帶來(lái)困難。下面將分析在軟件開(kāi)發(fā)過(guò)程中遇到的問(wèn)題,隨后會(huì)介紹是如何來(lái)解決這些問(wèn)題的CodeDrivenDevelopment傳統(tǒng)軟件開(kāi)發(fā)的publicinterfaceBookextendsEObject{StringgetTitle();voidsetTitle(Stringvalue);intgetPages();voidsetPages(intvalue);}publicclassBookImplextendsEObjectImplimplementsBook{...protectedstaticfinalintPAGES_EDEFAULT=0;protectedintpages=PAGES_EDEFAULT;publicintgetPages(){returnpages;}publicvoidsetPages(intnewPages){intoldPages=pages;pages=newPages;if(eNotificationRequired())eNotify(newENotificationImpl(this,Notification.SET,...,oldPages,pages));}...}CodeDrivenDevelopmentpublicinterfaceBookextends1.生產(chǎn)力和維護(hù)性問(wèn)題當(dāng)今的軟件開(kāi)發(fā)過(guò)程是以概要設(shè)計(jì)和編碼為驅(qū)動(dòng)。無(wú)論是采用增量開(kāi)發(fā)還是迭代開(kāi)發(fā),或者是傳統(tǒng)的瀑布式開(kāi)發(fā)途徑,文檔和相關(guān)的設(shè)計(jì)圖表都是在前三個(gè)階段中產(chǎn)生。需求分析往往使用文本和圖的方式來(lái)描述,其中的圖經(jīng)常采用圖,如用例圖、類圖、交互圖、活動(dòng)圖等。設(shè)計(jì)過(guò)程會(huì)產(chǎn)生大量的設(shè)計(jì)文檔,但往往僅存在于文檔中。CodeDrivenDevelopment1.生產(chǎn)力和維護(hù)性問(wèn)題CodeDrivenDevelo當(dāng)編碼開(kāi)始的時(shí)候,前三個(gè)階段產(chǎn)生的文檔和相關(guān)圖片就迅速失去了它們的價(jià)值。隨著編碼階段的繼續(xù)進(jìn)行,圖片和代碼之間的關(guān)聯(lián)逐漸減弱甚至消失,它們不再是對(duì)代碼的精確描述,或多或少地成為了無(wú)關(guān)的圖片。隨著時(shí)間的推移,系統(tǒng)不斷地被修改,文檔、設(shè)計(jì)圖表和代碼之間的距離就越來(lái)越疏遠(yuǎn)。一般來(lái)說(shuō)僅僅是修改代碼,因?yàn)樾薷奈臋n和設(shè)計(jì)圖表所要花費(fèi)的代價(jià)是令人無(wú)法容忍的。同時(shí),即使修改了圖和文檔,這樣的工作是否有效也值得懷疑,因?yàn)檫€會(huì)不斷地修改代碼。CodeDrivenDevelopment當(dāng)編碼開(kāi)始的時(shí)候,前三個(gè)階段產(chǎn)生的文檔和相關(guān)圖片就迅速失去了CodeDrivenDevelopment當(dāng)一個(gè)團(tuán)隊(duì)初始開(kāi)發(fā)一個(gè)系統(tǒng)的時(shí)候,保存在它們大腦中的設(shè)計(jì)思想足以使它們理解這個(gè)系統(tǒng)。問(wèn)題是當(dāng)?shù)谝话姘l(fā)布之后,團(tuán)隊(duì)可能會(huì)解散,其它來(lái)維護(hù)這個(gè)系統(tǒng)的人可能是一個(gè)新人,那么它就只有代碼和測(cè)試結(jié)果,這就使得系統(tǒng)維護(hù)極其困難。如果一個(gè)系統(tǒng)的代碼多達(dá)萬(wàn)行,而缺少原始的設(shè)計(jì)、分析文檔的話,將是非常難以維護(hù)的。所以,要么在前三個(gè)階段花費(fèi)時(shí)間,寫(xiě)出詳細(xì)設(shè)計(jì)文檔和設(shè)計(jì)圖表或者在維護(hù)階段花費(fèi)時(shí)間,來(lái)發(fā)現(xiàn)系統(tǒng)是如何工作的。這些方式都是不能直接產(chǎn)出代碼的,也是花費(fèi)比較高昂的。許多開(kāi)發(fā)人員認(rèn)為直接書(shū)寫(xiě)代碼才是有產(chǎn)出的,設(shè)計(jì)模型和文檔則不能。但是,在一個(gè)程序的項(xiàng)目團(tuán)隊(duì)中,這些任務(wù)都是必須被完成的。文檔寫(xiě)到什么粒度,既能很好地指導(dǎo)編碼和測(cè)試,又能不降低生產(chǎn)率一直是困擾開(kāi)發(fā)人員的一個(gè)難題。CodeDrivenDevelopment當(dāng)一個(gè)團(tuán)隊(duì)初始軟件工業(yè)與傳統(tǒng)工業(yè)相比,有一個(gè)特定就是其發(fā)展速度非常快。每年都會(huì)出現(xiàn)各種新技術(shù)并迅速流行起來(lái),例如Java,linux,XML,HTML,SOAP,UML,J2EE,.NET,JSP,ASP,Flash,WebService等等。許多公司必須跟從這種改變,這是因?yàn)橛脩籼岢鍪褂眯录夹g(shù)的需求新技術(shù)能夠真正解決一些問(wèn)題例如,XML解決異構(gòu)系統(tǒng)間的數(shù)據(jù)交換軟件供應(yīng)商停止對(duì)舊的技術(shù)提供支持CodeDrivenDevelopment軟件工業(yè)與傳統(tǒng)工業(yè)相比,有一個(gè)特定就是其發(fā)展速度非??臁C磕闏odeDrivenDevelopmentCodeDrivenDevelopmentCodeDrivenDevelopment新技術(shù)能夠使得一些公司獲得一些切實(shí)的好處,但是人們必須面臨的困境就是,他們必須快速跳躍前進(jìn),而且必須忍受前期投資失去價(jià)值的現(xiàn)實(shí),這無(wú)疑是非常痛苦的。情況更加復(fù)雜的是,新技術(shù)本身也在發(fā)生變化。它們也會(huì)不斷推出不同的版本,而且并不能保證能完全做到向后兼容。軟件供應(yīng)商通常也只是對(duì)最近版本提供支持。現(xiàn)存的一些系統(tǒng)要么提供接口與新技術(shù)開(kāi)發(fā)的系統(tǒng)連接,要么轉(zhuǎn)向新技術(shù)。那些仍然使用舊技術(shù)的遺產(chǎn)系統(tǒng)必然需要和使用新技術(shù)開(kāi)發(fā)的系統(tǒng)進(jìn)行互連。如果系統(tǒng)和某種技術(shù)緊密綁定,那么注定這個(gè)系統(tǒng)在跟隨技術(shù)發(fā)展的道路上是步履沉重的,通過(guò)模型驅(qū)動(dòng)開(kāi)發(fā)的方式可以使得系統(tǒng)足夠地技術(shù)中立性,能夠跟上技術(shù)前進(jìn)的步伐。CodeDrivenDevelopment新技術(shù)能夠使得CodeDrivenDevelopment3.互操作性問(wèn)題軟件系統(tǒng)很少能夠孤立地存在,大多數(shù)都需要和其它系統(tǒng)進(jìn)行通信。一個(gè)典型的例子就是,很多公司在他們的現(xiàn)存系統(tǒng)上構(gòu)建了基于Web的新系統(tǒng);基于HTML,ASP,JSP等的Web應(yīng)用程序需要從現(xiàn)存的后端系統(tǒng)中獲取信息等。系統(tǒng)往往要使用多種技術(shù)來(lái)實(shí)現(xiàn),他們之間也存在互操作的問(wèn)題。現(xiàn)在往往在系統(tǒng)中使用組件,不同的組件使用各自最佳的技術(shù)來(lái)實(shí)現(xiàn),他們之間也需要互操作。不同的工具對(duì)于元數(shù)據(jù)的管理均有自己的策略,這就給元數(shù)據(jù)的共享形成了障礙,也降低了不同軟件的互操作性。通過(guò)模型驅(qū)動(dòng)開(kāi)發(fā)的能夠應(yīng)對(duì)這些互操作的需求。CodeDrivenDevelopment3.互操作性CodeDrivenDevelopment4。文檔問(wèn)題許多的開(kāi)發(fā)人員總是認(rèn)為編碼才是他們的主要任務(wù),文檔可用性的支持可以延后。最終寫(xiě)文檔成了強(qiáng)制的任務(wù),而不是出于激勵(lì)的目的,不是出于自愿的工作當(dāng)然不能做好。這個(gè)是文檔為什么質(zhì)量總是不夠高的原因之一。能夠檢查文檔質(zhì)量的也只能是開(kāi)發(fā)團(tuán)隊(duì)的人員,而他們自己卻不喜歡寫(xiě)文檔的工作,這也是文檔總是不能得到更新的原因。每次代碼改變之后必須手工地在一堆文檔中找出設(shè)計(jì)中需要更改的地方,這是非常煩瑣的工作。其實(shí)開(kāi)發(fā)人員的這種想法是錯(cuò)誤的,開(kāi)發(fā)一個(gè)容易修改和便于將來(lái)維護(hù)的系統(tǒng)可以大大提高軟件的質(zhì)量。如何能夠保持文檔和代碼的同步,而又不額外增加很多工作量是個(gè)難以解決的問(wèn)題CodeDrivenDevelopment4。文檔問(wèn)題RequirementSystemanalysisDetailDesignCodeDeploymentacceptTestRequirementdocumentPIMPSMcodecodePIMdrivendevelopment
Flexible
implementation:platformchanges
Simplerandmoreeffective
maintenance
Increased
productivity:Automation;Increasesreuse;Reductionofrework
Updated
documentation
ofthesystem.
Ensurescustomers,designersandarchitects
understanding.MDAabstractDesignRefinementRequirementSystemanalysisDetaModelDrivenDevelopmentComputationIndependentModelPlatformIndependentModelPlatformSpecificModelCodegenerationModelingLayerCIMPIMPSMCGModelDrivenDevelopmentComputModelDrivenDevelopmentMDA是以模型為中心的軟件開(kāi)發(fā)模式,將模型分為三類:平臺(tái)獨(dú)立模型(PIM)、平臺(tái)相關(guān)模型(PSM)和代碼。傳統(tǒng)的開(kāi)發(fā)過(guò)程也可能分了這三個(gè)部分,甚至有些開(kāi)發(fā)工具也實(shí)現(xiàn)了到PSM到代碼的自動(dòng)變換,但MDA的創(chuàng)新之處在于把PIM到PSM的變換也自動(dòng)化了,這樣開(kāi)發(fā)者只需要專注于建立平臺(tái)獨(dú)立的模型,PSM和代碼讓MDA工具自動(dòng)生成就可以了。從兩個(gè)方面提升了開(kāi)發(fā)效率首先,PIM開(kāi)發(fā)者的工作量減少了,因?yàn)樗辉傩枰O(shè)計(jì)和編寫(xiě)平臺(tái)相關(guān)的細(xì)節(jié),這些細(xì)節(jié)己經(jīng)由定義變換的人考慮好了。在PSM和代碼層次,需要寫(xiě)的代碼也少了很多,因?yàn)榇罅康拇a已經(jīng)從自動(dòng)生成了。ModelDrivenDevelopmentMDA是以模其次,開(kāi)發(fā)者可以把注意力轉(zhuǎn)移到PIM,這樣就可以更關(guān)注如何解決所面對(duì)的業(yè)務(wù)問(wèn)題。這樣一來(lái),系統(tǒng)就會(huì)更好地吻合用戶的需求。用戶獲得的功能增多了,需要等待的時(shí)間卻減少了。在MDA中,可移植性是通過(guò)把開(kāi)發(fā)焦點(diǎn)轉(zhuǎn)移到PIM而獲得的。因?yàn)镻IM是跨平臺(tái)的,同一個(gè)PIM可以被自動(dòng)變換成多個(gè)不同平臺(tái)上的PSM,在PIM層次指定的所有東西都是完全可移植的。ModelDrivenDevelopment其次,開(kāi)發(fā)者可以把注意力轉(zhuǎn)移到PIM,這樣就可以更關(guān)注如何解ModelDrivenDevelopmet為了解決互操作性問(wèn)題,MDA不僅生成PSM,還生成PSM之間的橋接器。如果能夠把一個(gè)PIM變換為兩個(gè)不同平臺(tái)上的PSM,那么也就有了橋接兩個(gè)PSM的全部信息。開(kāi)發(fā)者不僅知道一個(gè)PSM中的每個(gè)元素是從中的哪個(gè)PIM元素變換而來(lái),而且還知道PIM中的這個(gè)元素對(duì)應(yīng)于PSM中的哪個(gè)元素(traceability)。因此就可以推斷出兩個(gè)PIM中元素的對(duì)應(yīng)關(guān)系。ModelDrivenDevelopmet為了解決互操作OMG所定義的MDA模型抽象級(jí)別計(jì)算無(wú)關(guān)模型CIM(ComputationIndependentModel):溝通domainexpert,systemrequirementexpertofdesignandimplementation平臺(tái)無(wú)關(guān)模型PIM(PlatformIndependentModel)平臺(tái)相關(guān)模型PSM(PlatformSpecificModel)OMG所定義的MDA模型抽象級(jí)別計(jì)算無(wú)關(guān)模型計(jì)算無(wú)關(guān)模型CIM僅使用應(yīng)用領(lǐng)域的概念和術(shù)語(yǔ)在模型中不包括與任何計(jì)算平臺(tái)相關(guān)的內(nèi)容ref.TransformationFromCIMtoPIMUsingPatternsandArchetypes.pdf計(jì)算無(wú)關(guān)模型CIM僅使用應(yīng)用領(lǐng)域的概念和術(shù)語(yǔ)ref.Tr計(jì)算無(wú)關(guān)模型CIM計(jì)算無(wú)關(guān)模型CIM計(jì)算無(wú)關(guān)模型CIM計(jì)算無(wú)關(guān)模型CIM計(jì)算無(wú)關(guān)模型CIM計(jì)算無(wú)關(guān)模型CIM平臺(tái)無(wú)關(guān)模型(PIM)比CIM要更具體一些更接近于實(shí)現(xiàn)但并不依賴于特定的運(yùn)行平臺(tái)ref.FromaUMLPlatformIndependentComponentModeltoPlatformSpecificComponentModels.pdf平臺(tái)無(wú)關(guān)模型(PIM)比CIM要更具體一些ref.F平臺(tái)無(wú)關(guān)模型(PIM)平臺(tái)無(wú)關(guān)模型(PIM)平臺(tái)無(wú)關(guān)模型(PIM)平臺(tái)無(wú)關(guān)模型(PIM)平臺(tái)相關(guān)模型(PSM)比PIM更具體一些更接近于具體實(shí)現(xiàn)模型中也包含了特定運(yùn)行平臺(tái)的信息平臺(tái)相關(guān)模型(PSM)比PIM更具體一些OMG-MDA模型驅(qū)動(dòng)國(guó)際組織和相關(guān)標(biāo)準(zhǔn)OMG-MDA模型驅(qū)動(dòng)國(guó)際組織和相關(guān)標(biāo)準(zhǔn)MDA-OMG模型驅(qū)動(dòng)國(guó)際組織和相關(guān)標(biāo)準(zhǔn)MDA-OMG模型驅(qū)動(dòng)國(guó)際組織和相關(guān)標(biāo)準(zhǔn)OMG-MDA模型驅(qū)動(dòng)國(guó)際組織和相關(guān)標(biāo)準(zhǔn)OMG-MDA模型驅(qū)動(dòng)國(guó)際組織和相關(guān)標(biāo)準(zhǔn)Notetheindustryverticals…MDAisnotintendedtobeageneralpurposemodel-to-codesolution.TheMDALogoCWM(CommonWarehouseMetamodel公共倉(cāng)庫(kù)元模型)是OMG組織在數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)中定義了一套完整的元模型體系結(jié)構(gòu),用于數(shù)據(jù)倉(cāng)庫(kù)構(gòu)建和應(yīng)用的元數(shù)據(jù)建模。Notetheindustryverticals…MMDA的核心MDA的核心概念均是OMG的一系列標(biāo)準(zhǔn):統(tǒng)一建模語(yǔ)言UML,元對(duì)象設(shè)施MOF(metaobjectFacility),XML元數(shù)據(jù)交換XMI(XMLmetadataInterchange),公共數(shù)據(jù)倉(cāng)庫(kù)元模型CWM(CommonWarehousemetamodel)。MDA的各種核心標(biāo)準(zhǔn)組成了創(chuàng)建模型驅(qū)動(dòng)的一致性系統(tǒng)綱要的基礎(chǔ),這個(gè)系統(tǒng)綱要完成了授權(quán)、發(fā)布和管理模型。MDA的核心MDA的核心概念均是OMG的一系列標(biāo)準(zhǔn):統(tǒng)一建模MDAisnotasinglespecification,butacollectionofrelatedOMGspecifications:UnifiedModelingLanguage(UML?)2.0InfrastructureSuperstructureObjectConstraintLanguage(OCL)DiagramInterchangeProfilesMeta-ObjectFacility(MOF)XMLMeta-DataInterchange(XMI)CommonWarehouseMeta-model(CWM)QueryViewTransformation(QVT)WhatComprisesMDA?MDAisnotasinglespecificatMDA的核心MDA的核心UML
自從UML1.3以后,UML規(guī)格書(shū)的主要結(jié)構(gòu)一直沿用至今,主要包含四份說(shuō)明文件,分別為:
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 品牌窗戶安裝合同范本
- 農(nóng)村建筑工程承包合同書(shū)范本
- 住房裝修合同范例
- 借水合同范本
- 春節(jié)新聞報(bào)道研討
- 合作買(mǎi)賣(mài)合同范本
- 國(guó)貿(mào)實(shí)務(wù)合同范本
- 體育運(yùn)營(yíng)合同范本
- 商品進(jìn)銷合同范本
- 商洛房屋出售合同范本
- 大學(xué)二級(jí)學(xué)院突發(fā)事件應(yīng)急預(yù)案
- 水利工程現(xiàn)場(chǎng)簽證單(范本)
- 《綠色建筑評(píng)價(jià)標(biāo)準(zhǔn)》解讀
- 物料吊籠安全技術(shù)標(biāo)準(zhǔn)
- 《幼兒園課程》試題庫(kù)及答案2021
- 鍋爐房風(fēng)險(xiǎn)管控措施告知牌
- 苔花如米小“艷過(guò)”牡丹開(kāi)——名著導(dǎo)讀之《簡(jiǎn)愛(ài)》
- 《西方服裝發(fā)展史》PPT課件(完整版)
- 《食管裂孔疝》PPT課件(完整版)
- 家庭醫(yī)生工作室和家庭醫(yī)生服務(wù)點(diǎn)建設(shè)指南
- 魯班尺和丁蘭尺速查表
評(píng)論
0/150
提交評(píng)論