版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、2.4 需求分析-任務(wù)一、需求分析的任務(wù)基本任務(wù):準(zhǔn)確地回答“系統(tǒng)必須做什么?”1.確定對系統(tǒng)的綜合需求(1)系統(tǒng)功能要求(2)系統(tǒng)性能要求(3)運行要求(4)將來可能提出的要求2.分析系統(tǒng)的數(shù)據(jù)要求采用建立“概念模型”的方法,并輔助圖形工具,如:層次方框圖、Warnier圖等。2.4 需求分析-過程3.導(dǎo)出系統(tǒng)的邏輯模型數(shù)據(jù)流程圖、數(shù)據(jù)字典、主要算法4.修正系統(tǒng)開發(fā)計劃5.開發(fā)原型系統(tǒng)二、分析過程1.沿數(shù)據(jù)流程圖回溯從“輸出端”到“輸入端”回溯,分析數(shù)據(jù)元素。2.用戶復(fù)查借助已有的數(shù)據(jù)流程圖,幫助復(fù)查,再次完善數(shù)據(jù)流程圖。2.4 需求分析-過程3.細(xì)化數(shù)據(jù)流程圖4.修正開發(fā)計劃5.書寫文檔系
2、統(tǒng)規(guī)格說明:系統(tǒng)的概貌、功能要求、運行要求、將來可能的要求。數(shù)據(jù)要求:數(shù)據(jù)字典、圖形工具(數(shù)據(jù)結(jié)構(gòu)的層次圖、Warnier圖)用戶系統(tǒng)描述:初步的用戶手冊修正的開發(fā)計劃2.4 需求分析-過程分析追蹤數(shù)據(jù)流程圖用戶復(fù)查細(xì)化數(shù)據(jù)流程圖有補(bǔ)充修正無補(bǔ)充修正需要分解不需分解需求分析的基本過程2.4 需求分析-概念模型和規(guī)范化三、概念模型和規(guī)范化1.概念模型最常用的表示概念性數(shù)據(jù)模型的方法:實體聯(lián)系方法(Entity-Relationship Approach),簡稱E-R模型。E-R模型包含三個基本成分:“實體”、“聯(lián)系”、“屬性”(1)實體:是客觀世界中存在的、且可相互區(qū)分的事物。它可以是人或物,也
3、可以是具體事物或抽象事物。例如:教師、學(xué)生、課程是實體。2.4 需求分析-概念模型和規(guī)范化實體用矩形框表示,如:教師(2)聯(lián)系:客觀世界中的事物彼此之間有聯(lián)系,描述實體與實體之間的關(guān)系。聯(lián)系有三種:1:1(一對一聯(lián)系)例如:實體“校長”與“大學(xué)”之間的聯(lián)系為“1:1”1:N(一對多聯(lián)系)例如:實體“學(xué)?!迸c“院系”之間的聯(lián)系為“1:N”M:N(多對多聯(lián)系)例如:實體“學(xué)生”與“課程”之間的聯(lián)系為“M:N”聯(lián)系用菱形框表示,如:2.4 需求分析-概念模型和規(guī)范化(3)屬性:屬性是實體或聯(lián)系所具有的性質(zhì)。通常一個實體或聯(lián)系由若干屬性來刻畫。教師學(xué)生課程教學(xué)1NMN成績2.4 需求分析-概念模型和規(guī)
4、范化2.范式第一范式每個屬性值都必須是原子值,即僅僅是一個簡單值而不含內(nèi)部結(jié)構(gòu)。第二范式滿足第一范式條件,而且每個非關(guān)鍵字屬性都由整個關(guān)鍵字決定(而不是由關(guān)鍵字的一部分來決定)。第三范式符合第二范式的條件,每個非關(guān)鍵字屬性都僅由關(guān)鍵字決定,而且一個非關(guān)鍵字屬性不能僅僅是對另一個非關(guān)鍵字屬性的進(jìn)一步描述(即一個非關(guān)鍵字屬性值不依賴于另一個非關(guān)鍵字屬性值)一般使用第三范式,避免第三范式2.4 需求分析-圖形工具四、圖形工具1.層次方框圖層次方框圖用樹形結(jié)構(gòu)的一系列多層次的矩形框描繪數(shù)據(jù)的層次結(jié)構(gòu)。樹形結(jié)構(gòu)的頂層是一個單獨的矩形框,它表達(dá)完整的數(shù)據(jù)結(jié)構(gòu),下面的各層矩形框代表這個數(shù)據(jù)的子集,最底層的各
5、個框代表組成這個數(shù)據(jù)的實際數(shù)據(jù)元素(不能再分解的元素)例如:P46頁 圖3-32.4 需求分析-圖形工具2.Warnier圖Warnier圖也用樹形結(jié)構(gòu)描繪信息,且更豐富,能表達(dá)邏輯關(guān)系。例如:P46頁 圖3.42.4 需求分析-圖形工具3.IPO圖IPO圖是輸入/處理/輸出圖的簡稱,能夠方便地描述輸入數(shù)據(jù)、對數(shù)據(jù)的處理和輸出數(shù)據(jù)之間的關(guān)系?;拘问绞窃谧筮叺目蛑辛谐鲇嘘P(guān)的輸入數(shù)據(jù),在中間的框內(nèi)列出主要的處理,在右邊的框內(nèi)列出產(chǎn)生的輸出數(shù)據(jù)。例如:P47頁 圖3.5、圖3.62.4 需求分析五、驗證軟件需求1.驗證軟件需求的四個方面一致性完整性現(xiàn)實性有效性2.驗證軟件需求的方法3.驗證軟件需求
6、的軟件工具2.4 需求分析六、軟件需求說明書(P15)引言任務(wù)概述需求規(guī)定運行環(huán)境規(guī)定2.5 總體設(shè)計-過程一、總體設(shè)計的過程1.設(shè)想供選擇的方案在數(shù)據(jù)流程圖的基礎(chǔ)上,一個邊界一個邊界設(shè)想并列出供選擇的方案。不評價這些供選擇的方案2.5 總體設(shè)計-過程2.選取合理的方案從上一步得到的一系列供選擇的方案中選取若干個合理的方案,通常至少選取低成本、中等成本和高成本的三種方案。根據(jù)系統(tǒng)分析確定的目標(biāo),來判斷哪些方案是合理的。2.5 總體設(shè)計-過程3.推薦最佳方案綜合分析對比各種合理方案的利弊,推薦一個最佳的方案,并為最佳方案制定詳細(xì)的實現(xiàn)計劃。2.5 總體設(shè)計-過程4.功能分解對流程圖進(jìn)一步細(xì)化,進(jìn)
7、行功能分解2.5 總體設(shè)計-過程5.設(shè)計軟件結(jié)構(gòu)軟件結(jié)構(gòu)反映系統(tǒng)中模塊的相互調(diào)用關(guān)系:頂層模塊調(diào)用它的下層模塊以實現(xiàn)程序的完整功能,每個下層模塊再調(diào)用更下層的模塊,最下層的模塊完成最具體的功能。軟件結(jié)構(gòu)通過層次圖或結(jié)構(gòu)圖來描繪,可以直接從數(shù)據(jù)流程圖映射出軟件結(jié)構(gòu)。2.5 總體設(shè)計-過程6.數(shù)據(jù)庫設(shè)計2.5 總體設(shè)計-過程7.制定測試計劃2.5 總體設(shè)計-過程8.書寫文檔文檔包括:系統(tǒng)說明用戶手冊測試計劃詳細(xì)的實現(xiàn)計劃數(shù)據(jù)庫設(shè)計結(jié)果2.5 總體設(shè)計-過程9.審查和復(fù)審先技術(shù)審查后管理審查2.5 總體設(shè)計-模塊二、模塊的概念1.定義具有四種屬性的一組程序語句稱為一個模塊,四種屬性:輸入/輸出、邏輯
8、功能、運行程序、內(nèi)部數(shù)據(jù)。前兩個屬性又稱為外部屬性,后兩個屬性又稱為內(nèi)部屬性。(1)一個模塊的輸入/輸出都是指同一個調(diào)用者。(2)模塊的邏輯功能是指模塊能夠做什么事,表達(dá)了模塊把輸入轉(zhuǎn)換成輸出的功能,可以是單純的輸入/輸出功能。(3)模塊的運行程序指模塊如何用程序?qū)崿F(xiàn)其邏輯功能。2.5 總體設(shè)計-模塊(4)模塊的數(shù)據(jù)指屬于模塊自己的數(shù)據(jù)。2.屬性外部屬性:輸入/輸出、邏輯功能內(nèi)部屬性:運行程序、內(nèi)部數(shù)據(jù)在結(jié)構(gòu)化系統(tǒng)設(shè)計中。人們主要關(guān)心的是模塊的外部屬性,至于內(nèi)部屬性,將在系統(tǒng)實施工作中完成3.大小模塊有大有小,它可以是一個程序,也可以是程序中的一個程序段或者一個子程序。2.5 總體設(shè)計-模塊4
9、.理想模塊(黑箱模塊)理想模塊的特點:(1)每個理想模塊只解決一個問題。(2)每個理想模塊的功能都應(yīng)該明確,使人容易理解。(3)理想模塊之間的聯(lián)結(jié)關(guān)系簡單,具有獨立性。(4)由理想模塊構(gòu)成的系統(tǒng),容易使人理解,易于編程,易于測試,易于修改和維護(hù)。對用戶來說,其感興趣是模塊的功能,而不必去理解模塊內(nèi)部的結(jié)構(gòu)和原理。2.5 總體設(shè)計-模塊5.模塊的理論根據(jù)設(shè)函數(shù)C(x)定義問題x的復(fù)雜程度,函數(shù)E(x)確定解決問題x需要的工作量。對于兩個問題P1和P2,如果:C(P1)C(P2),則顯然有: E(P1)E(P2)根據(jù)人類解決一般問題的經(jīng)驗,有:C(P1+P2)C(P1)+C(P2)進(jìn)而獲得:E(P
10、1+P2)E(P1)+E(P2)2.5 總體設(shè)計-模塊6.模塊的圖形及符號(1)模塊的圖形:用矩形表示。模塊的名稱寫在方框內(nèi),由一個動詞和一個作為賓語的名詞組成。例如:修改庫存(2)模塊間通訊的圖形模塊間通訊有兩種:數(shù)據(jù)通訊、控制通訊。數(shù)據(jù)通訊是一個數(shù)據(jù)流,它表示了一個經(jīng)過處理的數(shù)據(jù)從一個模塊傳向另一個模塊。2.5 總體設(shè)計-模塊控制通訊,只傳送一個標(biāo)志,該標(biāo)志只表達(dá)了處理工作的某種狀態(tài),而不是由被發(fā)送模塊真正進(jìn)行過處理的數(shù)據(jù)。AB模塊間的聯(lián)結(jié)獲得配件庫存量讀庫存記錄模塊間的通訊配件編號庫存量無此配件2.5 總體設(shè)計-模塊(3)模塊間判斷調(diào)用的圖形一個模塊是否調(diào)用某一個從屬模塊,依賴于調(diào)用模塊
11、中判斷的條件。如果條件成立,則產(chǎn)生調(diào)用命令。ABCD2.5 總體設(shè)計-模塊(4)模塊間循環(huán)調(diào)用的圖形指一個模塊需要循環(huán)調(diào)用某一個或若干個從屬模塊。AC2.5 總體設(shè)計-模塊7.模塊設(shè)計的基本原則模塊設(shè)計的基本原則:降低系統(tǒng)中模塊之間的聯(lián)結(jié)程度,提高每個模塊的獨立性、聚合度。(1)模塊間的聯(lián)結(jié)兩個模塊之間的聯(lián)結(jié)有五種形式,按照聯(lián)結(jié)程度由低到高排列為:數(shù)據(jù)聯(lián)結(jié)、特征聯(lián)結(jié)、控制聯(lián)結(jié)、公共聯(lián)結(jié)、內(nèi)容聯(lián)結(jié)。2.5 總體設(shè)計-模塊A.數(shù)據(jù)聯(lián)結(jié)如果兩個模塊間的通訊信息是若干參數(shù),其中每一個參數(shù)都是一個數(shù)據(jù)元素,稱這種聯(lián)結(jié)為數(shù)據(jù)聯(lián)結(jié)。這是模塊之間影響最小的聯(lián)結(jié)關(guān)系。開發(fā)貨單計算金額單價數(shù)量金額2.5 總體設(shè)計
12、-模塊B.特征聯(lián)結(jié)如果兩個模塊都與同一個數(shù)據(jù)結(jié)構(gòu)有關(guān),則稱為特征聯(lián)結(jié)。計算水費和電費計算水費計算電費住戶詳情水費住戶詳情電費模塊之間的特征聯(lián)結(jié)2.5 總體設(shè)計-模塊住戶詳情數(shù)據(jù)結(jié)構(gòu)中包括“本月用水量”、“本月用電量”。上面的“特征聯(lián)結(jié)”圖可改進(jìn)為下面“數(shù)據(jù)聯(lián)結(jié)”圖。計算水量和電費計算水費計算電費水費電費本月用水量本月用電量模塊之間的數(shù)據(jù)聯(lián)結(jié)2.5 總體設(shè)計-模塊C.控制聯(lián)結(jié)如果模塊A向模塊B所傳遞的信息控制了模塊B的內(nèi)部邏輯,那么A和B之間的聯(lián)結(jié)稱為控制聯(lián)結(jié)。控制信息可以看作是一個開關(guān)量,它傳遞了一個控制信息或狀態(tài)的標(biāo)志。控制信息不同于數(shù)據(jù)信息,數(shù)據(jù)信息一般通過處理過程處理被處理的數(shù)據(jù),而控制
13、信息則是控制處理過程中的某些參數(shù)。2.5 總體設(shè)計-模塊當(dāng)要查找的庫存編號找不到時,經(jīng)上級模塊反饋一個控制信息,要求上級模塊打印“無此庫存記錄”錯誤信息。獲得庫存記錄檢索庫存記錄庫存編號庫存量打印“無此庫存記錄”錯誤信息2.5 總體設(shè)計-模塊D.公共聯(lián)結(jié)如果兩個模塊都和同一個公共數(shù)據(jù)域有關(guān),則稱為公共聯(lián)結(jié)。公用聯(lián)結(jié)是一種不良的聯(lián)結(jié)關(guān)系,它給模塊的維護(hù)和修改帶來困難。如公共數(shù)據(jù)要作修改,很難判定有多少模塊應(yīng)用了該公共數(shù)據(jù),故在模塊設(shè)計時,一般不允許有公共聯(lián)結(jié)關(guān)系的模塊存在。ABC公用數(shù)據(jù)2.5 總體設(shè)計-模塊E.內(nèi)容聯(lián)結(jié)(病態(tài)聯(lián)結(jié))如果一個模塊和另一個模塊的內(nèi)部屬性(即運行程序和內(nèi)部數(shù)據(jù))有關(guān),
14、則稱為內(nèi)部聯(lián)結(jié)。例如:模塊A中TRC:模塊B中GO TO TRC模塊A與模塊B存在內(nèi)容聯(lián)結(jié),這是一種最壞的聯(lián)結(jié)。2.5 總體設(shè)計-模塊設(shè)計模塊時,應(yīng)以數(shù)據(jù)聯(lián)結(jié)為主,輔以特征聯(lián)結(jié)與控制聯(lián)結(jié),消除公共聯(lián)結(jié)和內(nèi)容聯(lián)結(jié)。2.5 總體設(shè)計-模塊(2)模塊的聚合模塊的聚合是指一個模塊內(nèi)部的各個組成部分的緊湊性,其處理動作的組合強(qiáng)度。聚合的七種形式:A.功能聚合如果一個模塊內(nèi)部的各組成部分的處理動作全都為執(zhí)行同一個功能而存在,并且只執(zhí)行一個功能,則稱為功能聚合。判斷一個模塊是不是功能聚合,只要看這個模塊是“做什么”,是完成一個具體的任務(wù),還是完成多任務(wù)。2.5 總體設(shè)計-模塊B.順序聚合如果一個模塊內(nèi)部的各
15、個組成部分執(zhí)行的幾個處理動作有這樣的特征:前一個處理動作所產(chǎn)生的輸出數(shù)據(jù)是后一個處理動作的輸入數(shù)據(jù),稱為順序聚合。順序聚合維護(hù)起來不如功能聚合方便,要修改模塊中的一個功能,會影響到同一個模塊中的其他功能。ABC功能1功能22.5 總體設(shè)計-模塊C.通訊聚合如果一個模塊內(nèi)各組成部分的處理動作都使用相同的輸入數(shù)據(jù)或相同的輸出數(shù)據(jù),稱為通訊聚合。獲得配件單價和庫存量配件編號庫存量單價兩個工作:1.按配件編號查詢“數(shù)據(jù)存儲”,獲得單價。2.按配件編號查詢“數(shù)據(jù)存儲”,獲得庫存量。這兩個處理動作都使用相同的輸入數(shù)據(jù),稱為通訊聚合。2.5 總體設(shè)計-模塊D.過程聚合如果一個模塊內(nèi)部的各個組成部分的處理動作
16、各不相同,彼此也沒有聯(lián)系,但他們都受同一個控制流支配,決定他們的執(zhí)行次序,稱為過程聚合。循環(huán)體計算累積事務(wù)記錄累積銷售額累積訂貨量通過循環(huán)體,計算兩種累積數(shù)。2.5 總體設(shè)計-模塊E.暫時聚合如果一個模塊內(nèi)的各組成部分的處理動作和時間有關(guān),則稱為暫時聚合。暫時聚合模塊的處理動作必須在特定的時間內(nèi)完成。例如:程序設(shè)計中的初始化模塊。2.5 總體設(shè)計-模塊F.邏輯聚合如果一個模塊內(nèi)部的各組成部分的處理動作在邏輯上相似,但功能都彼此不同或無關(guān),則稱為邏輯聚合。一個邏輯聚合模塊往往包括若干個邏輯相似的動作,使用時可以選用一個或幾個功能。例如:把編輯各種輸入數(shù)據(jù)的功能放在一個模塊中。2.5 總體設(shè)計-模
17、塊G.機(jī)械聚合如果一個模塊的內(nèi)部各組成部分的處理動作彼此沒有任何聯(lián)系,則稱為機(jī)械聚合。2.5 總體設(shè)計-模塊模塊聚合性的判斷該模塊只能執(zhí)行一個功能嗎?功能聚合模塊內(nèi)各組成部分的關(guān)系如何?是否次序重要嗎?次序重要嗎?邏輯相似嗎?數(shù)據(jù)流控制流兩者都不是是是是否否否順序聚合通訊聚合過程聚合暫時聚合邏輯聚合機(jī)械聚合2.5 總體設(shè)計-模塊七種聚合模塊的性能比較2.5 總體設(shè)計-模塊8.模塊設(shè)計的其他原則(1)模塊的分解分解是指把一個模塊分解成若干個從屬于它的下層模塊。一般按功能分解,分解到成為一個小的功能單一的模塊為止。一般一個模塊內(nèi)包含的語句在3050條左右較好(指高級語言)。2.5 總體設(shè)計-模塊(
18、2)模塊的扇出和扇入模塊的扇出指一個模塊擁有的直屬下級模塊的個數(shù),一般扇出數(shù)控制在7以內(nèi)。模塊的扇入是指一個模塊的直接上級模塊的個數(shù)。在設(shè)計中,扇入系數(shù)大,說明模塊分解得好,通用性強(qiáng),冗余度低。2.5 總體設(shè)計-模塊(3)模塊的控制范圍和判斷作用范圍模塊的控制范圍:本身及其所有下級模塊。模塊的判斷作用范圍:被判斷調(diào)用的模塊。原則:A.對于任何一個內(nèi)部存在判斷調(diào)用的模塊,它的判斷作用的范圍應(yīng)該是其控制范圍的一個子集。B.存在判斷調(diào)用的模塊,所在層次不要與那些屬于判斷作用范圍的模塊所在的層次相隔太遠(yuǎn)。2.5 總體設(shè)計-模塊ABCDEFG模塊G中有一條判斷調(diào)用D的語句,違反第1條原則2.5 總體設(shè)計
19、-模塊ABCDEFG違反第2條原則2.5 總體設(shè)計-模塊ABCDEFG違反第2條原則2.5 總體設(shè)計-模塊ABCDEFG正確2.5 總體設(shè)計-模塊(4)力爭降低模塊接口的復(fù)雜程度模塊接口復(fù)雜是軟件發(fā)生錯誤的一個主要原因。應(yīng)該仔細(xì)設(shè)計模塊接口,使得信息傳遞簡單并且和模塊的功能一致。接口復(fù)雜或不一致(即看起來傳遞的數(shù)據(jù)之間沒有聯(lián)系),是緊聯(lián)結(jié)或低聚合的征兆,應(yīng)該重新分析這個模塊的獨立性。(5)設(shè)計單入口單出口的模塊2.5 總體設(shè)計-模塊(6)模塊功能應(yīng)該可以預(yù)測模塊的功能應(yīng)該能夠預(yù)測,但也要防止模塊功能過分局限。2.5 總體設(shè)計-面向數(shù)據(jù)流的設(shè)計方法三、面向數(shù)據(jù)流的設(shè)計方法(一)概念1.變換流2.
20、事務(wù)流3.設(shè)計過程2.5 總體設(shè)計-面向數(shù)據(jù)流的設(shè)計方法1.變換流外部表示內(nèi)部表示信息輸入流輸出流變換流信息流時間參看圖形,信息沿輸入通路進(jìn)入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)過加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。當(dāng)數(shù)據(jù)流具有這些特征時,這種信息流稱為變化流。2.5 總體設(shè)計-面向數(shù)據(jù)流的設(shè)計方法2.事務(wù)流T事務(wù)事務(wù)中心數(shù)據(jù)沿輸入通路到達(dá)一個處理T,這個處理根據(jù)輸入數(shù)據(jù)的類型在若干個動作序列中選出一個來執(zhí)行。這種“以事務(wù)為中心的”的數(shù)據(jù)流,成為“事務(wù)流”。處理T稱為事務(wù)中心,完成以下任務(wù):接收輸入數(shù)據(jù);分析每個事務(wù)以確定它的類型;根據(jù)事務(wù)類型選取
21、一條活動通路。精化數(shù)據(jù)流程圖流類型區(qū)分事務(wù)中心和數(shù)據(jù)接收通路區(qū)分輸入和輸出分支映射成事務(wù)結(jié)構(gòu)映射成變換結(jié)構(gòu)運用模塊設(shè)計規(guī)則,精化軟件結(jié)構(gòu)導(dǎo)出接口描述和全程數(shù)據(jù)結(jié)構(gòu)復(fù)查詳細(xì)設(shè)計事務(wù)分析變換分析事務(wù)變換面向數(shù)據(jù)流的設(shè)計過程2.5 總體設(shè)計-面向數(shù)據(jù)流的設(shè)計方法(二)變換分析1.復(fù)查基本系統(tǒng)模型復(fù)查的目的是確保系統(tǒng)的輸入數(shù)據(jù)和輸出數(shù)據(jù)符合實際。2.復(fù)查并精華數(shù)據(jù)流程圖3.確定數(shù)據(jù)流程圖具有變換特性還是事務(wù)特性只有當(dāng)遇到有明顯事務(wù)特性的信息流時,才采用事務(wù)分析方法,否則,一般都認(rèn)為是變換流,采用變換分析的方法。2.5 總體設(shè)計-面向數(shù)據(jù)流的設(shè)計方法4.確定輸入流和輸出流的邊界,從而孤立出變換中心(1)
22、檢查“輸入流”的邊界從輸入的數(shù)據(jù)源開始,沿著每一個由數(shù)據(jù)源傳入的數(shù)據(jù)流的移動方向進(jìn)行跟蹤分析,逐個分析它所經(jīng)過的處理邏輯功能。如果僅是傳入的數(shù)據(jù)流作形式上的轉(zhuǎn)換,邏輯上沒有進(jìn)行實際的數(shù)據(jù)處理功能,則這些處理邏輯屬于系統(tǒng)的“輸入處理部分”。順著傳入的數(shù)據(jù)流的移動方向,一直跟蹤到它被真正地處理為止。2.5 總體設(shè)計-面向數(shù)據(jù)流的設(shè)計方法(2)檢查“輸出流”的邊界從輸出結(jié)果的地方開始,逆著每一個傳遞出去的數(shù)據(jù)流,由外向里反方向跟蹤,逐個分析它的處理邏輯功能,一直反方向跟蹤到它被真正地產(chǎn)生出來為止。(3)得到變換中心根據(jù)前兩步的分析結(jié)果,畫出一個閉環(huán)界線,在界線以內(nèi)的就是變換中心。2.5 總體設(shè)計-面
23、向數(shù)據(jù)流的設(shè)計方法5.完成“第一級分解”CmCaCtCe第一級分解的方法2.5 總體設(shè)計-面向數(shù)據(jù)流的設(shè)計方法控制模塊Cm是抽象出來的,它位于軟件結(jié)構(gòu)最頂層,協(xié)調(diào)控制下屬模塊。輸入信息處理控制模塊Ca,協(xié)調(diào)對所有輸入數(shù)據(jù)的接收。變換中心控制模塊Ct,管理對內(nèi)部形式的數(shù)據(jù)的所有操作。輸出信息處理控制模塊Ce,協(xié)調(diào)輸出信息的產(chǎn)生過程。2.5 總體設(shè)計-面向數(shù)據(jù)流的設(shè)計方法6.完成“第二級分解”所謂第二級分解就是把數(shù)據(jù)流程圖中的每個處理映射成軟件結(jié)構(gòu)中一個適當(dāng)?shù)哪K。完成第二級分解的方法是,從變換中心的邊界開始沿著輸入通路向外移動,把輸入通路中每個處理邏輯映射成軟件結(jié)構(gòu)中Ca控制下的一個低層模塊;然
24、后沿輸出通路向外移動,把輸入通路中每個處理邏輯映射成直接或間接受模塊Ce控制的一個低層模塊;最后把變換中心內(nèi)的每個處理映射成受Ct控制的一個模塊。2.5 總體設(shè)計-面向數(shù)據(jù)流的設(shè)計方法ADCBCmCaCBDA第二級分解的方法2.5 總體設(shè)計-面向數(shù)據(jù)流的設(shè)計方法7.使用模塊的設(shè)計原則,對第一次分割得到的軟件結(jié)構(gòu)進(jìn)一步精化。為了得到一個易于實現(xiàn)、易于測試和易于維護(hù)的軟件結(jié)構(gòu),根據(jù)軟件設(shè)計的基本原則和其它啟發(fā)性原則,對初步分割得到的模塊進(jìn)行再分解或合并。2.5 總體設(shè)計-面向數(shù)據(jù)流的設(shè)計方法(三)事務(wù)分析事務(wù)分析的設(shè)計步驟和變換分析的設(shè)計步驟大部分相同或類似,主要差別僅在由數(shù)據(jù)流程圖到軟件結(jié)構(gòu)的映
25、射方法不同。由事務(wù)流映射成的軟件結(jié)構(gòu)包括一個接收分支和一個發(fā)送分支。映射出接收分支結(jié)構(gòu)的方法和變換分析映射出輸入結(jié)構(gòu)的方法相似,即從事務(wù)中心的邊界開始,把沿著接收流通路的處理邏輯映射成模塊。發(fā)送分支的結(jié)構(gòu)包含一個調(diào)度模塊,它控制下層的所有活動模塊;然后把數(shù)據(jù)流程圖中的每一個活動流通路映射成與它的特征相對應(yīng)的結(jié)構(gòu)??偪卣{(diào)度A_CTLB_CTLC_CTL接收通路C通路B通路A通路事務(wù)分析的映射方法2.5 總體設(shè)計-面向數(shù)據(jù)流的設(shè)計方法(四)總結(jié)對于一個大系統(tǒng),常常把變換分析和事務(wù)分析應(yīng)用到同一個數(shù)據(jù)流程圖的不同部分,由此得到的子結(jié)構(gòu)形成“構(gòu)件”,可以利用它們構(gòu)造完整的軟件結(jié)構(gòu)。一般說來,如果數(shù)據(jù)流
26、不具有顯著的事務(wù)特點,最后使用變換分析;反之,如果具有明顯的事務(wù)中心,則應(yīng)該采用事務(wù)分析技術(shù)。2.5 總體設(shè)計-總體設(shè)計說明書四、總體設(shè)計說明書引言總體設(shè)計接口設(shè)計運行設(shè)計系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計系統(tǒng)出錯處理設(shè)計2.6詳細(xì)設(shè)計-基本任務(wù)一、基本任務(wù)回答的關(guān)鍵問題:“怎樣具體地實現(xiàn)這個系統(tǒng)”主要任務(wù)是設(shè)計出程序的“藍(lán)圖”,供程序員日后根據(jù)這個藍(lán)圖編寫出實際的程序代碼。注意:設(shè)計程序的藍(lán)圖,不是具體地編寫程序。設(shè)計程序主要采用結(jié)構(gòu)化的程序設(shè)計方法。2.6詳細(xì)設(shè)計-基本步驟二、基本步驟確定模塊如何實現(xiàn)編寫詳細(xì)設(shè)計說明書制定單元測試計劃詳細(xì)設(shè)計評審2.6詳細(xì)設(shè)計-結(jié)構(gòu)程序設(shè)計三、結(jié)構(gòu)程序設(shè)計1.什么是結(jié)構(gòu)程序
27、設(shè)計結(jié)構(gòu)程序設(shè)計是一種設(shè)計程序的技術(shù),它采用自頂向下逐步求精的設(shè)計方法和單入口單出口的控制結(jié)構(gòu)。2.6詳細(xì)設(shè)計-結(jié)構(gòu)程序設(shè)計三種基本的控制結(jié)構(gòu)ABexpBAFTexpATFexpAFT2.6詳細(xì)設(shè)計-結(jié)構(gòu)程序設(shè)計2.逐步求精的含義詳細(xì)設(shè)計階段逐步求精的含義:把一個模塊的功能逐步分解細(xì)化為一系列具體的處理步驟或某種高級語言的語句??傮w設(shè)計階段逐步求精的含義:把一個復(fù)雜問題的解法分解和細(xì)化成一個由許多模塊組成的層次結(jié)構(gòu)的軟件系統(tǒng)。2.6詳細(xì)設(shè)計-結(jié)構(gòu)程序設(shè)計3.結(jié)構(gòu)程序設(shè)計技術(shù)的優(yōu)越性(1)自頂向下逐步求精的方法符合人類解決復(fù)雜問題的普遍規(guī)律,因此可以顯著提高軟件開發(fā)工程的成功率和生產(chǎn)率。(2)用
28、先全局后局部、先整體后細(xì)節(jié)、先抽象后具體的逐步求精過程開發(fā)出的程序有清晰的層次結(jié)構(gòu),因此容易閱讀和理解。(3)不使用GO TO語句僅使用單入口單出口的控制結(jié)構(gòu),使得程序的靜態(tài)結(jié)構(gòu)和它的動態(tài)執(zhí)行情況比較一致,易于閱讀和理解。2.6詳細(xì)設(shè)計-結(jié)構(gòu)程序設(shè)計(4)控制結(jié)構(gòu)有確定的邏輯模式,編寫程序代碼只限于很少幾種直截了當(dāng)?shù)姆绞?,因此源程序清晰流暢?5)程序清晰和模塊化使得在修改和重新設(shè)計一個軟件時可以重用的代碼量最大。(6)程序的邏輯結(jié)構(gòu)清晰,有利于程序正確性證明。2.6詳細(xì)設(shè)計-詳細(xì)設(shè)計的工具四、詳細(xì)設(shè)計的工具(含義、圖例、評價)1.程序流程圖2.盒圖(NS圖)3.PAD圖4.判定表5.判定樹6
29、.過程設(shè)計語言(PDL)7.模塊開發(fā)文件夾2.6詳細(xì)設(shè)計-詳細(xì)設(shè)計的工具1.程序流程圖(1)程序流程圖又稱為程序框圖,是早期軟件設(shè)計的主要工具。(2)優(yōu)點:對控制流程的描繪很直觀,便于初學(xué)者掌握。(3)缺點:程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過早地考慮程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。2.6詳細(xì)設(shè)計-詳細(xì)設(shè)計的工具程序流程圖中用箭頭代表控制流,因此程序員不受約束,可以完全不顧結(jié)構(gòu)程序設(shè)計的精神,隨意轉(zhuǎn)移控制。程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。2.6詳細(xì)設(shè)計-詳細(xì)設(shè)計的工具2.盒圖(N_S圖)盒圖由Nassi和Shneiderman提出,又稱為N_S圖,它有以下特點:(1)功能
30、域(即一個特定控制結(jié)構(gòu)的作用域)明確,很容易從盒圖上看出。(2)不可能任意轉(zhuǎn)移控制(3)很容易確定局部和全程數(shù)據(jù)的作用域(4)很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)(5)盒圖沒有箭頭,不可以隨意轉(zhuǎn)移控制,不允許違背程序設(shè)計的原則。2.6詳細(xì)設(shè)計-詳細(xì)設(shè)計的工具3.PAD圖PAD圖由日本日立公司在1973年發(fā)明,它用二維樹型結(jié)構(gòu)的圖來表示程序的控制流,比較容易翻譯成程序代碼。主要特點:(1)使用PAD圖設(shè)計的程序必然是結(jié)構(gòu)化程序(2)PAD圖描繪的程序結(jié)構(gòu)十分清晰。(3)用PAD圖表現(xiàn)程序邏輯,易讀、易懂、易記。(4)容易將PAD圖轉(zhuǎn)換成高級語言源程序2.6詳細(xì)設(shè)計-詳細(xì)設(shè)計的工具(5)P
31、AD圖既可用于表示程序邏輯,也可用于描繪數(shù)據(jù)結(jié)構(gòu)。(6)PAD圖的符號支持自頂向下、逐步求精方法的使用。(7)PAD圖面向高級語言。2.6詳細(xì)設(shè)計-詳細(xì)設(shè)計的工具4.判定表判定表能夠清晰地表示復(fù)雜的條件組合與應(yīng)做的動作之間的對應(yīng)關(guān)系,而其它的工具不易表示。一張判定表由四部分組成,左上部列出所有條件,左下部是所有可能做的動作,右上部是表示各種條件組合的一個矩陣,右下部是和每種條件組合相對應(yīng)的動作。判定表的每一列實質(zhì)上是一條規(guī)則,規(guī)定了與特定的條件組合相對應(yīng)的動作。2.6詳細(xì)設(shè)計-詳細(xì)設(shè)計的工具5.判定樹判定樹是判定表的變種,也能清晰地表示復(fù)雜的條件組合與應(yīng)做的動作之間的對應(yīng)關(guān)系。優(yōu)點:形式簡單,
32、不需任何說明,易看出含義,易于掌握和使用。缺點:簡潔性不如判定表,相同的數(shù)據(jù)元素往往要重復(fù)寫多遍,而且越接近樹的葉端重復(fù)次數(shù)越多。2.6詳細(xì)設(shè)計-詳細(xì)設(shè)計的工具6.過程設(shè)計語言PDLPDL也稱為偽碼,是用正文形式表示數(shù)據(jù)和處理過程的設(shè)計工具。PDL具有嚴(yán)格的關(guān)鍵字外部語法,用于定義控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu);另一方面,PDL表示實際操作和條件的內(nèi)部語法通常又是靈活自由的,以便可以適應(yīng)各種工程項目的需要。2.6詳細(xì)設(shè)計-詳細(xì)設(shè)計說明書五、詳細(xì)設(shè)計說明書引言程序系統(tǒng)的組織結(jié)構(gòu)關(guān)鍵程序的設(shè)計說明2.7編碼-程序設(shè)計概述一、程序設(shè)計概述1. 50年代用機(jī)器指令代碼進(jìn)行手工編寫程序當(dāng)時程序設(shè)計是繁雜而又仔細(xì)的勞
33、動,重復(fù)0與1,后期逐漸被用符號指令的匯編程序代替。當(dāng)時評價程序的好壞是指令條數(shù)少,運行速度快,存儲單元少。2.7編碼-程序設(shè)計概述2. 60年代初,第一個高級語言Fortran的出現(xiàn),大大簡化了程序設(shè)計。用高級語言編寫程序,基本與機(jī)器無關(guān),可集中精力于算法本身。隨著計算機(jī)的應(yīng)用推廣而滲透到各學(xué)科和技術(shù)領(lǐng)域,一系列不同程序風(fēng)格和不同服務(wù)對象的專用語言和通用語言大量出現(xiàn),至今已有1000多種。2.7編碼-程序設(shè)計概述3. 70年代初期,大型軟件(如操作系統(tǒng)、數(shù)據(jù)庫)的出現(xiàn),給程序設(shè)計帶來了新的問題。如花費大量的資金和人力編制程序,還有產(chǎn)品的可靠性、維護(hù)、修改和移植等,形成軟件危機(jī)。例:IBM公司
34、的OS/360系統(tǒng),花費了幾千人年的努力,歷盡艱辛,但結(jié)果令人失望。OS/360系統(tǒng)的負(fù)責(zé)人Brooks生動地描述了研制過程中的困難和混亂:“象巨獸在泥潭中作垂死掙扎,掙扎得越猛,泥漿就沾得越多,最后沒有一個野獸能逃脫淹沒在泥潭中得命運程序設(shè)計就象這樣一個泥潭一批批程序員在泥潭中掙扎沒有人料到問題竟會這樣”2.7編碼-程序設(shè)計概述4. 從60年代末開始,出現(xiàn)了許多程序設(shè)計的方法,比較成功或流行的有:結(jié)構(gòu)化的程序設(shè)計、逐步求精的程序設(shè)計、程序的推導(dǎo)技術(shù)、程序變換技術(shù)、面向?qū)ο蟮某绦蛟O(shè)計。如果說70年代、80年代是“結(jié)構(gòu)化的程序設(shè)計”年代,那么90年代則是“面向?qū)ο蟮某绦蛟O(shè)計”的天下。2.7編碼-
35、程序設(shè)計概述總之,軟件的發(fā)展大體上經(jīng)歷了三個階段:程序設(shè)計階段、軟件階段、軟件工程階段。在當(dāng)今軟件工程時代,軟件不再是建立在個別人“手藝”基礎(chǔ)上的、個體或“作坊”生產(chǎn)的“工藝品”,而是以工程的方式批量生產(chǎn)的產(chǎn)品。2.7 編碼-程序設(shè)計語言二、程序設(shè)計語言1.分類機(jī)器語言匯編語言高級語言語言2.7 編碼-程序設(shè)計語言高級語言從應(yīng)用特點分從內(nèi)在特點分基礎(chǔ)語言,如BASIC結(jié)構(gòu)化語言,如PASCAL、C專用語言,如APL系統(tǒng)實現(xiàn)語言,如C靜態(tài)高級語言,如COBOL塊結(jié)構(gòu)高級語言,如PASCAL動態(tài)高級語言,不屬于通用語言2.7 編碼-程序設(shè)計語言2.特點名字說明類型說明初始化程序?qū)ο蟮木植啃猿绦蚰K
36、控制結(jié)構(gòu):順序、分支、循環(huán)異常處理獨立編譯2.7 編碼-程序設(shè)計途徑三、程序設(shè)計途徑1.寫程序的風(fēng)格程序內(nèi)部的文檔:恰當(dāng)?shù)臉?biāo)識符、適當(dāng)?shù)淖⑨尯统绦虻囊曈X組織等。數(shù)據(jù)說明語句構(gòu)造:原則是每個語句都應(yīng)該簡單而直接,并注意以下規(guī)則:不要為了節(jié)省空間而把多個語句寫在同一行。盡量避免復(fù)雜的條件測試盡量減少對“非”條件的測試避免大量使用循環(huán)嵌套和條件嵌套利用括號使邏輯表達(dá)式或算術(shù)表達(dá)式的運算次序清晰直觀。2.7 編碼-程序設(shè)計途徑輸入/輸出:好的設(shè)計原則:(1)對所有輸入數(shù)據(jù)進(jìn)行檢驗(2)檢查輸入項重要組合的合法性(3)保持輸入格式簡單(4)使用數(shù)據(jù)結(jié)束標(biāo)記,不要要求用戶指定數(shù)據(jù)的數(shù)目(5)明確提示交互式
37、輸入的請求,詳細(xì)說明可用的選擇或邊界數(shù)值(6)當(dāng)程序設(shè)計語言對格式有嚴(yán)格要求時,應(yīng)保持輸入格式一致(7)設(shè)計良好的輸出報表(8)給所有輸出數(shù)據(jù)加標(biāo)志。2.7 編碼-程序設(shè)計途徑效率:主要指處理機(jī)時間和存儲器容量兩個方面。提高程序運行時間的原則:(1)寫程序之前先簡化算術(shù)的和邏輯的表達(dá)式(2)仔細(xì)研究嵌套的循環(huán),以確定是否有語句可以從內(nèi)層往外移(3)盡量避免使用多維數(shù)組(4)盡量避免使用指針和復(fù)雜的表(5)使用執(zhí)行時間短的算術(shù)運算(6)不要混合使用不同的數(shù)據(jù)類型(7)盡量使用整數(shù)運算和布爾表達(dá)式存儲效率輸入/輸出的效率2.7 編碼-程序設(shè)計途徑2.程序設(shè)計方法論自頂向下的程序設(shè)計方法自底向上的程
38、序設(shè)計方法3.程序設(shè)計自動化4.程序設(shè)計工具-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A1D5G8KbN
39、eQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWnZr$u(3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+
40、A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMeP
41、hSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w
42、)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%vH9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaLdPgSkVnYq$t*w-E5H9KcNfRiUlXp#
43、s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A1D5G8KbNeQiTlW&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9Lc
44、OgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#r%v(y0B3E6I9LcOgRnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmY*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C
45、4G7JaMePhSkWnZr(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#sz0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$
46、u(x+A2E5H8KcNfQiUlXp#s%v)y5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcN
47、fRiUmXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp#s&v)z0C3
48、F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&wD5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3cNfQiUlXo#s%v)y
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度退定金協(xié)議:旅游度假村預(yù)訂退訂合同
- 2025年度魚塘承包經(jīng)營權(quán)變更及合作開發(fā)協(xié)議
- 二零二五年度庭院租賃房屋院落環(huán)保改造合同
- 2025年度事業(yè)單位聘用合同解除與員工離職后檔案資料交接協(xié)議
- 二零二五年度私營店主與醫(yī)療護(hù)理人員勞動合同范本
- 二零二五年度住宅租賃合同解除與換房事宜處理合同
- 2025版圖書裝訂專用紙張供應(yīng)合同范本3篇
- 2025年度智能家居系統(tǒng)定制與安裝合同協(xié)議書4篇
- 二零二五年度木工雕刻技能培訓(xùn)合同4篇
- 二零二五版智慧城市基礎(chǔ)設(shè)施土建施工與智能控制系統(tǒng)合同范本3篇
- 工業(yè)自動化設(shè)備維護(hù)保養(yǎng)指南
- 《向心力》參考課件4
- 2024至2030年中國膨潤土行業(yè)投資戰(zhàn)略分析及發(fā)展前景研究報告
- 【地理】地圖的選擇和應(yīng)用(分層練) 2024-2025學(xué)年七年級地理上冊同步備課系列(人教版)
- (正式版)CB∕T 4552-2024 船舶行業(yè)企業(yè)安全生產(chǎn)文件編制和管理規(guī)定
- JBT 14588-2023 激光加工鏡頭 (正式版)
- 2024年四川省成都市樹德實驗中學(xué)物理八年級下冊期末質(zhì)量檢測試題含解析
- 九型人格與領(lǐng)導(dǎo)力講義
- 廉潔應(yīng)征承諾書
- 2023年四川省成都市中考物理試卷真題(含答案)
- 泵車述職報告
評論
0/150
提交評論