![需求分析-任務(wù)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/21/4d0dfbcb-09be-4db3-8b1d-5b5d2034bfdd/4d0dfbcb-09be-4db3-8b1d-5b5d2034bfdd1.gif)
![需求分析-任務(wù)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/21/4d0dfbcb-09be-4db3-8b1d-5b5d2034bfdd/4d0dfbcb-09be-4db3-8b1d-5b5d2034bfdd2.gif)
![需求分析-任務(wù)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/21/4d0dfbcb-09be-4db3-8b1d-5b5d2034bfdd/4d0dfbcb-09be-4db3-8b1d-5b5d2034bfdd3.gif)
![需求分析-任務(wù)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/21/4d0dfbcb-09be-4db3-8b1d-5b5d2034bfdd/4d0dfbcb-09be-4db3-8b1d-5b5d2034bfdd4.gif)
![需求分析-任務(wù)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/21/4d0dfbcb-09be-4db3-8b1d-5b5d2034bfdd/4d0dfbcb-09be-4db3-8b1d-5b5d2034bfdd5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、2.4 需求分析-任務(wù)一、需求分析的任務(wù)基本任務(wù):準確地回答“系統(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.細化數(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ù)查細化數(shù)據(jù)流程圖有補充修正無補充修正需要分解不需分解需求分析的基本過程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é)校”與“院系”之間的聯(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、.4 需求分析-概念模型和規(guī)范化2.范式 第一范式 每個屬性值都必須是原子值,即僅僅是一個簡單值而不含內(nèi)部結(jié)構(gòu)。 第二范式 滿足第一范式條件,而且每個非關(guān)鍵字屬性都由整個關(guān)鍵字決定(而不是由關(guān)鍵字的一部分來決定)。 第三范式 符合第二范式的條件,每個非關(guān)鍵字屬性都僅由關(guān)鍵字決定,而且一個非關(guān)鍵字屬性不能僅僅是對另一個非關(guān)鍵字屬性的進一步描述(即一個非關(guān)鍵字屬性值不依賴于另一個非關(guān)鍵字屬性值) 一般使用第三范式,避免第三范式2.4 需求分析-圖形工具四、圖形工具1.層次方框圖 層次方框圖用樹形結(jié)構(gòu)的一系列多層次的矩形框描繪數(shù)據(jù)的層次結(jié)構(gòu)。 樹形結(jié)構(gòu)的頂層是一個單獨的矩形框,它表達完整的數(shù)據(jù)結(jié)構(gòu),
5、下面的各層矩形框代表這個數(shù)據(jù)的子集,最底層的各個框代表組成這個數(shù)據(jù)的實際數(shù)據(jù)元素(不能再分解的元素) 例如:P46頁 圖3-32.4 需求分析-圖形工具2.Warnier圖 Warnier圖也用樹形結(jié)構(gòu)描繪信息,且更豐富,能表達邏輯關(guān)系。 例如:P46頁 圖3.42.4 需求分析-圖形工具3.IPO圖 IPO圖是輸入/處理/輸出圖的簡稱,能夠方便地描述輸入數(shù)據(jù)、對數(shù)據(jù)的處理和輸出數(shù)據(jù)之間的關(guān)系。 基本形式是在左邊的框中列出有關(guān)的輸入數(shù)據(jù),在中間的框內(nèi)列出主要的處理,在右邊的框內(nèi)列出產(chǎn)生的輸出數(shù)據(jù)。 例如:P47頁 圖3.5、圖3.62.4 需求分析五、驗證軟件需求1.驗證軟件需求的四個方面 一
6、致性 完整性 現(xiàn)實性 有效性2.驗證軟件需求的方法3.驗證軟件需求的軟件工具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)分析確定的目標,來判斷哪些方案是合理的。2.5 總體設(shè)計-過程3.推薦最佳方案 綜合分析對比各種合理方案的利弊,推薦一個最佳的方案,并為
7、最佳方案制定詳細的實現(xiàn)計劃。2.5 總體設(shè)計-過程4.功能分解 對流程圖進一步細化,進行功能分解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)說明 用戶手冊 測試計劃 詳細的實現(xiàn)計劃 數(shù)據(jù)庫設(shè)計結(jié)果2.5 總體設(shè)計-過程9.審查和復(fù)審 先技術(shù)審查 后管理審查2.5
8、 總體設(shè)計-模塊二、模塊的概念1.定義 具有四種屬性的一組程序語句稱為一個模塊,四種屬性:輸入/輸出、邏輯功能、運行程序、內(nèi)部數(shù)據(jù)。前兩個屬性又稱為外部屬性,后兩個屬性又稱為內(nèi)部屬性。(1)一個模塊的輸入/輸出都是指同一個調(diào)用者。(2)模塊的邏輯功能是指模塊能夠做什么事,表達了模塊把輸入轉(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)實施工作中完
9、成3.大小 模塊有大有小,它可以是一個程序,也可以是程序中的一個程序段或者一個子程序。2.5 總體設(shè)計-模塊4.理想模塊(黑箱模塊) 理想模塊的特點:(1)每個理想模塊只解決一個問題。(2)每個理想模塊的功能都應(yīng)該明確,使人容易理解。(3)理想模塊之間的聯(lián)結(jié)關(guān)系簡單,具有獨立性。(4)由理想模塊構(gòu)成的系統(tǒng),容易使人理解,易于編程,易于測試,易于修改和維護。 對用戶來說,其感興趣是模塊的功能,而不必去理解模塊內(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),則顯
10、然有: E(P1)E(P2)根據(jù)人類解決一般問題的經(jīng)驗,有:C(P1+P2)C(P1)+C(P2)進而獲得:E(P1+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è)計-模塊 控制通訊,只傳送一個標志,該標志只表達了處理工作的某種狀態(tài),而不是由被發(fā)送模塊真正進行過處理的數(shù)據(jù)。AB模塊間的聯(lián)結(jié)獲得配件庫存量讀庫存記錄模塊間的
11、通訊配件編號庫存量無此配件2.5 總體設(shè)計-模塊(3)模塊間判斷調(diào)用的圖形 一個模塊是否調(diào)用某一個從屬模塊,依賴于調(diào)用模塊中判斷的條件。如果條件成立,則產(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ù),
12、其中每一個參數(shù)都是一個數(shù)據(jù)元素,稱這種聯(lián)結(jié)為數(shù)據(jù)聯(lián)結(jié)。這是模塊之間影響最小的聯(lián)結(jié)關(guān)系。開發(fā)貨單計算金額單價數(shù)量金額2.5 總體設(shè)計-模塊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é)”圖可改進為下面“數(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é)。
13、 控制信息可以看作是一個開關(guān)量,它傳遞了一個控制信息或狀態(tài)的標志??刂菩畔⒉煌跀?shù)據(jù)信息,數(shù)據(jù)信息一般通過處理過程處理被處理的數(shù)據(jù),而控制信息則是控制處理過程中的某些參數(shù)。2.5 總體設(shè)計-模塊 當要查找的庫存編號找不到時,經(jīng)上級模塊反饋一個控制信息,要求上級模塊打印“無此庫存記錄”錯誤信息。獲得庫存記錄檢索庫存記錄庫存編號庫存量打印“無此庫存記錄”錯誤信息2.5 總體設(shè)計-模塊D.公共聯(lián)結(jié) 如果兩個模塊都和同一個公共數(shù)據(jù)域有關(guān),則稱為公共聯(lián)結(jié)。 公用聯(lián)結(jié)是一種不良的聯(lián)結(jié)關(guān)系,它給模塊的維護和修改帶來困難。如公共數(shù)據(jù)要作修改,很難判定有多少模塊應(yīng)用了該公共數(shù)據(jù),故在模塊設(shè)計時,一般不允許有公共
14、聯(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),則稱為內(nèi)部聯(lián)結(jié)。 例如:模塊A中TRC:模塊B中GO TO TRC 模塊A與模塊B存在內(nèi)容聯(lián)結(jié),這是一種最壞的聯(lián)結(jié)。2.5 總體設(shè)計-模塊聯(lián)結(jié)方式對連鎖反應(yīng)的影響可修改性可讀性通用性數(shù)據(jù)聯(lián)結(jié) 弱好好好特征聯(lián)結(jié) 弱中中中控制聯(lián)結(jié) 中不好不好不好公共聯(lián)結(jié) 強不好最壞最壞內(nèi)容聯(lián)結(jié) 最強最壞最壞最壞設(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)部的各個組成部分的緊
15、湊性,其處理動作的組合強度。 聚合的七種形式:A.功能聚合 如果一個模塊內(nèi)部的各組成部分的處理動作全都為執(zhí)行同一個功能而存在,并且只執(zhí)行一個功能,則稱為功能聚合。 判斷一個模塊是不是功能聚合,只要看這個模塊是“做什么”,是完成一個具體的任務(wù),還是完成多任務(wù)。2.5 總體設(shè)計-模塊B.順序聚合 如果一個模塊內(nèi)部的各個組成部分執(zhí)行的幾個處理動作有這樣的特征:前一個處理動作所產(chǎn)生的輸出數(shù)據(jù)是后一個處理動作的輸入數(shù)據(jù),稱為順序聚合。 順序聚合維護起來不如功能聚合方便,要修改模塊中的一個功能,會影響到同一個模塊中的其他功能。ABC功能1功能22.5 總體設(shè)計-模塊C.通訊聚合 如果一個模塊內(nèi)各組成部分的
16、處理動作都使用相同的輸入數(shù)據(jù)或相同的輸出數(shù)據(jù),稱為通訊聚合。獲得配件單價和庫存量配件編號庫存量單價兩個工作:1.按配件編號查詢“數(shù)據(jù)存儲”,獲得單價。2.按配件編號查詢“數(shù)據(jù)存儲”,獲得庫存量。這兩個處理動作都使用相同的輸入數(shù)據(jù),稱為通訊聚合。2.5 總體設(shè)計-模塊D.過程聚合 如果一個模塊內(nèi)部的各個組成部分的處理動作各不相同,彼此也沒有聯(lián)系,但他們都受同一個控制流支配,決定他們的執(zhí)行次序,稱為過程聚合。循環(huán)體計算累積事務(wù)記錄累積銷售額累積訂貨量通過循環(huán)體,計算兩種累積數(shù)。2.5 總體設(shè)計-模塊E.暫時聚合 如果一個模塊內(nèi)的各組成部分的處理動作和時間有關(guān),則稱為暫時聚合。暫時聚合模塊的處理動作
17、必須在特定的時間內(nèi)完成。 例如:程序設(shè)計中的初始化模塊。2.5 總體設(shè)計-模塊F.邏輯聚合 如果一個模塊內(nèi)部的各組成部分的處理動作在邏輯上相似,但功能都彼此不同或無關(guān),則稱為邏輯聚合。 一個邏輯聚合模塊往往包括若干個邏輯相似的動作,使用時可以選用一個或幾個功能。 例如:把編輯各種輸入數(shù)據(jù)的功能放在一個模塊中。2.5 總體設(shè)計-模塊G.機械聚合 如果一個模塊的內(nèi)部各組成部分的處理動作彼此沒有任何聯(lián)系,則稱為機械聚合。2.5 總體設(shè)計-模塊 模塊聚合性的判斷該模塊只能執(zhí)行一個功能嗎?功能聚合模塊內(nèi)各組成部分的關(guān)系如何?是否次序重要嗎?次序重要嗎?邏輯相似嗎?數(shù)據(jù)流控制流兩者都不是是是是否否否順序聚
18、合通訊聚合過程聚合暫時聚合邏輯聚合機械聚合2.5 總體設(shè)計-模塊 七種聚合模塊的性能比較聚合形式聚合形式可修改性可讀性 通用性黑箱程度聚合性功能聚合好好好好黑箱10順序聚合好好好中不完全黑9通訊聚合中中中不好不完全黑7過程聚合中中中不好半透明5暫時聚合不好不好中最壞半透明3邏輯聚合最壞最壞不好最壞透明1機械聚合最壞最壞最壞最壞透明02.5 總體設(shè)計-模塊8.模塊設(shè)計的其他原則(1)模塊的分解 分解是指把一個模塊分解成若干個從屬于它的下層模塊。 一般按功能分解,分解到成為一個小的功能單一的模塊為止。 一般一個模塊內(nèi)包含的語句在3050條左右較好(指高級語言)。2.5 總體設(shè)計-模塊(2)模塊的扇
19、出和扇入 模塊的扇出指一個模塊擁有的直屬下級模塊的個數(shù),一般扇出數(shù)控制在7以內(nèi)。 模塊的扇入是指一個模塊的直接上級模塊的個數(shù)。 在設(shè)計中,扇入系數(shù)大,說明模塊分解得好,通用性強,冗余度低。2.5 總體設(shè)計-模塊(3)模塊的控制范圍和判斷作用范圍 模塊的控制范圍:本身及其所有下級模塊。 模塊的判斷作用范圍:被判斷調(diào)用的模塊。 原則:原則:A.對于任何一個內(nèi)部存在判斷調(diào)用的模塊,它的判斷作用的范圍應(yīng)該是其控制范圍的一個子集。B.存在判斷調(diào)用的模塊,所在層次不要與那些屬于判斷作用范圍的模塊所在的層次相隔太遠。2.5 總體設(shè)計-模塊ABCDEFG模塊G中有一條判斷調(diào)用D的語句,違反第1條原則2.5 總
20、體設(shè)計-模塊ABCDEFG違反第2條原則2.5 總體設(shè)計-模塊ABCDEFG違反第2條原則2.5 總體設(shè)計-模塊ABCDEFG正確2.5 總體設(shè)計-模塊(4)力爭降低模塊接口的復(fù)雜程度 模塊接口復(fù)雜是軟件發(fā)生錯誤的一個主要原因。應(yīng)該仔細設(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
21、.變換流2.事務(wù)流3.設(shè)計過程2.5 總體設(shè)計-面向數(shù)據(jù)流的設(shè)計方法1.變換流外部表示內(nèi)部表示信息輸入流輸出流變換流信息流時間參看圖形,信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)過加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。當數(shù)據(jù)流具有這些特征時,這種信息流稱為變化流。2.5 總體設(shè)計-面向數(shù)據(jù)流的設(shè)計方法2.事務(wù)流T事務(wù)事務(wù)中心數(shù)據(jù)沿輸入通路到達一個處理T,這個處理根據(jù)輸入數(shù)據(jù)的類型在若干個動作序列中選出一個來執(zhí)行。這種“以事務(wù)為中心的”的數(shù)據(jù)流,成為“事務(wù)流”。處理T稱為事務(wù)中心,完成以下任務(wù):接收輸入數(shù)據(jù);分析每個事務(wù)以確定它的類型;根據(jù)
22、事務(wù)類型選取一條活動通路。精化數(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ù)查詳細設(shè)計事務(wù)分析變換分析事務(wù)變換面向數(shù)據(jù)流的設(shè)計過程面向數(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ù)特性 只有當遇到有明顯事務(wù)特性的信息流時,才采用事務(wù)分析方法,否則,一般都認為是變換流,采用變換分析的方法。2.5 總體設(shè)計-面向數(shù)據(jù)流的設(shè)計方法4.確定輸入流和輸
23、出流的邊界,從而孤立出變換中心(1)檢查“輸入流”的邊界 從輸入的數(shù)據(jù)源開始,沿著每一個由數(shù)據(jù)源傳入的數(shù)據(jù)流的移動方向進行跟蹤分析,逐個分析它所經(jīng)過的處理邏輯功能。如果僅是傳入的數(shù)據(jù)流作形式上的轉(zhuǎn)換,邏輯上沒有進行實際的數(shù)據(jù)處理功能,則這些處理邏輯屬于系統(tǒng)的“輸入處理部分”。順著傳入的數(shù)據(jù)流的移動方向,一直跟蹤到它被真正地處理為止。2.5 總體設(shè)計-面向數(shù)據(jù)流的設(shè)計方法(2)檢查“輸出流”的邊界 從輸出結(jié)果的地方開始,逆著每一個傳遞出去的數(shù)據(jù)流,由外向里反方向跟蹤,逐個分析它的處理邏輯功能,一直反方向跟蹤到它被真正地產(chǎn)生出來為止。(3)得到變換中心 根據(jù)前兩步的分析結(jié)果,畫出一個閉環(huán)界線,在界
24、線以內(nèi)的就是變換中心。2.5 總體設(shè)計-面向數(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)中一個適當?shù)哪K。 完成第二級分解的方法是,從變換中心的邊界開始沿著輸入通路向外移動,把輸入通路中每
25、個處理邏輯映射成軟件結(jié)構(gòu)中Ca控制下的一個低層模塊; 然后沿輸出通路向外移動,把輸入通路中每個處理邏輯映射成直接或間接受模塊Ce控制的一個低層模塊; 最后把變換中心內(nèi)的每個處理映射成受Ct控制的一個模塊。2.5 總體設(shè)計-面向數(shù)據(jù)流的設(shè)計方法ADCBCmCaCBDA第二級分解的方法2.5 總體設(shè)計-面向數(shù)據(jù)流的設(shè)計方法7.使用模塊的設(shè)計原則,對第一次分割得到的軟件結(jié)構(gòu)進一步精化。 為了得到一個易于實現(xiàn)、易于測試和易于維護的軟件結(jié)構(gòu),根據(jù)軟件設(shè)計的基本原則和其它啟發(fā)性原則,對初步分割得到的模塊進行再分解或合并。2.5 總體設(shè)計-面向數(shù)據(jù)流的設(shè)計方法(三)事務(wù)分析 事務(wù)分析的設(shè)計步驟和變換分析的設(shè)
26、計步驟大部分相同或類似,主要差別僅在由數(shù)據(jù)流程圖到軟件結(jié)構(gòu)的映射方法不同。由事務(wù)流映射成的軟件結(jié)構(gòu)包括一個接收分支和一個發(fā)送分支。 映射出接收分支接收分支結(jié)構(gòu)的方法和變換分析映射出輸入結(jié)構(gòu)的方法相似,即從事務(wù)中心的邊界開始,把沿著接收流通路的處理邏輯映射成模塊。 發(fā)送分支發(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ù)流程圖的不同部分
27、,由此得到的子結(jié)構(gòu)形成“構(gòu)件”,可以利用它們構(gòu)造完整的軟件結(jié)構(gòu)。 一般說來,如果數(shù)據(jù)流不具有顯著的事務(wù)特點,最后使用變換分析;反之,如果具有明顯的事務(wù)中心,則應(yīng)該采用事務(wù)分析技術(shù)。2.5 總體設(shè)計-總體設(shè)計說明書四、總體設(shè)計說明書1. 引言2. 總體設(shè)計3. 接口設(shè)計4. 運行設(shè)計5. 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計6. 系統(tǒng)出錯處理設(shè)計2.6詳細設(shè)計-基本任務(wù)一、基本任務(wù) 回答的關(guān)鍵問題:“怎樣具體地實現(xiàn)這個系統(tǒng)” 主要任務(wù)是設(shè)計出程序的“藍圖”,供程序員日后根據(jù)這個藍圖編寫出實際的程序代碼。 注意:設(shè)計程序的藍圖,不是具體地編寫程序。 設(shè)計程序主要采用結(jié)構(gòu)化的程序設(shè)計方法。2.6詳細設(shè)計-基本步驟二、基
28、本步驟 確定模塊如何實現(xiàn) 編寫詳細設(shè)計說明書 制定單元測試計劃 詳細設(shè)計評審2.6詳細設(shè)計-結(jié)構(gòu)程序設(shè)計三、結(jié)構(gòu)程序設(shè)計1.什么是結(jié)構(gòu)程序設(shè)計 結(jié)構(gòu)程序設(shè)計是一種設(shè)計程序的技術(shù),它采用自頂向下逐步求精的設(shè)計方法和單入口單出口的控制結(jié)構(gòu)。2.6詳細設(shè)計-結(jié)構(gòu)程序設(shè)計 三種基本的控制結(jié)構(gòu)ABexpBAFTexpATFexpAFT2.6詳細設(shè)計-結(jié)構(gòu)程序設(shè)計2.逐步求精的含義 詳細設(shè)計階段逐步求精的含義:把一個模塊的功能逐步分解細化為一系列具體的處理步驟或某種高級語言的語句。 總體設(shè)計階段逐步求精的含義:把一個復(fù)雜問題的解法分解和細化成一個由許多模塊組成的層次結(jié)構(gòu)的軟件系統(tǒng)。2.6詳細設(shè)計-結(jié)構(gòu)程序
29、設(shè)計3.結(jié)構(gòu)程序設(shè)計技術(shù)的優(yōu)越性(1)自頂向下逐步求精的方法符合人類解決復(fù)雜問題的普遍規(guī)律,因此可以顯著提高軟件開發(fā)工程的成功率和生產(chǎn)率。(2)用先全局后局部、先整體后細節(jié)、先抽象后具體的逐步求精過程開發(fā)出的程序有清晰的層次結(jié)構(gòu),因此容易閱讀和理解。(3)不使用GO TO語句僅使用單入口單出口的控制結(jié)構(gòu),使得程序的靜態(tài)結(jié)構(gòu)和它的動態(tài)執(zhí)行情況比較一致,易于閱讀和理解。2.6詳細設(shè)計-結(jié)構(gòu)程序設(shè)計(4)控制結(jié)構(gòu)有確定的邏輯模式,編寫程序代碼只限于很少幾種直截了當?shù)姆绞?,因此源程序清晰流暢?5)程序清晰和模塊化使得在修改和重新設(shè)計一個軟件時可以重用的代碼量最大。(6)程序的邏輯結(jié)構(gòu)清晰,有利于程序
30、正確性證明。2.6詳細設(shè)計-詳細設(shè)計的工具四、詳細設(shè)計的工具(含義、圖例、評價)1.程序流程圖2.盒圖(NS圖)3.PAD圖4.判定表5.判定樹6.過程設(shè)計語言(PDL)7.模塊開發(fā)文件夾2.6詳細設(shè)計-詳細設(shè)計的工具1.程序流程圖(1)程序流程圖又稱為程序框圖,是早期軟件設(shè)計的主要工具。(2)優(yōu)點: 對控制流程的描繪很直觀,便于初學(xué)者掌握。(3)缺點: 程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過早地考慮程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。2.6詳細設(shè)計-詳細設(shè)計的工具 程序流程圖中用箭頭代表控制流,因此程序員不受約束,可以完全不顧結(jié)構(gòu)程序設(shè)計的精神,隨意轉(zhuǎn)移控制。 程序流程圖
31、不易表示數(shù)據(jù)結(jié)構(gòu)。2.6詳細設(shè)計-詳細設(shè)計的工具2.盒圖(N_S圖) 盒圖由Nassi和Shneiderman提出,又稱為N_S圖,它有以下特點:(1)功能域(即一個特定控制結(jié)構(gòu)的作用域)明確,很容易從盒圖上看出。(2)不可能任意轉(zhuǎn)移控制(3)很容易確定局部和全程數(shù)據(jù)的作用域(4)很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)(5)盒圖沒有箭頭,不可以隨意轉(zhuǎn)移控制,不允許違背程序設(shè)計的原則。2.6詳細設(shè)計-詳細設(shè)計的工具3.PAD圖 PAD圖由日本日立公司在1973年發(fā)明,它用二維樹型結(jié)構(gòu)的圖來表示程序的控制流,比較容易翻譯成程序代碼。主要特點:(1)使用PAD圖設(shè)計的程序必然是結(jié)構(gòu)化程序(2)
32、PAD圖描繪的程序結(jié)構(gòu)十分清晰。(3)用PAD圖表現(xiàn)程序邏輯,易讀、易懂、易記。(4)容易將PAD圖轉(zhuǎn)換成高級語言源程序2.6詳細設(shè)計-詳細設(shè)計的工具(5)PAD圖既可用于表示程序邏輯,也可用于描繪數(shù)據(jù)結(jié)構(gòu)。(6)PAD圖的符號支持自頂向下、逐步求精方法的使用。(7)PAD圖面向高級語言。2.6詳細設(shè)計-詳細設(shè)計的工具4.判定表 判定表能夠清晰地表示復(fù)雜的條件組合與應(yīng)做的動作之間的對應(yīng)關(guān)系,而其它的工具不易表示。 一張判定表由四部分組成,左上部列出所有條件,左下部是所有可能做的動作,右上部是表示各種條件組合的一個矩陣,右下部是和每種條件組合相對應(yīng)的動作。 判定表的每一列實質(zhì)上是一條規(guī)則,規(guī)定了
33、與特定的條件組合相對應(yīng)的動作。2.6詳細設(shè)計-詳細設(shè)計的工具5.判定樹 判定樹是判定表的變種,也能清晰地表示復(fù)雜的條件組合與應(yīng)做的動作之間的對應(yīng)關(guān)系。 優(yōu)點:形式簡單,不需任何說明,易看出含義,易于掌握和使用。 缺點:簡潔性不如判定表,相同的數(shù)據(jù)元素往往要重復(fù)寫多遍,而且越接近樹的葉端重復(fù)次數(shù)越多。2.6詳細設(shè)計-詳細設(shè)計的工具6.過程設(shè)計語言PDL PDL也稱為偽碼,是用正文形式表示數(shù)據(jù)和處理過程的設(shè)計工具。 PDL具有嚴格的關(guān)鍵字外部語法,用于定義控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu);另一方面,PDL表示實際操作和條件的內(nèi)部語法通常又是靈活自由的,以便可以適應(yīng)各種工程項目的需要。2.6詳細設(shè)計-詳細設(shè)計說明
34、書五、詳細設(shè)計說明書1. 引言2. 程序系統(tǒng)的組織結(jié)構(gòu)3. 關(guān)鍵程序的設(shè)計說明2.7編碼-程序設(shè)計概述一、程序設(shè)計概述1. 50年代用機器指令代碼進行手工編寫程序 當時程序設(shè)計是繁雜而又仔細的勞動,重復(fù)0與1,后期逐漸被用符號指令的匯編程序代替。 當時評價程序的好壞是指令條數(shù)少,運行速度快,存儲單元少。2.7編碼-程序設(shè)計概述2. 60年代初,第一個高級語言Fortran的出現(xiàn),大大簡化了程序設(shè)計。 用高級語言編寫程序,基本與機器無關(guān),可集中精力于算法本身。隨著計算機的應(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)品的可靠性、維護、修改和移植等,形成軟件危機。 例:IBM公司的OS/360系統(tǒng),花費了幾千人年的努力,歷盡艱辛,但結(jié)果令人失望。OS/360系統(tǒng)的負責(zé)人Brooks生動地描述了研制過程中的困難和混亂:“象巨獸在泥潭中作垂死掙扎,掙扎得越猛,泥漿就沾
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑施工合同工程結(jié)算與付款流程規(guī)范
- 2025年度電力系統(tǒng)維護人員勞務(wù)派遣服務(wù)合同樣本
- 2025年度劇院租賃服務(wù)合同樣本
- 廣州2025年廣東廣州市天河區(qū)駿景小學(xué)編外聘用制專任教師招聘筆試歷年參考題庫附帶答案詳解
- 2025年中國光纜盤留架市場調(diào)查研究報告
- 2025至2031年中國靜音大彎軌行業(yè)投資前景及策略咨詢研究報告
- 2025年自動粘貼型圓砂紙項目可行性研究報告
- 2025至2031年中國網(wǎng)絡(luò)電梯行業(yè)投資前景及策略咨詢研究報告
- 2025年玻纖電機纏繞帶項目可行性研究報告
- 2025年油墨防干噴霧劑項目可行性研究報告
- 超長結(jié)構(gòu)及大體積混凝土專項施工方案
- 送達地址確認書(樣本)
- 超前小導(dǎo)管施工作業(yè)指導(dǎo)書
- 中國律師學(xué)完整版課件全套教學(xué)ppt教程
- 守紀律講衛(wèi)生懂禮儀
- 腦控受害者解救方法
- 滁州市城市規(guī)劃管理技術(shù)規(guī)定
- 保理業(yè)務(wù)解決方案
- 圖紙會審答疑
- PCCP安裝與水壓試驗
- 景觀生態(tài)學(xué)教學(xué)大綱(共10頁)
評論
0/150
提交評論