《軟件工程》CH4 概要設(shè)計_第1頁
《軟件工程》CH4 概要設(shè)計_第2頁
《軟件工程》CH4 概要設(shè)計_第3頁
《軟件工程》CH4 概要設(shè)計_第4頁
《軟件工程》CH4 概要設(shè)計_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件生存周期可行性研究需求分析概要設(shè)計詳細設(shè)計實 現(xiàn)集成測試確認測試使用與維護退役軟件定義軟件開發(fā)軟件使用與維護軟件生命周期1軟件設(shè)計是后續(xù)開發(fā)步驟及軟件維護工作的基礎(chǔ)。如果沒有設(shè)計,只能建立一個不穩(wěn)定的系統(tǒng)結(jié)構(gòu)2第五章 軟件設(shè)計主要內(nèi)容: 軟件設(shè)計的目標和任務(wù) 軟件設(shè)計基礎(chǔ) 模塊的獨立性 結(jié)構(gòu)化設(shè)計方法 數(shù)據(jù)設(shè)計及文件設(shè)計 過程設(shè)計3討論要點(1)如何將分析模型轉(zhuǎn)換為軟件 設(shè)計?(2)作為軟件工程師在軟件設(shè)計 方面應(yīng)使用哪些基本原則和 概念?4引言: 軟件設(shè)計的目標和目的 軟件需求:解決“做什么” 軟件設(shè)計:解決“怎么做” 1. 軟件設(shè)計的任務(wù) 問題結(jié)構(gòu)(軟件需求) 軟件結(jié)構(gòu) 從軟件需求規(guī)格

2、說明書出發(fā),形成軟件的具體設(shè)計方案。映射5將分析模型轉(zhuǎn)換為軟件設(shè)計數(shù)據(jù)字典數(shù)據(jù)流圖E-R圖狀態(tài)變遷圖加工規(guī)約控制規(guī)約數(shù)據(jù)對描 述象數(shù) 據(jù) 設(shè) 計體系結(jié)構(gòu)設(shè)計接口設(shè)計過程設(shè)計分析模型設(shè)計模型2.軟件的總體結(jié)構(gòu)主要回答的問題軟件的組成部分軟件的層次關(guān)系模塊的內(nèi)部處理邏輯模塊之間的界面73. 軟件設(shè)計的問題 工具 如何描述軟件的總體結(jié)構(gòu)方法 用什么方法有問題結(jié)構(gòu)導(dǎo)出 軟件結(jié)構(gòu)評估準則 什么樣的軟件結(jié)構(gòu)是 “最優(yōu)的”84. 軟件設(shè)計方法結(jié)構(gòu)化設(shè)計方法(SD)面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法(JSD方法)面向?qū)ο蟮脑O(shè)計方法(OOD)95. 軟件設(shè)計分為兩個階段:(1)概要設(shè)計(總體設(shè)計)確定軟件的結(jié)構(gòu)以及各組成成

3、分(子系統(tǒng)或模塊)之間的相互關(guān)系。(2)詳細設(shè)計 確定模塊內(nèi)部的算法和數(shù)據(jù)結(jié)構(gòu),產(chǎn)生描述各模塊程序過程的詳細文檔。10軟件設(shè)計任務(wù)從工程管理的角度來看,軟件設(shè)計分兩步完成。 概要設(shè)計,將軟件需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件的系統(tǒng)結(jié)構(gòu)。 詳細設(shè)計,即過程設(shè)計。通過對結(jié)構(gòu)表示進行細化,得到軟件詳細的數(shù)據(jù)結(jié)構(gòu)和算法。11軟 件 工 程-第4章 概要設(shè)計125.1 設(shè)計過程開始考慮“How”,但仍屬高層設(shè)計(確定黑盒關(guān)系)1、設(shè)想供選擇的方案2、選擇合理的方案3、確定最佳方案: 從DFD出發(fā)進行任務(wù)分解,不同的劃分方法即對應(yīng)不同的方案。每個合理的方案應(yīng)配備下列4份資料:系統(tǒng)流程圖組成系統(tǒng)的物理元素清單成本/效

4、益分析進度計劃選擇最佳方案并制定詳細的實現(xiàn)計劃4、功能分解131. 概要設(shè)計的過程5、結(jié)構(gòu)設(shè)計 模塊化思想: 將DFD細化,至每個子功能都明白易懂;每個模塊完成一個子功能;每層模塊合成一個高一級的功能。 6、數(shù)據(jù)庫設(shè)計8、文檔、審查7、測試計劃14總體設(shè)計階段的文檔(1)總體設(shè)計說明書(包括系統(tǒng)實現(xiàn)方案和軟件模塊結(jié)構(gòu));(2)測試計劃(包括測試策略、測試方案、預(yù)測的測試結(jié)果、測試進度計劃等);(3)用戶手冊(根據(jù)總體設(shè)計階段的結(jié)果,編寫的初步的用戶操作手冊);(4)詳細的實現(xiàn)計劃;(5)數(shù)據(jù)庫設(shè)計結(jié)果。155.2 軟件設(shè)計原理1、模塊化原理:經(jīng)驗1:E(P1+P2)E(P1)+E(P2)經(jīng)驗2

5、:成本成本 / 模塊最小成本區(qū)接口成本軟件總成本模塊數(shù)目16模塊化概念模塊:又稱構(gòu)件,是能夠單獨命名并獨立地完成一定功能的程序語句的集合。例如高級語言中的過程、函數(shù)、子程序等都可作為模塊模塊化是軟件的一個重要屬性。模塊化的特性提供了人們處理復(fù)雜的問題的一種方法,同時也使得軟件能夠被有效地管理。17 模塊化 (Modularity)模塊化是好的軟件設(shè)計的一個基本準則 高層模塊 從整體上把握 問題,隱蔽細節(jié) 復(fù)雜問題 較小問題 分解 可減小解題所需的總的工作分解182. 軟件結(jié)構(gòu)度量術(shù)語深度寬度扇出扇入(模塊的 層數(shù))(同一層最大模塊數(shù))(一個模塊 直接調(diào)用 的模塊數(shù))(調(diào)用一個給定模 塊的模塊個

6、數(shù))19模塊化和軟件成本成本或工作量模塊數(shù)量軟件總成本集成成本成本/模塊M最小成本區(qū)域202. 軟件設(shè)計原則2、抽象: 忽略細節(jié),分層理解問題,自頂向下層層加細。我們在考慮問題時,集中考慮和當(dāng)前問題有關(guān)的方面,而忽略和當(dāng)前問題無關(guān)的方面,這就是抽象?;蛘哒f抽象就是抽出事物的本質(zhì)特性而暫時不考慮它們的細節(jié)。 軟件工程過程的每一步,都是對軟件解法的抽象層次的一次細化。在可行性研究階段,軟件被看作是一個完整的系統(tǒng)部分;在需求分析期間,我們使用在問題環(huán)境中熟悉的術(shù)語來描述軟件的解法;當(dāng)我們由總體設(shè)計階段轉(zhuǎn)入詳細設(shè)計階段時,抽象的程度進一步減少;最后,當(dāng)源程序?qū)懗鰜頃r,也就達到了抽象的最低層。例:開發(fā)一

7、個CAD軟件,實現(xiàn)一個二維繪圖系統(tǒng)的全部功能,供低級計算機輔助設(shè)計使用。21 3、信息隱蔽(Information hiding)與局部化 每一個模塊的實現(xiàn)細節(jié)對于其他模塊來說是隱蔽的,模塊中所包括的信息不允許其他不需要這些信息的模塊調(diào)用。 信息隱蔽對于軟件的測試與維護都有很大的好處。因為對于軟件的其它部分來說,絕大多數(shù)數(shù)據(jù)和過程都是隱蔽的,這樣,在修改期間由于疏忽而引入的錯誤所造成的影響就可以局限在一個或幾個模塊內(nèi)部,不至波及到軟件的其他部分。 局部化就是將一些關(guān)系密切的軟件元素物理地放得彼此靠近。2. 軟件設(shè)計原則224、模塊獨立性(Module independence) * 好設(shè)計的關(guān)

8、鍵:每個模塊完成一個相對獨立的子功能,并且與其它模塊間的接口簡單。2. 軟件設(shè)計原則獨立性的度量:耦合(Coupling)&內(nèi)聚(Cohesion) 模塊獨立性是模塊化、抽象和信息隱蔽概念的直接結(jié)果。 23 耦合(Coupling)Great deal of dependenceIndependent Highly coupledLoosely coupledUncoupled 2. 軟件設(shè)計原則耦合表示一個軟件結(jié)構(gòu)內(nèi)各個模塊之間的互連程度,應(yīng)盡量選用松散耦合的系統(tǒng)24例1:A訪問C的內(nèi)部數(shù)據(jù)或不通過正常入口而轉(zhuǎn)入C的內(nèi)部。ABCDA:goto C1C:C1: 獨立性由弱到強(耦合程度由強到弱

9、)排列為: 內(nèi)容耦合(Content Coupling): 一個模塊直接影響另一個2. 軟件設(shè)計原則25例2:部分代碼重疊(常出現(xiàn)在匯編程序中)B A例3:一個模塊有多個入口(功能)A:entry 1:entry 2: The least desirable2. 軟件設(shè)計原則26 公共耦合 (Common coupling):幾個模塊共享一個數(shù)據(jù)區(qū)域Global : V1 V2A:A1=V1+V2B:V1=B1Global : V1 V2A:V1+B:V2=B1+V1問題: 公共部分的改動將影響所有調(diào)用它的模塊; 公共部分的數(shù)據(jù)存取無法控制; 復(fù)雜程度隨耦合模塊的個數(shù)增加而增加。2. 軟件設(shè)計

10、原則27控制耦合(Control coupling):一個模塊通過傳遞控制信息來控制另一個模塊ABFlagF2F1FnFlag接口單一,但仍然影響被控模塊的內(nèi)部邏輯??刂岂詈?當(dāng)把整個數(shù)據(jù)結(jié)構(gòu)作為參數(shù)傳遞而被調(diào)用的模塊只需要使用其中一部分數(shù)據(jù)元素時,就出現(xiàn)了特征耦合.2. 軟件設(shè)計原則28數(shù)據(jù)耦合(Data coupling): 只有數(shù)據(jù)在模塊之間進行交換原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共耦合的范圍,完全不用內(nèi)容耦合。29 低內(nèi)聚:偶然內(nèi)聚(Coincidental cohesion) 模塊中任務(wù)沒有多大關(guān)系A(chǔ):Read inputsfrom diskfrom tapefrom 邏

11、輯內(nèi)聚(Logical cohesion):相似功能放在一個模塊例如: 內(nèi)聚 (Cohesion): 一個模塊內(nèi)各元素結(jié)合的緊密程度.Goal: as cohesive as possible.2. 軟件設(shè)計原則30 時間內(nèi)聚(Temporal cohesion):模塊內(nèi)的功能在同一時間段內(nèi)完成例如:系統(tǒng)的初始化問題:不同功能混在一個模塊中,有時共用部分編碼,使局部功能的修改牽動全局。 中內(nèi)聚: 過程內(nèi)聚(Procedural cohesion):模塊內(nèi)的處理是相關(guān)的,而且必須以特定順序執(zhí)行例如:enter datacheck datamanipulate data2. 軟件設(shè)計原則31 通信

12、內(nèi)聚(Communicational cohesion):模塊中所有元素都用同一個輸入數(shù)據(jù)或產(chǎn)生同一個輸出數(shù)據(jù)例如:從同一磁帶上讀取不相干的數(shù)據(jù) 可能破壞獨立性。 高內(nèi)聚: 順序內(nèi)聚(Sequential cohesion):模塊的多個功能使用相同的數(shù)據(jù)結(jié)構(gòu)和入口 功能內(nèi)聚(Functional cohesion):所有元素合力完成一個單一功能,缺一不可2. 軟件設(shè)計原則32 耦合、內(nèi)聚與模塊獨立性的關(guān)系:2. 軟件設(shè)計原則335. 3 結(jié)構(gòu)設(shè)計原則(啟發(fā)原則)2. 軟件設(shè)計原則34結(jié)構(gòu)設(shè)計原則2. 模塊規(guī)模適中: 過大不易理解;太小則接口開銷過大。注意分解后不應(yīng)降低模塊的獨立性。提高模塊獨立

13、性 爭取低耦合、高內(nèi)聚(增加內(nèi)聚 減少耦合)2. 軟件設(shè)計原則35 深度 = 分層的層數(shù)。過大表示分工過細。 寬度 = 同一層上模塊數(shù)的最大值。過大表示系統(tǒng)復(fù)雜度大。2. 軟件設(shè)計原則3. 選擇適當(dāng)?shù)纳疃?、寬度、扇出和扇?36 扇出 = 一個模塊直接調(diào)用控制的模塊數(shù)。 3 fan-out 9AA的扇出AA的扇入 扇入 = 直接調(diào)用該模塊的模塊數(shù)在不破壞獨立性的前提下,fan-in 大的比較好。2. 軟件設(shè)計原則374、作用域在控制域內(nèi) 控制域MACBM的控制域為 M,A,B,C 作用域:M中的一個判定所影響的模塊。例如:A: if then goto B1 B: B1: 作用域在控制域內(nèi)A:

14、 if then goto M1 M: M1: goto C1 作用域超出了控制域上例中A的作用超出了控制域。改進方法之一,可以把A中的 if 移到M中;方法之二,可以把C移到A下面。2. 軟件設(shè)計原則385、降低接口的復(fù)雜程度:接口復(fù)雜可能表明模塊的獨立性差。6、單出單入,避免內(nèi)容耦合。7、模塊功能可預(yù)測 相同輸入必產(chǎn)生相同輸出。反例:模塊中使用全局變量或靜態(tài)變量,則可能導(dǎo)致不可預(yù)測。2. 軟件設(shè)計原則39層次圖用來描繪軟件的層次結(jié)構(gòu)。在圖5.2中已經(jīng)非正式地使用了層次圖。雖然層次圖的形式和第3.7節(jié)中介紹的描繪數(shù)據(jù)結(jié)構(gòu)的層次方框圖相同,但是表現(xiàn)的內(nèi)容卻完全不同。層次圖中的一個矩形框代表一個

15、模塊,方框間的連線表示調(diào)用關(guān)系而不像層次方框圖那樣表示組成關(guān)系。圖5.3是層次圖的一個例子。5.4 描繪軟件結(jié)構(gòu)的圖形工具 5.4.1 層次圖和HIPO圖40圖5.3 正文加工系統(tǒng)的層次圖 41層次圖很適于在自頂向下設(shè)計軟件的過程中使用。HIPO圖是美國IBM公司發(fā)明的“層次圖加輸入/處理/輸出圖”的英文縮寫。為了能使HIPO圖具有可追蹤性,在H圖(層次圖)里除了最頂層的方框之外,每個方框都加了編號。和H圖中每個方框相對應(yīng),應(yīng)該有一張IPO圖描繪這個方框代表的模塊的處理過程。HIPO圖中的每張IPO圖內(nèi)都應(yīng)該明顯地標出它所描繪的模塊在H圖中的編號,以便追蹤了解這個模塊在軟件結(jié)構(gòu)中的位置。42圖

16、5.4 帶編號的層次圖(H圖)43Yourdon提出的結(jié)構(gòu)圖是進行軟件結(jié)構(gòu)設(shè)計的另一個有力工具。結(jié)構(gòu)圖和層次圖類似,也是描繪軟件結(jié)構(gòu)的圖形工具,圖中一個方框代表一個模塊,框內(nèi)注明模塊的名字或主要功能;方框之間的箭頭(或直線)表示模塊的調(diào)用關(guān)系。因為按照慣例總是圖中位于上方的方框代表的模塊調(diào)用下方的模塊,即使不用箭頭也不會產(chǎn)生二義性,為了簡單起見,可以只用直線而不用箭頭表示模塊間的調(diào)用關(guān)系。5.4.2 結(jié)構(gòu)圖44在結(jié)構(gòu)圖中通常還用帶注釋的箭頭表示模塊調(diào)用過程中來回傳遞的信息。如果希望進一步標明傳遞的信息是數(shù)據(jù)還是控制信息,則可以利用注釋箭頭尾部的形狀來區(qū)分:尾部是空心圓表示傳遞的是數(shù)據(jù),實心圓表

17、示傳遞的是控制信息。圖5.5是結(jié)構(gòu)圖的一個例子。以上介紹的是結(jié)構(gòu)圖的基本符號,也就是最經(jīng)常使用的符號。此外還有一些附加的符號,可以表示模塊的選擇調(diào)用或循環(huán)調(diào)用。圖5.6表示當(dāng)模塊M中某個判定為真時調(diào)用模塊A,為假時調(diào)用模塊B。圖5.7表示模塊M循環(huán)調(diào)用模塊A、B和C。45圖5.5 結(jié)構(gòu)圖的例子產(chǎn)生最佳解的一般結(jié)構(gòu)46圖5.6 判定為真時調(diào)用A,為假時調(diào)用B47圖5.7 模塊M循環(huán)調(diào)用模塊A、B、C48注意,層次圖和結(jié)構(gòu)圖并不嚴格表示模塊的調(diào)用次序。雖然多數(shù)人習(xí)慣于按調(diào)用次序從左到右畫模塊,但并沒有這種規(guī)定,出于其他方面的考慮(例如為了減少交叉線),也完全可以不按這種次序畫。此外,層次圖和結(jié)構(gòu)圖

18、并不指明什么時候調(diào)用下層模塊。通常上層模塊中除了調(diào)用下層模塊的語句之外還有其他語句,究竟是先執(zhí)行調(diào)用下層模塊的語句還是先執(zhí)行其他語句,在圖中絲毫沒有指明。事實上,層次圖和結(jié)構(gòu)圖只表明一個模塊調(diào)用那些模塊,至于模塊內(nèi)還有沒有其他成分則完全沒有表示。49通常用層次圖作為描繪軟件結(jié)構(gòu)的文檔。結(jié)構(gòu)圖作為文檔并不很合適,因為圖上包含的信息太多有時反而降低了清晰程度。但是,利用IPO圖或數(shù)據(jù)字典中的信息得到模塊調(diào)用時傳遞的信息,從而由層次圖導(dǎo)出結(jié)構(gòu)圖的過程,卻可以作為檢查設(shè)計正確性和評價模塊獨立性的好方法。傳送的每個數(shù)據(jù)元素都是完成模塊功能所必須的嗎?反之,完成模塊功能必須的每個數(shù)據(jù)元素都傳送來了嗎?所有

19、數(shù)據(jù)元素都只和單一的功能有關(guān)嗎?如果發(fā)現(xiàn)結(jié)構(gòu)圖上模塊間的聯(lián)系不容易解釋,則應(yīng)該考慮是否設(shè)計上有問題。50結(jié)構(gòu)圖(SC)舉例 醫(yī)院管理系統(tǒng)門診管理藥房管理藥庫管理病房管理財務(wù)管理處方掛號處理掛號費總計掛號單掛號費總計出庫處理進藥管理病歷管理處方管理常規(guī)處理51酒店管理信息系統(tǒng)功能結(jié)構(gòu)圖H M I S收銀管理子系統(tǒng)收銀管理子系統(tǒng)收銀管理子系統(tǒng)客人登記預(yù)定登記客房處理歷史記錄客房查詢預(yù)定查詢餐桌安排菜單作業(yè)營業(yè)結(jié)帳匯總打印各類查詢初始設(shè)置客帳處理退房處理夜審處理客帳查詢報表打印大型零售商場管理信息系統(tǒng)功能結(jié)構(gòu)圖TM M I S系統(tǒng)維護POS系統(tǒng)零售實時系統(tǒng)商品進貨管理商品批發(fā)管理商品庫存管理商品及商

20、品帳管理顧客管理連鎖店管理財務(wù)管理人事工資管理計劃統(tǒng)計管理經(jīng)理查詢5.5 面向數(shù)據(jù)流的設(shè)計方法(又稱為SD:Structural Design)基本思想: DFD System Hierarchy 5.1、Data Flow 的分類 變換流(Transform Flow):Internal representationInformationTransform flowOutgoingflowIncomingflowExternal representationTime事實上所有信息流都可歸結(jié)為變換流543. 面向數(shù)據(jù)流的設(shè)計方法 事務(wù)流(Transaction Flow) TTransacti

21、onrequest Action paths T = Call one of the several subroutines depending on the type of the incoming transaction request.當(dāng)信息流具有明顯的“發(fā)射中心”時,可歸結(jié)為事務(wù)流。55(3)、軟件結(jié)構(gòu)的表達工具:結(jié)構(gòu)圖(SC圖)結(jié)構(gòu)圖反映程序中模塊之間的層次調(diào)用關(guān)系和聯(lián)系:它以特定的符號表示模塊、模塊間的調(diào)用關(guān)系和模塊間信息的傳遞 模塊:模塊用矩形框表示,并用模塊的名字標記它。3. 面向數(shù)據(jù)流的設(shè)計方法56 模塊的調(diào)用關(guān)系和接口:模塊之間用單向箭頭聯(lián)結(jié),箭頭從調(diào)用模塊指向被調(diào)用模塊。

22、3. 面向數(shù)據(jù)流的設(shè)計方法57 模塊間的信息傳遞:當(dāng)一個模塊調(diào)用另一個模塊時,調(diào)用模塊把數(shù)據(jù)或控制信息傳送給被調(diào)用模塊,以使被調(diào)用模塊能夠運行。而被調(diào)用模塊在執(zhí)行過程中又把它產(chǎn)生的數(shù)據(jù)或控制信息回送給調(diào)用模塊3. 面向數(shù)據(jù)流的設(shè)計方法58 在模塊A的箭頭尾部標以一個菱形符號,表示模塊A有條件地調(diào)用另一個模塊B。當(dāng)一個在調(diào)用箭頭尾部標以一個弧形符號,表示模塊A反復(fù)調(diào)用模塊C和模塊D。3. 面向數(shù)據(jù)流的設(shè)計方法59(4)、SD的總體過程:“變換”“事物”精化數(shù)據(jù)流圖流類型區(qū)分事物中心和數(shù)據(jù)接收通路區(qū)分輸入和輸出分支映射成事務(wù)結(jié)構(gòu)映射成變換結(jié)構(gòu)用啟發(fā)式設(shè)計規(guī)則精化軟件結(jié)構(gòu)導(dǎo)出接口描述和全程數(shù)據(jù)結(jié)構(gòu)復(fù)

23、 查詳細設(shè)計變換分析事物分析優(yōu)化的前題是:“Get it to work, then make it fast.”3. 面向數(shù)據(jù)流的設(shè)計方法605.2、分析設(shè)計案例變換分析例:汽車數(shù)字儀表板的設(shè)計功能: 通過模 - 數(shù)轉(zhuǎn)換實現(xiàn)傳感器和微處理機接口; 在發(fā)光二極管面板上顯示數(shù)據(jù); 指示每小時英里數(shù)(mph),行駛的里程,每加侖油行駛的英里數(shù)(mpg)等等; 指示加速或減速; 如果車速超過55mph ,則發(fā)出警告鈴聲。3. 面向數(shù)據(jù)流的設(shè)計方法61第一步:DFD的分界,先分出I、P、O三塊燃料流 傳感器信號SPS旋轉(zhuǎn)信號讀旋轉(zhuǎn)信號收集和求平均確定加/減速轉(zhuǎn)換成轉(zhuǎn)/分計算里程計算mph,超速值產(chǎn)生加/減速顯示計算燃料消耗計算gph讀和校核產(chǎn)生mpg顯示產(chǎn)生mph顯示發(fā)出鈴聲產(chǎn)生里程顯示SPSSPS箭頭指示燃燒流上箭頭水平線下箭頭rpmrpmgphmphmpgmph超速值英里顯示鈴聲mph顯示mpg顯示3. 面向數(shù)據(jù)流的設(shè)計方法62一般問題

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論