版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
OOA、OOD和UML面向?qū)ο蠹夹g(shù)的開發(fā)實踐北京理工大學(xué)信息學(xué)院計算機(jī)科學(xué)系金旭亮2021/7/311主要內(nèi)容2021/7/312OOA、OOD與UML基礎(chǔ)Rose如何介入軟件開發(fā)的全過程案例:編寫一個自己的簡化版WinZip軟件開發(fā)的哲學(xué)思考待研究的課題第一部分2021/7/313OOA與OOD基礎(chǔ)OOA2021/7/314Object-Oriented
Analysis(OOA):面向?qū)ο蟮姆治鯫OA的側(cè)重點是業(yè)務(wù)領(lǐng)域分析,與軟件所要應(yīng)用的行業(yè)領(lǐng)域相關(guān),而與軟件技術(shù)關(guān)系不大,需要由領(lǐng)域?qū)<疫M(jìn)行。這一部分的工作被稱為“需求分析”。OOA的成果2021/7/315業(yè)務(wù)領(lǐng)域用例圖活動圖協(xié)作圖大量的業(yè)務(wù)文檔資料OODObject-orienteddesign
(OOD)用面向?qū)ο蟮姆椒檎鎸嵤澜缃⒁粋€計算機(jī)中的虛擬模型2021/7/316OOD的地位2021/7/317OOD的主要任務(wù)是跨越業(yè)務(wù)領(lǐng)域模型與可實際運行的軟件系統(tǒng)之間的鴻溝。OOD的難度是非常大的,負(fù)責(zé)OOD工作的人被稱為系統(tǒng)架構(gòu)設(shè)計師系統(tǒng)架構(gòu)設(shè)計師的任務(wù)2021/7/318確定系統(tǒng)的總體框架---大多采用已有的領(lǐng)域框架正確理解需求分析得出的領(lǐng)域模型,用面向?qū)ο蟮乃枷朐O(shè)計出軟件體系結(jié)構(gòu)---系統(tǒng)概要設(shè)計分析現(xiàn)實的可獲取的技術(shù)資源,分解出軟件的各個組件,安排好開發(fā)任務(wù)流程---系統(tǒng)詳細(xì)設(shè)計OOD的成果2021/7/319系統(tǒng)中有多少個類?系統(tǒng)中這些類間有什么關(guān)系(系統(tǒng)靜態(tài)特性)?系統(tǒng)中這些類生成的對象如何協(xié)作來完成工作(系統(tǒng)動態(tài)特性)?系統(tǒng)中如何管理這些類和對象?OOP2021/7/3110Object-oriented
Program
(OOP)用一種面向?qū)ο蟮恼Z言來實現(xiàn)OOD完成的系統(tǒng)設(shè)計流行的面向?qū)ο笳Z言Java、C++、ObjectPascal、C#、……關(guān)于OOP2021/7/3111用面向?qū)ο蟮恼Z言編程不是OOP!OOP最重要的特征是面向?qū)ο罄碚摰膹V泛應(yīng)用OOP的成果是可運行的實際系統(tǒng)OOP中摻雜著OOD,OOP與OOD你中有我,我中有你,OOP是具體的OOD,二者的區(qū)別就在于應(yīng)用范圍的不同。OOA、OOD、OOP與真實世界2021/7/3112面向?qū)ο罄碚摰脑僬J(rèn)識封裝封裝體現(xiàn)了數(shù)據(jù)信息的隱藏,從而使不同模塊的信息互不影響,這是
OO的一大優(yōu)點,因為它從類這一程序基本單位開始就支持信息隱藏。2021/7/3113面向?qū)ο罄碚摰脑僬J(rèn)識繼承相對于結(jié)構(gòu)化編程中的模塊重用,面向?qū)ο笾械睦^承體系顯得更靈活,對代碼的控制手段更多,從而推動了代碼復(fù)用的程度,但卻加大了學(xué)習(xí)掌握的難度。2021/7/3114面向?qū)ο罄碚摰脑僬J(rèn)識2021/7/3115多態(tài)的特點:所有可以發(fā)給baseclass對象的消息,也都同樣可以發(fā)給derivedclass。這是了解面向?qū)ο笳嫠璧年P(guān)鍵之一。C++中的面向?qū)ο筇匦?021/7/3116四種編程風(fēng)范:結(jié)構(gòu)化編程、基于對象、面向?qū)ο蟆⒎盒途幊藽程序員易犯的毛?。涸贑++中寫C程序。軟件源代碼復(fù)用的方式2021/7/3117組合(composition)與聚合(aggregation)繼承(inherit)其基本思想是以現(xiàn)有的類為基礎(chǔ)創(chuàng)建新的類STL2021/7/3118Standard
Template
Library,標(biāo)準(zhǔn)模板庫STL是容器,算法和其他一些組件的集合泛型編程在OOD中的應(yīng)用2021/7/3119一種獨特的平面型編程風(fēng)范,大量使用C++的模板技巧典型案例:STL在標(biāo)準(zhǔn)的OOD設(shè)計方案中引入泛型編程技術(shù),可以起到減少類數(shù)目的作用泛型技術(shù)可以看成是C++類的“合并同類項”。統(tǒng)一建模語言UML2021/7/3120UML圖形化的建模語言開發(fā)者用來為面向?qū)ο笙到y(tǒng)建立模型具有靈活性與可擴(kuò)展性統(tǒng)一軟件過程RUP2021/7/3121三大特點:用例驅(qū)動、迭代開發(fā)和增量開發(fā)OOAD的強(qiáng)大工具---ROSE2021/7/3122ROSE是采用UML進(jìn)行軟件系統(tǒng)設(shè)計的一個CASE工具,還有其他工具比如
Visio,JBuilder7等。ROSE支持雙向工程正向:UML模型軟件代碼框架逆向:軟件代碼UML模型使用ROSE可以保證源代碼與系統(tǒng)模型的一致性,這在軟件開發(fā)過程中是非常有用的ROSE對軟件開發(fā)全過程的參與4+1視圖LogicalViewImplementationViewProgrammersSoftwaremanagementProcessViewSystem
IntegratorsPerformanceScalabilityThroughputDeploymentViewSystemEngineeringSystem
topologyDelivery,
installationcommunicationUse-Case2021/7/3123ViewAnalysts/DesignersStructureEnd-userFunctionality用ROSE表達(dá)系統(tǒng)功能2021/7/3124用ROSE表達(dá)軟件的靜態(tài)結(jié)構(gòu)類圖Class
Diagram:表明了一個軟件中的各個類之間的關(guān)系2021/7/3125用ROSE表達(dá)軟件的靜態(tài)結(jié)構(gòu)2021/7/3126用ROSE表達(dá)軟件的靜態(tài)結(jié)構(gòu)2021/7/3127用ROSE表達(dá)軟件的靜態(tài)結(jié)構(gòu)2021/7/3128用ROSE表達(dá)軟件的靜態(tài)結(jié)構(gòu)2021/7/3129小結(jié):用Rose來描述一個軟件的靜態(tài)結(jié)構(gòu),首先應(yīng)將整個系統(tǒng)劃分為若干子系統(tǒng)或幾個組成部分,每個組成部分以一個包來表示。接著,需要設(shè)計具體的類,并用各種關(guān)聯(lián)符號表達(dá)出類間的關(guān)系,注意,每個類都必須歸屬于某一個包,這樣才便于查找某個類用組件圖描述軟件組件一般用組件圖來生成代碼2021/7/3130用ROSE表達(dá)軟件的動態(tài)特性1:PerformResponsibility消息:Client:Supplier調(diào)用周期說明……反身消息對象生命線1.1:2021/7/3131PerformAnotherResponsibility序列圖客戶對象
供應(yīng)者對象t序列圖用于表達(dá)對象之間是如何發(fā)送消息,何時
new一個對象,何時delete它,非常適合表達(dá)一種代碼流程。用ROSE表達(dá)軟件的動態(tài)特性1:
PerformResponsibilityClient
ObjectSupplier
ObjectLink:Client2021/7/3132:Supplier協(xié)作圖Message協(xié)作圖比較適合表達(dá)類之間的依賴關(guān)聯(lián)用ROSE表達(dá)軟件的動態(tài)特性狀態(tài)圖2021/7/3133當(dāng)系統(tǒng)可以明顯地劃分為幾個不同狀態(tài)時,狀態(tài)圖可以大顯身手,最明顯的是ADO
記錄集的狀態(tài)轉(zhuǎn)換例如:需要給水分子的三種物理狀態(tài)建模用ROSE表達(dá)軟件的動態(tài)特性活動圖活動圖最適合表達(dá)出一種處理流程2021/7/3134用ROSE表達(dá)軟件的動態(tài)特性2021/7/3135小結(jié):所有圖的最根本目的是要對系統(tǒng)運行過程中的各個對象之間的關(guān)系作出確定性的唯一性的描述,從而保證所有開發(fā)人員都能對系統(tǒng)有一個統(tǒng)一的認(rèn)識。一般在確定了軟件的靜態(tài)結(jié)構(gòu)之后才進(jìn)行描述系統(tǒng)的動態(tài)特性在任何情況下,保證ROSE模型與實際代碼的一致都是至關(guān)重要的!要根據(jù)實際情況選擇一種合適的圖來表達(dá)系統(tǒng),不要強(qiáng)行要求用上所有類型的圖,牢記:我們的目的是為了交流!參考資料2021/7/3136參考資料2021/7/3137參考資料2021/7/3138參考資料2021/7/3139參考資料2021/7/3140參考資料2021/7/3141參考資料2021/7/3142案例研究一再造一個WinZip麻雀雖小,五臟俱全2021/7/3143緣起:2021/7/3144用一個規(guī)模小的工具軟件來說明OOD的實際應(yīng)用整個軟件完成周期:四天開發(fā)過程2021/7/3145形成軟件總體想法:5分鐘形成軟件技術(shù)想法:5分鐘實驗技術(shù)想法:1天設(shè)計系統(tǒng)詳細(xì)設(shè)計方案:1天正式編碼和測試:半天感觸:只要有技術(shù)積累,再加上合理的OOD,開發(fā)一個軟件會成為一種很有成就感的創(chuàng)作!基于組件的用戶界面設(shè)計標(biāo)準(zhǔn)的分層體系結(jié)構(gòu):用戶界面類系統(tǒng)外部功能類系統(tǒng)底層基本功能類2021/7/3146功能設(shè)想2021/7/3147技術(shù)方案考慮2021/7/3148采用C++流技術(shù)采用Borland
C++
Builder開發(fā)BCB
vs
VC軟件的工作原理(一)2021/7/3149要編寫一個軟件,首先要知道人是如何完成某項工作的;接著,必須分析如何用計算機(jī)來完成這
個工作,其結(jié)果是形成一個計算機(jī)算法,這要求有相關(guān)領(lǐng)域的理論知識軟件的工作原理(二)計算機(jī)中文件的基本類型2021/7/3150軟件的工作原理(三)計算機(jī)中文件的基本類型2021/7/3151軟件的工作原理(四)考慮軟件的內(nèi)部總體數(shù)據(jù)處理流程2021/7/3152設(shè)計過程(一)---資源選擇2021/7/3153選擇可以復(fù)用的代碼資源:C函數(shù)庫:用fopen()、fclose()等打開和關(guān)閉文件,然后,直接在內(nèi)存中對字節(jié)流進(jìn)行處理STL:用標(biāo)準(zhǔn)模板庫(STL)中的iostream類VCL:用TStream類設(shè)計過程(二)---接口設(shè)計設(shè)計基本的流操作類接口請參看源代碼文件:
FileStreamOpt.hFileStreamOpt.cpp2021/7/3154設(shè)計過程(三)---利用多態(tài)VCL的TStream類繼承樹圖注意:接口設(shè)計中采用了TStream*
以利用多態(tài)2021/7/3155設(shè)計過程(四)---數(shù)據(jù)結(jié)構(gòu)2021/7/3156Struct
VS
Class數(shù)據(jù)結(jié)構(gòu)設(shè)計結(jié)果2021/7/3157設(shè)計過程(五)---數(shù)據(jù)對象的管理?2021/7/3158OO軟件的顯著特點之一是如何管理對象vector
VS
listSTL在數(shù)據(jù)結(jié)構(gòu)方面有強(qiáng)大的表達(dá)能力!C++技術(shù)難點:=運算符重載利用VCL的現(xiàn)有特性改善設(shè)計設(shè)計過程(六)---功能實現(xiàn)2021/7/3159設(shè)計結(jié)果2021/7/3160Key:2021/7/3161先進(jìn)行非可視化功能類的設(shè)計設(shè)計過程中要綜合考慮各方面的要求,作出綜合平衡,然后才能形成可行的設(shè)計方案界面設(shè)計放在功能設(shè)計方案之后,它的目的是提供一個用戶接口以驅(qū)動功能類的運作.界面設(shè)計案例:界面與功能代碼的完全分離2021/7/3162用戶界面設(shè)計(一)---窗體2021/7/3163用戶界面設(shè)計(二)---靈活性2021/7/3164用戶界面編碼的分層原則:(1)不在控件的事件處理過程中書寫大量的代碼!(2)盡可能減少代碼對具體控件的依賴重復(fù)使用的某種功能的控件應(yīng)被封裝成新的控件考慮窗體間的相似性,巧妙利用窗體的OO特性:繼承,多態(tài)與重載一個復(fù)雜的控件原則上應(yīng)新建一個控制類以便于使用,這個控制類的接口成員應(yīng)是按邏輯來劃分而不是按技術(shù)來劃分的用戶界面設(shè)計(三)---健壯性2021/7/3165避免一個窗體過于復(fù)雜保證用戶界面層以正確的順序調(diào)用功能類提高軟件健壯性2021/7/3166每一個函數(shù)都盡可能地保證是獨立完備的、安全的。程序基本完成后,從最底層的類開始,逐步找出每個對外接口的前條件(前提)和后條件(結(jié)果),然后,判斷有無可能發(fā)生錯誤,并且決定這些錯誤應(yīng)該如何處理開發(fā)高容錯程序三原則2021/7/3167預(yù)防所有可以預(yù)料和防止的錯誤;處理所有可以預(yù)料但不能防止的錯誤;捕獲所有不能預(yù)料的錯誤;代碼實例分析使用ROSE進(jìn)行正向代碼生成2021/7/3168設(shè)計類接口新建一個組件將類賦與組件生成代碼使用ROSE進(jìn)行正向代碼生成(1)設(shè)計類接口2021/7/3169使用ROSE進(jìn)行正向代碼生成(2)新建一個組件2021/7/3170使用ROSE進(jìn)行正向代碼生成(3)選定組件的語言2021/7/3171使用ROSE進(jìn)行正向代碼生成(4)給組件分配類2021/7/3172使用ROSE進(jìn)行正向代碼生成(5)分配了類的組件2021/7/3173使用ROSE進(jìn)行正向代碼生成(6)生成代碼2021/7/3174使用ROSE進(jìn)行逆向更新逆向更新的目的是用更改后的代碼刷新系統(tǒng)模型文件,以保證系統(tǒng)文檔與真實代碼的一致性2021/7/3175使用ROSE進(jìn)行逆向轉(zhuǎn)換2021/7/3176選擇組件打開Ansi
C++
specification窗口選擇文件生成模型用已有代碼進(jìn)行逆向轉(zhuǎn)換(1)新建組件2021/7/3177用已有代碼進(jìn)行逆向轉(zhuǎn)換(2)打開ANSI
C++參數(shù)設(shè)置窗口2021/7/3178用已有代碼進(jìn)行逆向轉(zhuǎn)換(3)加入C++頭文件和CPP文件2021/7/3179用已有代碼進(jìn)行逆向轉(zhuǎn)換(4)從菜單中選逆向工程命令2021/7/3180用已有代碼進(jìn)行逆向轉(zhuǎn)換(5)ROSE工程資源瀏覽器中新生成的類2021/7/3181用已有代碼進(jìn)行逆向轉(zhuǎn)換(6)新生成的類的屬性窗口2021/7/3182用已有代碼進(jìn)行逆向轉(zhuǎn)換(7)在類圖中顯示逆向工程生成的類2021/7/3183OOAD理論總結(jié)與思索2021/7/3184軟件開發(fā)的最重要思維方式2021/7/3185軟件開發(fā)的最重要思維方式是什么?抽象!結(jié)構(gòu)化編程時代程序=數(shù)據(jù)結(jié)構(gòu)+算法面向?qū)ο筌浖r代,軟件=?軟件=對象+對象之間的關(guān)系組件化時代的軟件設(shè)計2021/7/3186什么是軟件組件?可以復(fù)用的,具備一定功能的類的組合。單個類不夠資格成為軟件組件!軟件組件可以以源代碼方式存在,也可以以二進(jìn)制形式存在注意:區(qū)分ROSE中的組件與軟件理論領(lǐng)域中的組件組件化時代的軟件設(shè)計2021/7/3187OOD設(shè)計師制定組件的規(guī)范,高級程序員實現(xiàn)這些可復(fù)用的組件現(xiàn)代軟件開發(fā)已成為組裝已有組件的過程,最典型的例子是Java與.net類庫設(shè)計模式2021/7/3188大型系統(tǒng)中良好的設(shè)計是關(guān)鍵設(shè)計模式(Design
patterns)為開發(fā)面向?qū)ο蟮能浖峁┮粋€架構(gòu)減少了軟件設(shè)計的復(fù)雜度為軟件設(shè)計方案的重用提供了可能性可以避免犯一些常規(guī)性的錯誤使設(shè)計獨立于語言建立了一套軟件架構(gòu)設(shè)計師的“通用語言”在軟件開發(fā)周期中縮短了設(shè)計周期使用設(shè)計模式2021/7/3189熟悉模式才能知道如何使用模式我們用UML來描述模式,ROSE是畫圖工具用模式的最好方法就是設(shè)計時忘掉所有的模式名,只從實踐出發(fā)尋找可行的方案,必要時才去翻模式書以獲得靈感。設(shè)計模式經(jīng)典書籍2021/7/3190四個老外權(quán)威:Gamma,Helm,
Johnson
andVlissides“Gang
of
Four”——四人幫Design
Patterns,
Elements
of
ReusableObject-Oriented
Software
(Addison
Wesley:
1995)提出23種設(shè)計模式創(chuàng)建型設(shè)計模式:解決如何創(chuàng)建對象的問題結(jié)構(gòu)型設(shè)計模式:解決類和對象間的結(jié)構(gòu)關(guān)系問題行為型設(shè)計模式:解決對象間的動態(tài)關(guān)系問題參考資料2021/7/3191參考資料2021/7/3192關(guān)于設(shè)計模式2021/7/3193應(yīng)仔細(xì)研究成熟的設(shè)計模式,將其活學(xué)活用設(shè)計模式運用時,心中要無模式;關(guān)鍵在于把握其思想。模式不是數(shù)學(xué)公式!結(jié)構(gòu)化編程與面向?qū)ο缶幊?021/7/3194面向?qū)ο蟮年P(guān)鍵是抽象面向?qū)ο蠓治鲈O(shè)計的成功實施要求更高,難度更大:在理解對象基本理論和開發(fā)技術(shù)的前提下,加上豐富的程序開發(fā)實踐,才行。結(jié)構(gòu)化與面向?qū)ο蠓椒☉?yīng)該相輔相成,在合適的地方用合適的方法。結(jié)構(gòu)化編程與面向?qū)ο缶幊?021/7/3195在類的內(nèi)部代碼實現(xiàn)上采用結(jié)構(gòu)化編程的方式:比如:將一個太長的函數(shù)按功能分解為若干個小函數(shù),做為類的私有函數(shù)只有在調(diào)試代碼清除BUG中,才發(fā)覺OO的妙處和軟件工程理論的無比正確!最重要的是兩點:代碼隔離;控制模塊規(guī)模;對象的存儲2021/7/3196對象的存儲不應(yīng)直接與數(shù)據(jù)庫打交道對象的管理通常都設(shè)計控制類采用STL容器進(jìn)行管理從數(shù)據(jù)庫記錄集生成對象,然后把對象放入STL容器中,是一個很好的設(shè)計方案數(shù)據(jù)庫表的一對多關(guān)聯(lián),表現(xiàn)為對象之間的組合,多對多關(guān)聯(lián)如何處理?請思索!對象與關(guān)系數(shù)據(jù)庫2021/7/3197對象實例的數(shù)據(jù)保存在數(shù)據(jù)庫表中,一般一條記錄對應(yīng)一個對象實例,盡量避免一個對象實例的數(shù)據(jù)分布在不同的表中,這樣就加大了移植的難度;對象與數(shù)據(jù)庫之間的關(guān)系問題是OOD與OOP必須解決的問題之一。數(shù)據(jù)庫表關(guān)聯(lián)與對象的對應(yīng)表的一對一關(guān)聯(lián)可直接映射到對象間的一對一關(guān)聯(lián)2021/7/3198數(shù)據(jù)庫表關(guān)聯(lián)與對象的對應(yīng)一對多關(guān)聯(lián)2021/7/3199數(shù)據(jù)庫表關(guān)聯(lián)與對象的對應(yīng)多對多關(guān)聯(lián)需拆成兩個一對多的關(guān)聯(lián)2021/7/31100分而治之的設(shè)計方法2021/7/31101“分而治之”是一個基本的方法,簡單
地說,就是將一個復(fù)雜的系統(tǒng)劃分為幾
個子系統(tǒng),然后,分別處理這些子系統(tǒng),最后再合成一個完整的系統(tǒng)。這是西方科學(xué)的主要思維方法之一:重
視局部與細(xì)節(jié),用放大鏡去研究大象。橫向與縱向2021/7/31102可以利用多態(tài)、模板等機(jī)制簡化設(shè)計繼承是縱向的設(shè)計方案,STL是橫向的解決方案,繼承可以復(fù)用代碼,模板可以減少類的數(shù)量,相互配合才是良好的設(shè)計。基于組件的“搭積木”過程可以看成是將橫向與縱向設(shè)計相結(jié)合的典范OOD的指導(dǎo)原則2021/7/31103為特定問題產(chǎn)生一個class,然后讓它在解決其他問題時,漸漸成長而成熟;設(shè)計Class及其接口,是OOD的主要任務(wù);開始寫程序,讓一部分先動起來,以驗證設(shè)計,或找出難點所在;保持類的小而簡潔,功能明確——《Thinking
in
Java》p82OOAD的哲學(xué)方法論2021/7/31104真學(xué)問把復(fù)雜的問題弄得簡單,它的目的是讓你能夠理解;偽學(xué)問把簡單的問題弄得復(fù)雜,它的目的是讓你感到神秘。不做就學(xué)不到OOAD的哲學(xué)方法論2021/7/31105一切都要從實際出發(fā),不迷信老外的一切,相信自己的直覺。采用“拿來主義”現(xiàn)在的OOD,大多是在采用已有的系統(tǒng)架構(gòu)基礎(chǔ)上修修補(bǔ)補(bǔ),以達(dá)到最大限度地利用現(xiàn)有資源的目的。所以,OOD不是獨立于語言
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商場泔水清運專項服務(wù)合同
- 二零二五年度寶石匠人珠寶店珠寶行業(yè)法律咨詢合同
- 廚衛(wèi)改造工程合同樣本
- 旅游規(guī)劃與設(shè)計行業(yè)智能化旅游目的地打造方案
- 電子通訊網(wǎng)絡(luò)工程指南
- 職業(yè)病診斷與鑒定作業(yè)指導(dǎo)書
- 三農(nóng)產(chǎn)品流通體系國際化與走出去戰(zhàn)略作業(yè)指導(dǎo)書
- 三農(nóng)田灌溉管理方案
- 多應(yīng)用臨時借款合同常用
- 房產(chǎn)歸男方無債務(wù)離婚協(xié)議書
- 2024年全國統(tǒng)一高考英語試卷(新課標(biāo)Ⅰ卷)含答案
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識 CCAA年度確認(rèn) 試題與答案
- 2022屆“一本、二本臨界生”動員大會(2023.5)
- 肝臟炎性假瘤的影像學(xué)表現(xiàn)培訓(xùn)課件
- 國家行政機(jī)關(guān)公文格式課件
- 耐壓絕緣硅橡膠涂料噴涂作業(yè)指導(dǎo)書
- 小學(xué)《體育與健康》 人教版 三年級 乒乓球運動 -乒乓球介紹與球性教學(xué) 第一節(jié)課PPT 課件
- 急性心梗的護(hù)理業(yè)務(wù)學(xué)習(xí)課件
- 導(dǎo)向標(biāo)識系統(tǒng)設(shè)計(二)課件
- 聚焦:如何推進(jìn)教育治理體系和治理能力現(xiàn)代化
- 化工儀表自動化【第四章】自動控制儀表
評論
0/150
提交評論