




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第四章第四章 總體設計總體設計軟件工程(Software Engineering)總體設計總體設計 總體設計總體設計(Summary Design)又稱為概要設計又稱為概要設計或初步設計。通過這個階段的工作將劃分出組成或初步設計。通過這個階段的工作將劃分出組成系統的物理元素系統的物理元素程序程序(Program)、文件、文件(File)、數據庫數據庫(Dada base)、人工過程和文檔、人工過程和文檔(Document)等等,但是每個物理元素仍然處于黑盒子等等,但是每個物理元素仍然處于黑盒子(Black Box)級,這些黑盒子里的具體內容將在以后仔細級,這些黑盒子里的具體內容將在以后仔細設計
2、。設計。 總體設計階段的另一項重要任務是:總體設計階段的另一項重要任務是: 設計軟件的結構設計軟件的結構 確定系統中每個程序是由哪些模塊組成確定系統中每個程序是由哪些模塊組成 確定模塊相互間的關系確定模塊相互間的關系 前一頁總體的設計過程總體的設計過程 軟件設計的概念和原理軟件設計的概念和原理 啟發式規則啟發式規則 圖形工具圖形工具 面向數據流的設計方法面向數據流的設計方法 本章主要內容本章主要內容前一頁前一頁總體的設計過程總體的設計過程設想供選擇的方案設想供選擇的方案 選取合理的方案選取合理的方案 推薦最佳方案推薦最佳方案 功能分解功能分解 設計軟件結構設計軟件結構 數據庫設計數據庫設計 制
3、定測試計劃制定測試計劃 書寫文檔書寫文檔審核和復審審核和復審 前一頁總總體體的的設設計計過過程程設想供選擇的方案 在總體設計階段分析員應該考慮各種在總體設計階段分析員應該考慮各種可能的實現方案可能的實現方案(Project),并且力求從中,并且力求從中選出最佳方案。在總體設計階段開始時只選出最佳方案。在總體設計階段開始時只有系統的邏輯模型,分析員有充分的自由有系統的邏輯模型,分析員有充分的自由分析比較不同的物理實現方案。分析比較不同的物理實現方案。 設想供選擇的方案的一種常用的方法設想供選擇的方案的一種常用的方法是:設想在數據流圖中處理分組的各種可是:設想在數據流圖中處理分組的各種可能的方法,
4、拋棄在技術上行不通的方法,能的方法,拋棄在技術上行不通的方法,余下的方法作為可能實現的策略,并且可余下的方法作為可能實現的策略,并且可以啟發供選擇的物理系統。以啟發供選擇的物理系統。 前一頁總總體體的的設設計計過過程程選取合理方案 通常至少選取低成本、中等成本和高成通常至少選取低成本、中等成本和高成本的三種方案。對每個合理的方案分析員都本的三種方案。對每個合理的方案分析員都應該準備下列四份資料:應該準備下列四份資料: (1)系統流程圖)系統流程圖 (2)組成系統的物理元素的清單)組成系統的物理元素的清單 (3)成本)成本/效益分析效益分析 (4)實現這個系統的進度計劃)實現這個系統的進度計劃
5、前一頁總總體體的的設設計計過過程程推薦最佳方案 分析員應該綜合分析對比各種合理的方案,分析員應該綜合分析對比各種合理的方案,推薦一個最佳的方案,并且為推薦的方案制定推薦一個最佳的方案,并且為推薦的方案制定詳細的實現計劃。詳細的實現計劃。 用戶和有關的技術專家應該認真審查分析用戶和有關的技術專家應該認真審查分析員所推薦的最佳系統,如果該系統確實符合用員所推薦的最佳系統,如果該系統確實符合用戶的需要,并且是在現有條件下完全能夠實現戶的需要,并且是在現有條件下完全能夠實現的,則應該提請使用部門負責人進一步審批。的,則應該提請使用部門負責人進一步審批。在接受分析員所推薦的方案之后,將進入總體在接受分析
6、員所推薦的方案之后,將進入總體設計過程的下一個重要階段設計過程的下一個重要階段結構設計。結構設計。 前一頁總總體體的的設設計計過過程程功能分解 為了最終實現目標系統,必須設計出組成為了最終實現目標系統,必須設計出組成這個系統的所有程序和文件(或數據庫)。對這個系統的所有程序和文件(或數據庫)。對程序(特別是復雜的大型程序)的設計,通常程序(特別是復雜的大型程序)的設計,通常分為兩個階段完成:分為兩個階段完成: 結構設計結構設計(Structure Design) :是總體設:是總體設計階段的任務,確定程序由那些模塊組計階段的任務,確定程序由那些模塊組成,以及這些模塊之間的關系。成,以及這些模塊
7、之間的關系。 過程設計過程設計(Process Design):是詳細設計:是詳細設計階段的任務,確定每個模塊的處理過程。階段的任務,確定每個模塊的處理過程。 前一頁總總體體的的設設計計過過程程設計軟件結構 為確定軟件結構,首先需要從實現角為確定軟件結構,首先需要從實現角度把復雜的功能進一步分解,通常程序中度把復雜的功能進一步分解,通常程序中的一個模塊完成一個適當的子功能。應該的一個模塊完成一個適當的子功能。應該把模塊組織成良好的層次系統,頂層模塊把模塊組織成良好的層次系統,頂層模塊調用它下層模塊以實現程序的完整功能,調用它下層模塊以實現程序的完整功能,每個下層模塊再調用更下層的模塊,從而每個
8、下層模塊再調用更下層的模塊,從而完成程序的一個子功能,最下層的模塊完完成程序的一個子功能,最下層的模塊完成最具體的功能成最具體的功能 。前一頁總總體體的的設設計計過過程程數據庫設計數據庫設計通常包括下述四個步驟數據庫設計通常包括下述四個步驟: (1)模式設計()模式設計(Pattern Design) 模式設計的目的是確定物理數據庫結構。第三范模式設計的目的是確定物理數據庫結構。第三范式的實體及關系數據模型是模式設計過程的輸入,模式的實體及關系數據模型是模式設計過程的輸入,模式設計的主要問題是處理具體的數據庫管理系統的結式設計的主要問題是處理具體的數據庫管理系統的結構約束。構約束。 (2)子模
9、式設計)子模式設計 子模式是用戶使用的數據視圖。子模式是用戶使用的數據視圖。 (3)完整性)完整性(Integrality)和安全性和安全性(Security)設計設計 (4)優化)優化(Optimize) 主要目的是改進模式和子模式以優化數據的存取。主要目的是改進模式和子模式以優化數據的存取。 前一頁總總體體的的設設計計過過程程制定測試計劃 在軟件開發的早期階段考慮測試在軟件開發的早期階段考慮測試(Testing)問題,能促使軟件設計人員問題,能促使軟件設計人員在設計時注意提高軟件的可測試性在設計時注意提高軟件的可測試性 。前一頁總總體體的的設設計計過過程程書寫文檔 1.系統說明系統說明 2
10、.用戶手冊用戶手冊 3.測試計劃測試計劃 4.詳細的實現計劃詳細的實現計劃 5.數據庫設計結果數據庫設計結果 前一頁總總體體的的設設計計過過程程審核和復審 最后應該對總體設計的結果進最后應該對總體設計的結果進行嚴格的技術審查,通過之后再由行嚴格的技術審查,通過之后再由使用部門從管理和應用的角度進行使用部門從管理和應用的角度進行復審。復審。軟件設計的概念和原理軟件設計的概念和原理模塊化模塊化 抽象抽象 信息隱蔽和局部化信息隱蔽和局部化 模塊獨立模塊獨立 前一頁主要內容前一頁軟件設計的概念和原理模塊化 模塊模塊(Modular)是數據說明、可執行語是數據說明、可執行語句等程序對象的集合,它是單獨命
11、名的而且句等程序對象的集合,它是單獨命名的而且可通過名字來訪問。模塊化就是把程序劃分可通過名字來訪問。模塊化就是把程序劃分成若干個模塊,每個模塊完成一個子功能,成若干個模塊,每個模塊完成一個子功能,把這些模塊集總起來組成一個整體,可以完把這些模塊集總起來組成一個整體,可以完成指定的功能滿足問題的要求。成指定的功能滿足問題的要求。 前一頁軟件設計的概念和原理模塊化 設函數設函數C(x)定義問題)定義問題x的復雜程度,的復雜程度,函數函數E(x)確定解決問題)確定解決問題x需要的工作量需要的工作量(時間),對于兩個問題(時間),對于兩個問題p1和和p2,如果,如果 C(p1) C(p2) E(p1
12、) E(p2) C(p1p2) C(P1) + C(p2) E(p1p2) E(p1)+ E(p2) 前一頁模塊化與軟件成本前一頁軟件設計的概念和原理抽 象 人類在認識復雜現象的過程中使用的人類在認識復雜現象的過程中使用的最強有力的思維工具抽象最強有力的思維工具抽象(Abstract)。人們。人們在實踐中認識到,在現實世界中一定事物、在實踐中認識到,在現實世界中一定事物、狀態或過程之間總存在著某些相似的方面狀態或過程之間總存在著某些相似的方面(共性(共性)。把這些相似的方面集中和概括起。把這些相似的方面集中和概括起來,暫時忽略它們之間的差異,這就是抽象。來,暫時忽略它們之間的差異,這就是抽象。
13、前一頁軟件設計的概念和原理信息的隱蔽和局部化 使得一個模塊內包括的信息使得一個模塊內包括的信息(過程和過程和數據)對于不需要這些信息的模塊來說,數據)對于不需要這些信息的模塊來說,是不能訪問的。是不能訪問的。 “隱蔽隱蔽”(Hiding)意味著有效的模塊意味著有效的模塊化可以通過定義一組獨立的模塊而實現,化可以通過定義一組獨立的模塊而實現,這些獨立的模塊彼此間僅僅交換那些為了這些獨立的模塊彼此間僅僅交換那些為了完成系統功能而必須交換的信息。完成系統功能而必須交換的信息。 前一頁軟件設計的概念和原理模塊獨立 模塊獨立模塊獨立(Independence)的概念是模塊化、的概念是模塊化、抽象、信息隱
14、蔽和局部化概念的直接結果。開發抽象、信息隱蔽和局部化概念的直接結果。開發具有獨立功能而且和其他模塊之間沒有過多的相具有獨立功能而且和其他模塊之間沒有過多的相互作用的模塊,就可以做到模塊獨立互作用的模塊,就可以做到模塊獨立 。 第一,有效的模塊化(即具有獨立的模塊)第一,有效的模塊化(即具有獨立的模塊)的軟件比較容易開發出來。的軟件比較容易開發出來。 第二,獨立的模塊比較容易測試和維護。模第二,獨立的模塊比較容易測試和維護。模塊的獨立程度可以由兩個定性標準度量,這兩個塊的獨立程度可以由兩個定性標準度量,這兩個標準分別稱為內聚和耦合,內聚衡量一個模塊內標準分別稱為內聚和耦合,內聚衡量一個模塊內部各
15、個元素彼此結合的緊密程度;耦合衡量不同部各個元素彼此結合的緊密程度;耦合衡量不同模塊彼此間互相依賴(連接)的緊密程度。模塊彼此間互相依賴(連接)的緊密程度。 耦合度可以分為七級:耦合度可以分為七級:非直接藕合非直接藕合數據藕合數據藕合控制藕合控制藕合特征藕合特征藕合外部藕合外部藕合公共藕合公共藕合內容藕合內容藕合藕藕合合度度低低高高軟件設計時應盡量使用數據軟件設計時應盡量使用數據藕合,減少控制藕合,限制藕合,減少控制藕合,限制外部環境藕合和公共數據藕外部環境藕合和公共數據藕合,杜絕內容藕合。合,杜絕內容藕合。耦合度數據耦合數據耦合 (Data Coupling):如果兩:如果兩個模塊彼此間通過
16、參數交換信息,個模塊彼此間通過參數交換信息,而且交換的信息僅僅是數據,那么而且交換的信息僅僅是數據,那么這種耦合稱為數據耦合。這種耦合稱為數據耦合。特征耦合特征耦合 :如果兩個模塊都與:如果兩個模塊都與同一數據結構有關。同一數據結構有關。控制耦合控制耦合(Control Coupling) :如果傳遞的信息中有控制信息,如果傳遞的信息中有控制信息,則這種耦合稱為控制耦合。則這種耦合稱為控制耦合。 公共環境耦合公共環境耦合 (Common Coupling):當兩個或多個模塊通過一個公共數當兩個或多個模塊通過一個公共數據環境相互作用時,它們之間的耦據環境相互作用時,它們之間的耦合稱為公共環境耦合
17、。合稱為公共環境耦合。前一頁 數據耦合是低耦合。系統必須存在這種數據耦合是低耦合。系統必須存在這種耦合,因為只有當某些模塊的輸出數據作為耦合,因為只有當某些模塊的輸出數據作為另一些模塊的輸入數據時,系統才能完成有另一些模塊的輸入數據時,系統才能完成有價值的功能。價值的功能。 內容耦合內容耦合(Contain Coupling):最高程度的耦:最高程度的耦合是內容耦合。一個模塊和合是內容耦合。一個模塊和另一個模塊的內部屬性有關。另一個模塊的內部屬性有關。 原則:盡量使用數據耦合,少用特征耦原則:盡量使用數據耦合,少用特征耦合和控制耦合,限制公共環境耦合的范圍,合和控制耦合,限制公共環境耦合的范圍
18、,完全不用內容耦合完全不用內容耦合 。 c 模塊內聚啟發式規則啟發式規則改進軟件結構提高模塊獨立性改進軟件結構提高模塊獨立性模塊規模應該適中模塊規模應該適中 深度、寬度、扇出和扇入應適當深度、寬度、扇出和扇入應適當 模塊的作用域應在控制域之內模塊的作用域應在控制域之內 盡量降低模塊接口的復雜程度盡量降低模塊接口的復雜程度 設計單入口出口的模塊設計單入口出口的模塊 模塊功能應該可以預測模塊功能應該可以預測 前一頁主要內容軟件結構形態 “形態”指的是系統結構所表現出來的形狀。系統結構的形狀用如下特征來定義:(1)深度:指結構圖控制的層次。(2)寬度:指一層中最大的模塊個數。(3)扇出:指一個模塊直
19、接下屬模塊的個數。(4)扇入:指一個模塊直接上屬模塊的個數。系統的深度能夠粗略地描述系統的規模和復雜度。系統寬度的一個主要影響是扇出。一般認為,扇出的域值大約為6或7。ABXB1CYC3C1C2深度為4寬度為4平均扇出為2圖5.12 軟件結構形態影響范圍和控制范圍 判定的“影響范圍”是指包含“條件依賴”于該判定的處理的全部模塊。一個模塊的“控制范圍”是指模塊本身和它的全體子模塊。控制范圍和影響范圍的設計原則:對于任何判定,影響范圍應該是這個判定所在模塊的控制范圍的一個子集。而最理想的情況是,把影響范圍限制在給出判定的模塊本身和它的直接相連的子模塊中。圖形工具圖形工具層次圖和層次圖和HIPO圖圖
20、 結構圖結構圖 前一頁主要內容前一頁圖形工具層次圖和HIPO圖 層次圖層次圖 用來描繪軟件的層次結構,層用來描繪軟件的層次結構,層次圖適合于在自頂向下設計軟件的過程中次圖適合于在自頂向下設計軟件的過程中使用。使用。 HIPO圖圖 是美國是美國IBM公司發明的層次公司發明的層次圖加圖加“輸入處理輸出圖輸入處理輸出圖”的英文縮寫的英文縮寫為了能使為了能使HIPO圖具有可追蹤性,在圖具有可追蹤性,在H圖圖(層次圖)里除了最頂層的方框之外,每(層次圖)里除了最頂層的方框之外,每個方框都加了編號。個方框都加了編號。 前一頁正文加工系統的層次圖正文加工系統的層次圖前一頁帶編號的層次圖(帶編號的層次圖(H圖
21、)圖)前一頁圖形工具結構圖 Yourdon提出的結構圖是進行軟件結構提出的結構圖是進行軟件結構設計的另一個有力工具在結構圖中通常還用設計的另一個有力工具在結構圖中通常還用帶注釋的箭頭表示模塊調用過程中來回傳遞帶注釋的箭頭表示模塊調用過程中來回傳遞的信息。如果希望進一步標明傳遞的信息是的信息。如果希望進一步標明傳遞的信息是數據還是控制信息,則可以利用注釋箭頭尾數據還是控制信息,則可以利用注釋箭頭尾部的形狀來區分:尾部是部的形狀來區分:尾部是空心圓空心圓表示傳遞的表示傳遞的是數據,是數據,實心圓實心圓表示傳遞的是控制信息。表示傳遞的是控制信息。 前一頁產生最佳解的結構圖前一頁判定為真時調用A為假時
22、調用BM循環調用A、B、C面向數據流的設計方法前一頁 面向數據流的設計方法的目標是給出面向數據流的設計方法的目標是給出設計軟件結構的一個系統化的途徑。設計軟件結構的一個系統化的途徑。 在軟件工程的需求分析階段,信息流在軟件工程的需求分析階段,信息流是一個關鍵,通常用數據流圖描繪信息在是一個關鍵,通常用數據流圖描繪信息在系統中加工和流動的情況。通常所說的結系統中加工和流動的情況。通常所說的結構化設計方法(簡稱構化設計方法(簡稱SD方法),也就是基方法),也就是基于數據流的設計方法。于數據流的設計方法。 面向數據流的設計方法面向數據流的設計方法概念概念 變換流分析設計變換流分析設計 事物流分析設計
23、事物流分析設計混合流分析設計混合流分析設計 設計優化設計優化 前一頁主要內容前一頁面向數據流的設計方法概念 變換流 根據基本系統模型,信息通常以根據基本系統模型,信息通常以“外外部世界部世界”的形式進入軟件系統,經過處理的形式進入軟件系統,經過處理以后再以以后再以“外部世界外部世界”的形式離開系統。的形式離開系統。 信息沿輸入通路進入系統,同時由外信息沿輸入通路進入系統,同時由外部形式變換成內部形式,進入系統的信息部形式變換成內部形式,進入系統的信息通過變換中心,經加工處理以后再沿輸出通過變換中心,經加工處理以后再沿輸出通路變換成外部形式離開軟件系統。當數通路變換成外部形式離開軟件系統。當數據
24、流圖具有這些特征時,這種信息流就叫據流圖具有這些特征時,這種信息流就叫作變換流作變換流 。前一頁變換流圖面向數據流的設計方法前一頁概念 事務流 數據沿輸入通路到達一個處理數據沿輸入通路到達一個處理T,這個處理,這個處理根據輸入數據的類型再若干個動作序列中選出根據輸入數據的類型再若干個動作序列中選出一個來執行。這類數據流應該劃為一類特殊的一個來執行。這類數據流應該劃為一類特殊的數據流,稱為事物流數據流,稱為事物流 (1)接收輸入數據(輸入數據又稱為事務);)接收輸入數據(輸入數據又稱為事務); (2)分析每個事物以確定它的類型;)分析每個事物以確定它的類型; (3)根據事物類型選取一條活動通道。
25、)根據事物類型選取一條活動通道。前一頁事 務 流前一頁概念設計過程前一頁面向數據流的設計方法變換流分析設計 把具有變換流特點的數據流圖按預先確把具有變換流特點的數據流圖按預先確定的模式映射成軟件結構定的模式映射成軟件結構 。 (1)找出變換的中心;)找出變換的中心; (2)設計軟件結構的頂層和第二層;)設計軟件結構的頂層和第二層; (3)設計中下層模塊。)設計中下層模塊。 前一頁面向數據流的設計方法變換流分析設計 設計一個安裝在汽車上的數字儀表板,功設計一個安裝在汽車上的數字儀表板,功能如下:能如下: (1)通過模數轉換實現傳感器和微處理機接口;)通過模數轉換實現傳感器和微處理機接口; (2)
26、在發光二極管面板上顯示數據;)在發光二極管面板上顯示數據; (3)指示每小時英里數()指示每小時英里數(mph),行駛的英里數),行駛的英里數(mpg)等等;)等等; (4)指示加速或減速;)指示加速或減速; (5)超速報警。)超速報警。 前一頁面向數據流的設計方法變換流分析設計第第1步步 復查基本系統模型。復查基本系統模型。第第2步步 復查并精化數據流圖。復查并精化數據流圖。第第3步步 確定數據流圖具有變換特性。確定數據流圖具有變換特性。第第4步步 確定輸入流和輸出流的邊界,從而孤立出變確定輸入流和輸出流的邊界,從而孤立出變 換中心。換中心。第第5步步 完成完成“第一級分解第一級分解”。第第
27、6步步 完成完成“第二級分解第二級分解”。第第7步步 使用設計度量和啟發式規則對第一次分割得使用設計度量和啟發式規則對第一次分割得到的軟件結構進一步精化。到的軟件結構進一步精化。 前一頁數字儀表板數據流圖前一頁確定輸入流和輸出流的邊界前一頁完成第一級的分解前一頁完成第二級的分解前一頁未經精化的結構圖前一頁 精化的軟件結構圖面向事務流的設計方法前一頁事務流的分析設計 事務分析的設計步驟和變換分析的設計步驟大部分相同或類似,主要差別僅在于由數據流圖到軟件結構的映射方法不同。 (1)確定事務處理中心和每條加工路徑; (2)設計事務流的DFD的軟件結構; (3)對處理中心和每條加工路徑細化。 前一頁事務流分析的映射方法前一頁面向混合流的設計方法混合流分析設計 在大型系統中往往既有變換流,也有事在大型系統中往往既有變換流,也有事務流,一般采用變換流為主,事務流為輔的務流,一般采用變換流為主,事務流為輔的原則原則 。 (1)先劃出輸入輸出;)先劃出輸入輸出; (2)設計軟件結構的上層;)設計軟件結構的上層; (3)根據)根據DFD各部分的特征,進行各部分的特征,進行變換流和事務流設計變換流和事務流設計 。前一頁設計優化先使它動起來,先使它動起來, 再使它快起來再使它快起來 。本章內容結束前一頁回首頁本章
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CI 467-2024復合集流體(銅箔)
- T/SHBX 012-2024制藥一次性工藝袋泄漏測試方法壓力衰減法
- 上蔡小學六年級數學試題
- 上海安全管理試題及答案
- 2025新版二手房房屋買賣合同2篇
- 正規版個人租房合同范本4篇
- 臨時工委托合同6篇
- 代理合同-產品代理銷售合同2篇
- 工程返傭合同7篇
- T/ZHCA 029-2024化妝品舒緩功效測試角質形成細胞白介素-8生成抑制法
- 事故隱患內部報告獎勵制度
- 工學云周報范文200字
- 西方文論經典導讀智慧樹知到期末考試答案章節答案2024年浙江大學
- 中國居民膳食指南(全)
- 四川省職工住房補貼實施辦法
- 遼寧醫院明細.xls
- JYC全自動變頻抗干擾介質損耗測試儀
- 報考廣東警官學院考生政審表
- 《加工配方設計》PPT課件.ppt
- 綜合辦公室安全工作職責
- 質量環境及職業健康安全管理手冊
評論
0/150
提交評論