




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、1第6章 軟件設(shè)計2軟件設(shè)計設(shè)計設(shè)計是研究系統(tǒng)的軟件實現(xiàn)問題,即在分析模型的基礎(chǔ)上形成實現(xiàn)環(huán)境下的設(shè)計模型。36.1 軟件設(shè)計過程軟件設(shè)計活動:46.2 軟件設(shè)計原則:模塊化模塊化( Modularity )將一個復(fù)雜的大系統(tǒng)分解成若干個相對簡單的較小部分,稱 為子系統(tǒng)( Subsystem )。常見的模塊層次5設(shè)計原則-模塊化的層次 6為什么要模塊化設(shè)待求解的問題為X,則C(X)和E(X)分別為X相應(yīng)的復(fù)雜性和解決問題所需要的工作量。設(shè)對于問題P1,P2,若有C(P1) C(P2)則有E(P1) E(P2)而另一方面,人類實踐表明:當(dāng)P= P1+P2,實踐證明C(P)C(P1)+C(P2)因
2、此:E(P)E(P1)+E(P2)將一個復(fù)雜的大系統(tǒng)模塊化(Modularity),即將大系統(tǒng)分解成若干個相對簡單的子系統(tǒng)(Subsystem),分解后系統(tǒng)的復(fù)雜性和工作量比一個大系統(tǒng)要小,實現(xiàn)更為容易。 7模塊化的誤區(qū)但模塊的分解并非越多越好,模塊之間存在著交互接口,當(dāng)模塊過多時,將會增加接口的代價。86.2.1 模塊化和信息隱蔽系統(tǒng)的模塊化設(shè)計過程應(yīng)遵循信息隱蔽的原則每個模塊對其他模塊都隱蔽自己的設(shè)計決策。 在設(shè)計時列出將來可能發(fā)生變化的因素,并在模塊劃分時將這些因素放到個別模塊的內(nèi)部 。這樣,在將來由于這些因素變化而需修改軟件時,只需修改這些個別的模塊,其它模塊不受影響。 信息隱蔽原則可
3、以更好支持模塊的并行開發(fā)以及系統(tǒng)的后期維護,使得對一個模塊的設(shè)計和代碼的修改對其他模塊的影響降低。96.2.2內(nèi)聚和耦合內(nèi)聚( Cohesion )內(nèi)聚是子系統(tǒng)內(nèi)部的相關(guān)程度。當(dāng)子系統(tǒng)中彼此相關(guān)的多個對象執(zhí)行類似的任務(wù)時,則認(rèn)為 該子系統(tǒng)是高內(nèi)聚的;反之,當(dāng)子系統(tǒng)內(nèi)的多個對象彼此不相關(guān)時,則認(rèn)為是低內(nèi)聚的。內(nèi)聚越高越好高內(nèi)聚的方法做且僅做一件事,這會很容易理解與維護。舉例:如果使用一個方法 changeItem ( ) 完成書目的讀取、增加、 修改和刪除等若干方法的功能,有什么問題嗎?高內(nèi)聚的類表示且僅表示一種類型的對象。舉例:在大學(xué)系統(tǒng)中使用 Professor 而不用 Employee,為
4、什么?106.2.2內(nèi)聚和耦合內(nèi)聚度標(biāo)志一個模塊內(nèi)部各成分彼此結(jié)合的緊密程度。內(nèi)聚度按其高低程度可分為7級,從低至高分別為偶然內(nèi)聚(Coincidental cohesion)邏輯內(nèi)聚(Logical cohesion)時間內(nèi)聚(Temporal cohesion)過程內(nèi)聚(Procedural cohesion)通信內(nèi)聚(Communicational cohesion)順序內(nèi)聚(Sequential cohesion)功能內(nèi)聚(Functional cohesion)內(nèi)聚度越高越好。低級內(nèi)聚 ,設(shè)計時盡量避免中級內(nèi)聚 高級內(nèi)聚 11偶然內(nèi)聚 指一個模塊內(nèi)容是為了節(jié)約空間,將并無多少邏輯關(guān)聯(lián)
5、的代碼和數(shù)據(jù)組合在一起模塊內(nèi)各部分之間沒有聯(lián)系,或者即使有聯(lián)系也很松散 常見的偶然內(nèi)聚:寫程序時如一些沒有任何聯(lián)系的語句可能在許多模塊中重復(fù)多次,程序員為了節(jié)省存儲,把它們抽出來組成一個新的模塊,這個模塊就是偶然內(nèi)聚模塊12邏輯內(nèi)聚、時間內(nèi)聚和過程內(nèi)聚邏輯內(nèi)聚是指個模塊完成的多個任務(wù)邏輯上相關(guān)這種模塊把幾種功能組合在一起,每次調(diào)用時,由傳送給模塊的判定參數(shù)來確定該模塊應(yīng)執(zhí)行哪一種功能。 例如,一個模塊完成所有類型的數(shù)據(jù)輸出,這類模塊調(diào)用時需要傳送控制信息,以便控制輸出什么類型的數(shù)據(jù)如果一個模塊包含的多個任務(wù)必須在同一時間段內(nèi)執(zhí)行,則稱之為時間內(nèi)聚例如一個系統(tǒng)的初始化模塊和終止模塊 過程內(nèi)聚則是
6、指模塊內(nèi)成分彼此邏輯相關(guān),并且必須按特定的次序執(zhí)行 例如我們把流程圖中的循環(huán)部分、判定部分、計算部分分成三個模塊,這三個模塊都是過程內(nèi)聚模塊13通信內(nèi)聚模塊中各成分引用共同的輸入數(shù)據(jù)或產(chǎn)生相同的輸出數(shù)據(jù)則稱為通信內(nèi)聚,這意味著一個模塊可能包含多個功能,但卻是對相同的數(shù)據(jù)進行操作 14順序內(nèi)聚如果個模塊內(nèi)的各處理成分均與同功能相關(guān),且這些處理必須順序執(zhí)行,即模塊中某個成分的輸出是另一成分的輸入則稱順序內(nèi)聚15功能內(nèi)聚如果模塊完成單個功能且不易再分解,則稱功能內(nèi)聚,如求平方根、計算利息等。功能內(nèi)聚是最高程度的內(nèi)聚 166.2.2內(nèi)聚和耦合:耦合耦合( Coupling )耦合表示兩個子系統(tǒng)(或類)
7、之間的關(guān)聯(lián)程度。當(dāng)一個子系統(tǒng)(或類)發(fā)生變化時對另一個子系統(tǒng)(或類) 的影響很小,則稱它們是松散耦合的;反之,如果變化的影響很大時,則稱它們是緊密耦合的。 耦合也可分為7級,從低至高為:非直接耦合(Nondirect coupling)數(shù)據(jù)耦合(Data coupling)標(biāo)記耦合(Stamp coupling)控制耦合(Control coupling)外部耦合(External coupling)公共耦合(common coupling)內(nèi)容耦合(Content coupling)耦合度應(yīng)越低越好。17耦合1:若兩模塊間彼此無任何交互,則稱之為非直接耦合 在非直接耦合中 ,兩個模塊之間的聯(lián)
8、系完全是通過主模塊的控制和調(diào)用來實現(xiàn)的例如在實數(shù)的運算中,有兩個模塊分別完成幾個實數(shù)的求和,求乘積功能,這兩個模塊之間沒有直接聯(lián)系,只有在主模塊調(diào)用中有執(zhí)行的前后順序而已,這個例子即屬于非直接耦合18耦合2:若兩模塊間僅通過參數(shù)交換輸入,輸出信息則為數(shù)據(jù)耦合 如有兩個模塊,其中A模塊產(chǎn)生的輸出數(shù)據(jù)作為模塊B的某個操作B1的輸入?yún)?shù)即模塊A的運算結(jié)果作為一個參數(shù)參加B的運算,這兩個模塊之間即發(fā)生數(shù)據(jù)耦合。數(shù)據(jù)耦合是松散的耦合,模塊間的獨立性比較強。19耦合3:如果模塊間傳送的參數(shù)包含著復(fù)合數(shù)據(jù)結(jié)構(gòu),則為標(biāo)記耦合,例如含有若干數(shù)據(jù)項的數(shù)據(jù)記錄即模塊間共享了這個記錄,它是某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),而不是
9、簡單變量4:若傳遞的參數(shù)中含有控制信息則上升為控制耦合, (見圖6.6);20耦合5:當(dāng)若干模塊與同一個外部環(huán)境關(guān)聯(lián),則模塊間存在著外部耦合。如I/O處理使所有I/O模塊與特定的設(shè)備、格式和通信協(xié)議相關(guān)聯(lián);6:公共耦合則是指模塊間存在著全局變量、公共數(shù)據(jù)區(qū)或可共享的文件等 7:內(nèi)容耦合1)一個模塊訪問另一個模塊數(shù)據(jù);2)一個模塊不通過正常入口而轉(zhuǎn)到另一個模塊的內(nèi)部;3)兩個模塊有一部分代碼重疊;4)一個模塊有多個入口21耦合一般來說,設(shè)計時應(yīng)盡量使用數(shù)據(jù)耦合,減少控制耦合,限制外部環(huán)境耦合和公共耦合,絕對禁止內(nèi)容耦合。226.2.3抽象和求精抽象是對問題的簡化和概括,它忽略了問題的某些細(xì)節(jié),有
10、助于把握問題的本質(zhì)。抽象是分層次的高層的抽象是概念性的,例如用例模型較低層次的抽象則是具體解決方案和細(xì)節(jié),例如類的定義。抽象是自底向上的,是從細(xì)節(jié)到概要的過程。求精(Refine)是抽象的逆過程,是對問題自頂向下逐步分解、細(xì)化逐漸至細(xì)節(jié)的過程。236.2.4 復(fù)用復(fù)用( Reuse )對于建立軟件系統(tǒng)而言,所謂復(fù)用就是利用某些已開發(fā)的、 對建立新系統(tǒng)有用的軟件元素來生成新的軟件系統(tǒng)。 在一個系統(tǒng)中,通常大部分內(nèi)容是成熟的,小部分內(nèi)容是創(chuàng)新的。復(fù)用的好處在于提高生產(chǎn)效率,提高軟件質(zhì)量,改善軟件系統(tǒng)的可維護性。復(fù)用策略工具包強調(diào)在類級別的代碼復(fù)用,如類庫;組件強調(diào)組件級的復(fù)用,如 CORBA、EJ
11、B、DCOM 等;設(shè)計強調(diào)設(shè)計級的復(fù)用,如復(fù)用設(shè)計模式,復(fù)用體系結(jié)構(gòu)等246.3.1 什么是體系結(jié)構(gòu) 軟件系統(tǒng)的體系結(jié)構(gòu)主要是指軟件中相對獨立的模塊、這些模塊接口之間的交互機制以及一系列組織管理這些操作的規(guī)則。軟件體系結(jié)構(gòu)的設(shè)計是整個軟件開發(fā)過程中一個關(guān)鍵的環(huán)節(jié)不同類型的系統(tǒng)要求需要不同類型體系結(jié)構(gòu),甚至同一個系統(tǒng)中的子系統(tǒng)也可能需要不同的體系結(jié)構(gòu)。體系結(jié)構(gòu)模型主要描述以下屬性:系統(tǒng)的組件,包括功能組件和數(shù)據(jù)組件;系統(tǒng)組件間的連接,包括數(shù)據(jù)流和控制流;組件和連接的約束,包括組件間的通信協(xié)議,組件間的同步等;以及用組件和連接表示的系統(tǒng)整體結(jié)構(gòu)的拓?fù)潢P(guān)系。因而組件和連接是軟件體系結(jié)構(gòu)的兩大構(gòu)成部分
12、。 256.3.1 什么是體系結(jié)構(gòu) :組件組件(Component)是軟件系統(tǒng)的結(jié)構(gòu)塊單元,每個軟件組件都承擔(dān)著一定的功能并發(fā)揮著一定的作用,組件可以看作是模塊、類、對象等一個相關(guān)功能的集合。組件大都作為一個封裝的實體每個組件至少有個接口(Port)。接口是組件與外界發(fā)生交互的窗口。其他組件與其交互時,只需了解此組件對外的接口和提供的操作服務(wù)。266.3.1 什么是體系結(jié)構(gòu) :組件根據(jù)組件在系統(tǒng)中的作用,組件可以大致分為5類:負(fù)責(zé)系統(tǒng)運行管理的控制組件;負(fù)責(zé)組件之間協(xié)作關(guān)系的協(xié)調(diào)組件;為其他組件提供特定服務(wù)功能的服務(wù)組件;負(fù)責(zé)安全檢查和信息轉(zhuǎn)接傳遞的信息控制組件;負(fù)責(zé)組件間連接和轉(zhuǎn)換功能的連接
13、組件。276.3.1 什么是體系結(jié)構(gòu) :連接連接(Connect):建立和維護組件間行為關(guān)聯(lián),和組件間信息傳遞。連接需要兩方面的支持:一是連接發(fā)生和維持的機制;二是連接能夠正確地、無二義、無沖突地進行信息交換的規(guī)則,稱為連接的“協(xié)議”。因此,連接的本質(zhì)是實現(xiàn)連接機制和信息交換協(xié)議,簡稱機制和協(xié)議。286.3.1 什么是體系結(jié)構(gòu) :連接計算機硬件提供了實現(xiàn)連接的基礎(chǔ)。 在硬件提供連接機制的基礎(chǔ)上,可以實現(xiàn)不同層次上的連接比如在體系結(jié)構(gòu)模式層,應(yīng)用層等無論哪層連接,都是基于硬件提供的基本連接機制連接協(xié)議是連接的規(guī)約,是實現(xiàn)有意義連接的保證。 比如網(wǎng)絡(luò)七層連接協(xié)議296.3.1 什么是體系結(jié)構(gòu) :連
14、接當(dāng)組件間聯(lián)系關(guān)系復(fù)雜時,除了基本連接方法外,需要建立專門的連接組件以調(diào)用和協(xié)調(diào)組件間的關(guān)聯(lián)關(guān)系,實現(xiàn)組件間聯(lián)系的特殊組件稱為連接器(connector)最簡單的連接器可表現(xiàn)為組件之間的直接連接,如功能調(diào)用。當(dāng)情況復(fù)雜時,則有專門的連接器,類似于連接硬件設(shè)備的特定連接裝置,軟部件之間也需要連接器,如進程間通信所構(gòu)成的連接器 306.3.2 體系結(jié)構(gòu)設(shè)計策略體系結(jié)構(gòu)設(shè)計:建立起一個系統(tǒng)的子系統(tǒng)和子系統(tǒng)間通信的基本的結(jié)構(gòu)框架體系結(jié)構(gòu)設(shè)計時通常采用現(xiàn)有的體系結(jié)構(gòu)設(shè)計策略 常見的體系結(jié)構(gòu)設(shè)計策略:管道過濾器結(jié)構(gòu)分層體系結(jié)構(gòu) 倉庫系統(tǒng)結(jié)構(gòu) 客戶/服務(wù)器模式 MVC模式 316.3.3 管道過濾器結(jié)構(gòu)管道
15、過濾器結(jié)構(gòu)是由過濾器和管道組成的。代表數(shù)據(jù)加工處理的過濾器是具有一組輸入和一組輸出的部件,它們被代表數(shù)據(jù)傳送的管道連接在一起過濾器從輸入數(shù)據(jù)源接收輸入,經(jīng)過內(nèi)部加工處理后送到輸出的數(shù)據(jù)池,并被傳送到輸出連接的過濾器。數(shù)據(jù)源、過濾器、數(shù)據(jù)池通過管道順序地連接起來。每個管道只處理臨近過濾器之間的數(shù)據(jù)流。326.3.3 管道過濾器結(jié)構(gòu)過濾器的活動可以通過以下方法激活:(1)后續(xù)的部件從過濾器中取出數(shù)據(jù);(2)前續(xù)的部件向過濾器推入新輸入數(shù)據(jù);(3)過濾器處于活躍狀態(tài),不斷地從前續(xù)部件取出并向后續(xù)部件推入數(shù)據(jù)。前兩種情況產(chǎn)生的是被動式過濾器(passive filter),最后的是主動式過濾器(act
16、ive filter)。被動式過濾器是通過函數(shù)或過程調(diào)用激發(fā)的,而主動式過濾器是作為獨立的程序或線程任務(wù)激發(fā)工作的。336.3.3 管道過濾器結(jié)構(gòu)管道是過濾器之間的連接器。如果兩個主動式過濾器連接在一起,管道將對它們實施同步控制。管道是一個先進先出的數(shù)據(jù)緩沖。數(shù)據(jù)源是系統(tǒng)的輸入,它提供了同一結(jié)構(gòu)類型的數(shù)據(jù)序列。例如,由文本行組成的文件,提供采集數(shù)值的探測器。數(shù)據(jù)源可主動地把數(shù)據(jù)推向過濾器,或當(dāng)過濾器需要時被動地提供數(shù)據(jù)。數(shù)據(jù)池從過濾器收集計算結(jié)果,有兩類變種,主動式數(shù)據(jù)池從過濾器中“拉”出數(shù)據(jù),被動式數(shù)據(jù)池允許其前續(xù)的過濾器向其推入或?qū)懭虢Y(jié)果。346.3.3 管道過濾器結(jié)構(gòu)管道過濾器(Pipe
17、 and Filter)的體系結(jié)構(gòu)最早產(chǎn)生于程序語言的編譯操作和操作系統(tǒng)的進程間通信和任務(wù)處理。早期程序語言的編譯被分解為符號掃描、句法分析、語義分析、中間代碼生成、代碼優(yōu)化、代碼生成、連接的多個獨立的處理源程序依次經(jīng)過各個處理最后得到可執(zhí)行的程序。其中,對于輸入數(shù)據(jù),各種處理是過濾器,它的輸出到下個處理的輸入形成了中間數(shù)據(jù)的傳送管道。356.3.3 管道過濾器結(jié)構(gòu)管道過濾器結(jié)構(gòu)結(jié)構(gòu)在信號處理、分布式計算等處理中獲得廣泛使用 366.3.4 分層體系結(jié)構(gòu)層次化是一種概念,它將軟件設(shè)計組織成為類或組件的層次或集合,在同一個層次上的類或組件完成一個特定的目的。除了最上層和最下層外,系統(tǒng)中的每一層都
18、要承擔(dān)兩個角色。首先,它為結(jié)構(gòu)中的上層提供服務(wù);其次,它調(diào)用下層提供的功能函數(shù)。 良好的層次結(jié)構(gòu)可以易于系統(tǒng)的擴展與維護,不同的層次之間通過接口進行通信。三層體系結(jié)構(gòu)( Three-tier Architecture )表示層:窗口、報表等用戶界面元素應(yīng)用邏輯層:管理業(yè)務(wù)過程的任務(wù)和規(guī)則存儲層:持久化存儲機構(gòu)376.3.4 分層體系結(jié)構(gòu)386.3.5倉庫系統(tǒng)結(jié)構(gòu)倉庫或知識庫結(jié)構(gòu)( Repository architecture )倉庫結(jié)構(gòu)是一種以數(shù)據(jù)為中心的體系結(jié)構(gòu),它包含一個中心數(shù)據(jù)庫和一組相互獨立的處理中心數(shù)據(jù)的子系統(tǒng),主要適合 于數(shù)據(jù)由一個子系統(tǒng)產(chǎn)生而由其他子系統(tǒng)使用的情形。396.3.
19、5倉庫系統(tǒng)結(jié)構(gòu)406.3.6 客戶/服務(wù)器模式客戶機服務(wù)器結(jié)構(gòu)( Client/Server Architecture )適用于分布式環(huán)境下的系統(tǒng)結(jié)構(gòu), 在客戶機服務(wù)器體系結(jié)構(gòu)中,作為服務(wù)器的子系統(tǒng)為其他 客戶機的子系統(tǒng)提供服務(wù),作為客戶機的子系統(tǒng)負(fù)責(zé)與用戶的交互。瘦客戶機模型所有的應(yīng)用處理和數(shù)據(jù)管理都是在服務(wù)器上執(zhí)行,客戶機只是負(fù)責(zé)數(shù)據(jù)表示部分。由于繁重的處理負(fù)荷全部集中在服務(wù)器和網(wǎng)絡(luò)上,有可能造成性能上的問題。416.3.6 客戶/服務(wù)器模式胖客戶機模型服務(wù)器只負(fù)責(zé)對數(shù)據(jù)的管理,客戶機上的軟件實現(xiàn)應(yīng)用邏輯與用戶的交互。系統(tǒng)管理更加復(fù)雜,因為應(yīng)用程序的改變必須在客戶機上重 新安裝。三層的客戶
20、機服務(wù)器體系結(jié)構(gòu)426.3.7 模型視圖控制器結(jié)構(gòu)(MVC)模型/視圖/控制器結(jié)構(gòu)(Model/View/Controller Architecture)該結(jié)構(gòu)是為同樣的數(shù)據(jù)提供多個視圖的應(yīng)用程序而設(shè)計的,它將交互系統(tǒng)的組成(子系統(tǒng))分解成模型、視圖、控制器三種部件。視圖是應(yīng)用程序中用戶界面相關(guān)的部分,即用戶看到并與之交互 的界面??刂破鞴ぷ骶涂刂普麄€業(yè)務(wù)流程,實現(xiàn)View層跟Model層的協(xié)同工作。模型是應(yīng)用程序的主體部分,用于封裝業(yè)務(wù)邏輯和數(shù)據(jù)模型。該結(jié)構(gòu)適合于交互式系統(tǒng),特別是同一個模型需要多個視圖的情況。436.3.7 模型視圖控制器結(jié)構(gòu)44MVC視圖(View)代表用戶交互界面,對于
21、Web應(yīng)用來說,可以概括為HTML界面(JSP,ASPX),但有可能為XML、WML和Excel。隨著應(yīng)用的復(fù)雜性和規(guī)模性,界面的處理也變得具有挑戰(zhàn)性。45MVC控制器(Controller)可以理解為從用戶接收請求, 將模型與視圖匹配在一起,共同完成用戶的請求??刂破鞑⒉蛔鋈魏蔚臄?shù)據(jù)處理。例如,用戶點擊一個連接(發(fā)送請求),控制器接受請求后, 并不處理業(yè)務(wù)信息,它只把用戶的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用戶。因此,一個模型可能對應(yīng)多個視圖,一個視圖可能對應(yīng)多個模型。 46MVC模型(Model):就是業(yè)務(wù)流程/狀態(tài)的處理以及數(shù)據(jù)模型的制定。業(yè)務(wù)流程的處理過程對其它層
22、來說是黑箱操作,模型接 受視圖請求的數(shù)據(jù),并返回最終的處理結(jié)果。模型的設(shè)計可以說是MVC最主要的核心。47jsp+servlet+javaBean實現(xiàn)MVCJSP作為視圖,只用于顯示 Servlet作為控制器,所有的請求,跳轉(zhuǎn)都由servlet完成業(yè)務(wù)邏輯部分由javabean完成48jsp+servlet+javaBean實現(xiàn)MVC49BookList(Servlet)bookManage.jsp請求(Book/List)requestrequest(books)例:圖書列表功能MVC實現(xiàn)50OpenModifyBook(Servlet)changeBookInf.jsp請求1(Book/OpenModify)request1request1(book)ModifyBook(Servlet)請求2(Book/Modify)changeBookInfoSucce
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二年級下冊數(shù)學(xué)教案 - 第三單元 第一節(jié)【第一課時】 數(shù)一數(shù)(一)(認(rèn)識并感受“千”1)北師大版
- 2025年師范大學(xué)協(xié)議管理辦法
- 勞動協(xié)議:勞務(wù)分包協(xié)議(2025年版)
- 2024年水利機械項目資金需求報告代可行性研究報告
- 2024年高性能陶瓷刀具材料項目資金需求報告代可行性研究報告
- 全國清華版信息技術(shù)小學(xué)三年級上冊新授課 第11課 智能輸詞句-詞組和整句輸入 教學(xué)設(shè)計
- 2025年度手房交易資金監(jiān)管補充協(xié)議
- 2025年度大米產(chǎn)業(yè)投資基金簡易合作協(xié)議
- 2025年度商標(biāo)同授權(quán)及品牌授權(quán)許可合同
- 二零二五年度網(wǎng)紅直播帶貨營銷推廣服務(wù)合同
- 影視文學(xué)教程整本書課件完整版電子教案全套課件最全教學(xué)教程ppt(最新)
- 《建筑冷熱源》課程教學(xué)大綱-
- 防火門監(jiān)控系統(tǒng)調(diào)試、檢測、驗收記錄
- 2016年七里塘電站1號機組C級檢修方案
- “大水利”概念及其意義
- (完整word版)SAS-Base認(rèn)證考試(70真題+答案詳解)
- 體育測量與評價_05身體素質(zhì)的測量與評價
- 東華協(xié)同辦公系統(tǒng)簡介
- 三年級上冊數(shù)學(xué)應(yīng)用題大全98715
- 最新版結(jié)婚函調(diào)報告表.doc
- 紙張克重、厚度對照表
評論
0/150
提交評論