




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
軟件工程導論class總體設計演示文稿當前1頁,總共66頁。優(yōu)選軟件工程導論class總體設計當前2頁,總共66頁。第5章總體設計分析階段“做什么”軟件設計“怎樣做”將分析模型轉換為軟件設計當前3頁,總共66頁。第5章總體設計總體設計的兩項任務:
劃分出組成系統(tǒng)的物理元素----程序、文件、數據庫、人工過程和文檔
設計軟件的結構----確定每個程序的模塊組成及模塊之間的相互關系。當前4頁,總共66頁。第5章總體設計軟件設計是后續(xù)開發(fā)步驟及軟件維護工作基礎如果沒有設計,只能建立一個不穩(wěn)定的系統(tǒng)結構當前5頁,總共66頁。第5章總體設計從工程管理的角度來看,軟件設計分兩步完成總體設計(概要設計),將軟件需求轉化為數據結構和軟件的系統(tǒng)結構。詳細設計,即過程設計。通過對結構表示進行細化,得到軟件詳細的數據結構和算法。當前6頁,總共66頁。5.1設計過程總體設計的過程(兩個主要階段):系統(tǒng)設計:確定系統(tǒng)的具體實現(xiàn)方案。結構設計:確定軟件結構。當前7頁,總共66頁。軟件設計的9個步驟當前8頁,總共66頁。1設想供選擇的方案提出各種可能的實現(xiàn)方案以需求分析階段的數據流圖為出發(fā)點,畫自動化邊界,形成不同的實現(xiàn)系統(tǒng)方案設想把數據流圖中的處理分組的各種可能方法,拋棄在技術上行不通的分組方法余下的分組方法代表可能的實現(xiàn)策略,并且可以啟示供選擇的物理系統(tǒng)當前9頁,總共66頁。2選取合理的方案
從前一步得到的一系列供選擇的方案中選取若干個合理的方案通常至少選取低成本、中等成本和高成本的三種方案在此基礎上分析員對每種方案準備四份文檔:(1)系統(tǒng)流程圖(2)組成系統(tǒng)的物理元素清單(3)成本/效益分析(4)實現(xiàn)這個系統(tǒng)的進度計劃當前10頁,總共66頁。
3推薦最佳方案
綜合分析對比各種合理方案的利弊,從中選出一種自己認為是最理想的方案推薦用戶和技術專家應認真審查所推薦的最佳系統(tǒng)如果該系統(tǒng)確實符合用戶的需要,并且是在現(xiàn)有條件下完全能夠實現(xiàn)的,則應該提請使用部門負責人進一步審批在使用部門的負責人也接受了分析員所推薦的方案之后,將進入總體設計過程的下一個重要階段結構設計當前11頁,總共66頁。4功能分解
首先是進行結構設計,確定系統(tǒng)是由哪些模塊組成的,以及這些模塊之間的關系,確定軟件體系結構、數據結構其次是過程設計,確定每個模塊的處理過程確定詳細的數據結構、算法為確定軟件結構首先需要從實現(xiàn)角度把復雜的功能進一步分用算法描述仔細分析數據流圖中的每個處理,如果一個處理的功能過分復雜,必須把它的功能適當地分解成一系列比較簡單的功能應該使每個功能對大多數程序員而言都是明顯易懂的工具:系統(tǒng)層次圖SystemDesignHierarchy及(輸入/輸出圖)HIPO當前12頁,總共66頁。5設計軟件結構
任務:確定模塊組織成良好的層次系統(tǒng),頂層模塊調用它的下層模塊以實現(xiàn)程序的完整功能,每個下層模塊再調用更下層的模塊,從而完成程序的一個子功能,最下層的模塊完成最具體的功能:方法:
層次圖結構圖面向數據流的設計方法當前13頁,總共66頁。6設計數據庫
任務:在需求分析階段所確定的系統(tǒng)數據需求的基礎上,進一步設計數據庫模式設計:確定數據庫的邏輯結構,常見的數據庫形式有關系、層次或網狀等子模式設計:為系統(tǒng)中各用戶設計出各自的數據視圖存儲模式設計:確定數據庫的空間需求、存儲格式、索引組成等當前14頁,總共66頁。7制定測試計劃
優(yōu)點:
早期階段考慮測試問題,促使軟件設計人員在設計時注意提高軟件的可測試性當前15頁,總共66頁。8書寫文檔
(1)系統(tǒng)說明主要內容系統(tǒng)流程圖:描繪系統(tǒng)構成方案、組成系統(tǒng)的物理元素成本/效益分析對最佳方案的概括描述、精化的數據流圖用層次圖或結構圖描繪的軟件結構用IPO圖或其它工具簡要描述各個模塊的算法模塊間接口關系、建立需求、功能和模塊三者之間的交叉參照關系當前16頁,總共66頁。8書寫文檔用戶手冊:根據總體設計階段的結果,修改更正在需求分析階段產生的初步的用戶手冊測試計劃:包括測試策略,測試方案,預期的測試結果,測試進度計劃等等。詳細的實現(xiàn)計劃數據庫設計結果當前17頁,總共66頁。9審查和復審
技術審查管理復審:部門的負責人從事當前18頁,總共66頁。
5.2設計原理5.2.1模塊化模塊:由邊界元素限定的相鄰程序元素(例如,數據說明,可執(zhí)行的語句)的序列,而且有一個總體標識符代表它模塊化:把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構成一個整體,可以完成指定的功能滿足用戶的需求。當前19頁,總共66頁。
5.2
設計原理模塊化依據:設函數C(x)定義問題x的復雜程度,函數E(x)確定解決問題x需要的工作量(時間)。對于兩個問題P1和P2如果C(P1)>C(P2),顯然E(P1)>E(P2)C(P1+P2)>C(P1)+C(P2)E(P1+P2)>E(P1)+E(P2)結論:如果一個問題由P1和P2兩個問題組合而成,那么它的復雜程度大于分別考慮每個問題時的復雜程度之和,即把復雜的問題分解成許多容易解決的小問題,原來的問題也就容易解決了當前20頁,總共66頁。當前21頁,總共66頁。5.2設計原理模塊化優(yōu)點軟件結構清晰使軟件容易測試和調試,提高軟件的可靠性模塊化能夠提高軟件的可修改性模塊化有助于軟件開發(fā)工程的組織管理。當前22頁,總共66頁。5.2.2抽象定義:抽出事物的本質特性而暫時不考慮它們的細節(jié)。處理復雜問題的方法:忽略細節(jié),分層理解問題,自頂向下層層加細。模塊化可以提出許多抽象的層次,不同的層次用不同的方法解決問題例:開發(fā)一個CAD軟件,實現(xiàn)一個二維繪圖系統(tǒng)的全部功能,供低級計算機輔助設計使用。當前23頁,總共66頁。5.2.2抽象抽象層次I:用問題所處環(huán)境的術語來描述這個軟件。該軟件包括一個計算機繪圖界面,向繪圖員顯示圖形,以及一個數字化儀界面,用以代替繪圖板和丁字尺。所有直線、折線、矩形、圓及曲線的描畫、所有的幾何計算、所有的剖面圖和輔助視圖都可以用這個CAD軟件實現(xiàn)……。當前24頁,總共66頁。5.2.2抽象抽象層次II:任務需求的描述。列出“What”而不是“How”。CADSOFTWARETASKS:userinteractiontask;2-Ddrawingcreationtask;graphicsdisplaytask;drawingfilemanagementtask;END當前25頁,總共66頁。當前26頁,總共66頁。
5.2.3逐步求精定義:為了能集中精力解決主要問題而盡量推遲對問題細節(jié)的考慮。依據:Miller法則----一個人在任何時候都只能把注意力集中在(7±2)個知識塊上原則:把精力集中在與當前開發(fā)階段最相關的那些方面上,而忽略那些對整體解決方案來說雖然是必要的,然而目前還不需要考慮的細節(jié),這些細節(jié)將留到以后再考慮當前27頁,總共66頁。
5.2.3逐步求精實質:把一個時期內必須解決的種種問題按優(yōu)先級排序的技術,確保每個問題都將被解決,而且每個問題都將在適當的時候被解決,一個細化的過程抽象與求精是互補的過程抽象→過程,數據,忽略底層細節(jié)求精→設計中揭示出低層細節(jié)當前28頁,總共66頁。5.2.4信息隱藏和局部化信息隱藏原理:應該這樣設計和確定模塊,使得一個模塊內包含的信息(過程和數據)對于不需要這些信息的模塊來說,是不能訪問的隱藏模塊的實現(xiàn)細節(jié),“細節(jié)隱藏”獨立的模塊彼此間僅僅交換那些為了完成系統(tǒng)功能而必須交換的信息局部化:把一些關系密切的軟件元素物理地放得彼此靠近優(yōu)點:易于軟件的修改,錯誤傳播大大減少當前29頁,總共66頁。5.2.5模塊獨立模塊獨立:每個模塊完成一個相對獨立的子功能,并且和其他模塊之間的關系很簡單獨立性的重要性有效的模塊化的軟件比較容易開發(fā)出來獨立的模塊比較容易測試和維護定性標準度量
內聚Cohesion:衡量一個模塊內部各個元素彼此結合的緊密程度耦合Coupling:衡量不同模塊彼此間互相依賴(連接)的緊密程度當前30頁,總共66頁。1耦合
數據耦合Datacoupling:兩個模塊彼此間通過參數交換信息,而且交換的信息僅僅是數據控制耦合Controlcoupling:傳遞的信息中有控制信息(盡管有時這種控制信息以數據的形式出現(xiàn))特征耦合:當把整個數據結構作為參數傳遞而被調用的模塊只需要使用其中一部分數據元素當前31頁,總共66頁。1耦合
公共環(huán)境耦合Commoncoupling:當兩個或多個模塊通過一個公共數據環(huán)境相互作用時,公共環(huán)境可以是全程變量、共享的通信區(qū)、內存的公共覆蓋區(qū)、任何存儲介質上的文件、物理設備等等內容耦合Contentcoupling:當前32頁,總共66頁??刂岂詈螩ontrolcoupling:傳遞的信息中有控制信息(盡管有時這種控制信息以數據的形式出現(xiàn))當前33頁,總共66頁。當前34頁,總共66頁。公共環(huán)境耦合Commoncoupling:當兩個或多個模塊通過一個公共數據環(huán)境相互作用時,公共環(huán)境可以是全程變量、共享的通信區(qū)、內存的公共覆蓋區(qū)、任何存儲介質上的文件、物理設備等等兩個模塊的公共環(huán)境,下面兩種可能耦合當前35頁,總共66頁。當前36頁,總共66頁。內容耦合ContentCoupling(1)一個模塊訪問另一個模塊的內部數據;(2)一個模塊不通過正常入口而轉到另一個模塊的內部;(3)兩個模塊有一部分程序代碼重疊(只可能出現(xiàn)在匯編程序中);(4)一個模塊有多個入口(這意味著一個模塊有幾種功能)。當前37頁,總共66頁。當前38頁,總共66頁。原則:盡量使用數據耦合,少用控制耦合,限制公共耦合的范圍,完全不用內容耦合
設計原則:盡量使用數據耦合,少用控制耦合,限制公共環(huán)境耦合,完全不用內容耦合。數據耦合控制耦合公共環(huán)境耦合內容耦合低高當前39頁,總共66頁。2內聚
低內聚中內聚高內聚偶然內聚過程內聚順序內聚邏輯內聚通信內聚功能內聚時間內聚設計時應該力求做到高內聚,中內聚也可用實踐表明內聚更重要。當前40頁,總共66頁。當前41頁,總共66頁。當前42頁,總共66頁。高內聚順序內聚Sequentialcohesion:如果一個模塊內的處理元素和同一個功能密切相關,而且這些處理必須順序執(zhí)行(通常一個處理元素的輸出數據作為下一個處理元素的輸入數據)功能內聚Functionalcohesion:如果模塊內所有處理元素屬于一個整體,完成一個單一的功能當前43頁,總共66頁。5.3啟發(fā)規(guī)則人們在開發(fā)計算機軟件的長期實踐中積累了豐富的經驗,總結這些經驗得出了一些啟發(fā)式規(guī)則。這些規(guī)則不是普遍適用的,但在許多場合能給軟件工程師有益的啟示。下面介紹7條啟發(fā)式規(guī)則當前44頁,總共66頁。5.3啟發(fā)規(guī)則1改進軟件結構提高模塊獨立性設計出軟件的初步結構以后,應該審查分析這個結構,通過模塊分解或合并,力求降低耦合提高內聚2模塊規(guī)模應該適中過大不易理解(<60行)太小則接口開銷過大注意分解后不應降低模塊的獨立性當前45頁,總共66頁。5.3啟發(fā)規(guī)則3深度、寬度、扇出和扇入都應適當深度:軟件結構中控制的層數,它往往能粗略地標志一個系統(tǒng)的大小和復雜程度層數過多則應該考慮合并寬度:軟件結構內同一個層次上的模塊總數的最大值寬度越大系統(tǒng)越復雜當前46頁,總共66頁。5.3啟發(fā)規(guī)則3深度、寬度、扇出和扇入都應適當扇出:一個模塊直接控制(調用)的模塊數目扇出過大意味著模塊過分復雜,需要控制和協(xié)調過多的下級模塊扇出過小(例如總是1)也不好3或4(扇出的上限通常是5~9)扇入:直接調用它的上級模塊個數不能違背模塊獨立原理單純追求高扇入當前47頁,總共66頁。3深度、寬度、扇出和扇入都應適當
深度、寬度、扇出和扇入都應適當原則:頂層扇出比較高,中層扇出較少,底層扇入到公共的實用模塊中去(底層模塊有高扇入。當前48頁,總共66頁。4模塊的作用域應該在控制域之內模塊的作用域定義為受該模塊內一個判定影響的所有模塊的集合。模塊的控制域是這個模塊本身以及所有直接或間接從屬于它的模塊的集合例:在圖5.2中模塊A的控制域是A、B、C、D、E、F等模塊的集合當前49頁,總共66頁。5力爭降低模塊接口的復雜程度應該仔細設計模塊接口,使得信息傳遞簡單并且和模塊的功能一致6設計單入口單出口的模塊不要使模塊間出現(xiàn)內容耦合容易理解,維護7模塊功能應該可以預測只要輸入的數據相同就產生同樣的輸出當前50頁,總共66頁。5.4描繪軟件結構的圖形工具層次圖和HIPO圖層次圖功能:用來描繪軟件的層次結構層次圖符號說明:矩形框代表模塊方框間的連線表示調用關系(而不像層次方框圖那樣表示組成關系)適用范圍:自頂向下設計當前51頁,總共66頁。注意:直線表示調用關系當前52頁,總共66頁。層次圖和HIPO圖HIPO(層次圖加輸入/處理/輸出)圖功能:用來描繪軟件的層次結構符號描述:矩形框代表模塊方框間的連線表示調用關系(而不像層次方框圖那樣表示組成關系)在H圖(層次圖)里除了最頂層的方框之外,每個方框都加了編號當前53頁,總共66頁。層次圖和HIPO圖和H圖中每個方框相對應,應該有一張IPO圖描繪這個方框代表的模塊的處理過程。HIPO圖中的每張IPO圖內都應該明顯地標出它所描繪的模塊在H圖中的編號,以便追蹤了解這個模塊在軟件結構中的位置當前54頁,總共66頁。當前55頁,總共66頁。5.4.2結構圖Yourdon提出的結構圖,一個有力工具功能:描繪軟件結構的圖形工具符號描述:方框代表模塊,框內注明模塊的名字或主要功能箭頭(或直線)表示模塊的調用關系帶注釋的箭頭表示模塊調用過程中來回傳遞的信息尾部是空心圓表示傳遞的是數據尾部是實心圓表示傳遞的是控制信息當前56頁,總共66頁。當前57頁,總共66頁。結構圖的附加符號當前58頁,總共66頁。注意:層次圖和結構圖并不嚴格表示模塊的調用次序層次圖和結構圖并不指明什么時候調用下層模塊層次圖作為描繪軟件結構的文檔,結構圖并不合適由層次圖導出結構圖的過程,可以作為檢查設計正確性和評價模塊獨立性的好方法當前59頁,總共66頁。5.5面向數據流的設計方法基本思路:面向數據流的設計方法定義了一些映射,利用這些映射把數據流圖變換成軟件結
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年開封運輸從業(yè)資格證考試技巧
- 農業(yè)設備供貨合同范本
- 勞動合同范本大全
- 2025年運城貨運上崗證模擬考試試題
- 專利侵權檢索合同范本
- 買賣廢鋼材合同范本
- 勞務合同范本無社保
- 臨泉教師合同范本
- 三人合作協(xié)議合同范本
- 交電產品銷售合同范例
- 編輯出版史考試重點整理
- (74)-17.3手性高效液相色譜法
- 淺談新生兒肺透明膜病的影像學診斷
- SMT失效模式分析PFMEA
- 國際貿易地理全套課件
- 家校共育-助孩子成長-家長會課件
- 叉形件工藝及車床夾具設計說明書
- GB/T 5916-2008產蛋后備雞、產蛋雞、肉用仔雞配合飼料
- 《中小學教育懲戒規(guī)則》(試用)試題及答案
- GB/T 23723.1-2009起重機安全使用第1部分:總則
- 安全測試工具、蹭網利器wifiphisher新增漢化版
評論
0/150
提交評論