




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第五章總體設計軟件工程(SoftwareEngineering)2/5/20231總體設計需求分析解決:系統(tǒng)做什么?總體設計解決:系統(tǒng)怎樣做?2/5/20232總體設計總體設計(SummaryDesign)又稱為概要設計或初步設計。通過這個階段的工作將劃分出組成系統(tǒng)的物理元素——程序(Program)、文件(File)、數(shù)據(jù)庫(Dadabase)、人工過程和文檔(Document)等等,但是每個物理元素仍然處于黑盒子(BlackBox)級,這些黑盒子里的具體內(nèi)容將在以后仔細設計??傮w設計階段的另一項重要任務是:設計軟件的結構確定系統(tǒng)中每個程序是由哪些模塊組成確定模塊相互間的關系
前一頁2/5/20233設計過程
設計原理
啟發(fā)式規(guī)則
描述軟件結構的圖形工具
面向數(shù)據(jù)流的設計方法
本章主要內(nèi)容前一頁2/5/20234總體的設計過程總體設計過程分為兩個階段系統(tǒng)設計階段:確定系統(tǒng)的實現(xiàn)方案結構設計階段:確定軟件結構2/5/20235前一頁總體的設計過程設想供選擇的方案
選取合理的方案
推薦最佳方案
功能分解
設計軟件結構
數(shù)據(jù)庫設計
制定測試計劃
書寫文檔審核和復審
2/5/20236前一頁總體的設計過程設想供選擇的方案分析員考慮各種可能的實現(xiàn)方案(Project),并且力求從中選出最佳方案。在總體設計階段開始時只有系統(tǒng)的邏輯模型,分析員有充分的自由分析比較不同的物理實現(xiàn)方案,可以從需求分析得到的數(shù)據(jù)流圖入手。常用的方法是:設想在數(shù)據(jù)流圖中處理分組的各種可能的方法,拋棄在技術上行不通的方法,余下的方法作為可能實現(xiàn)的策略,并且可以啟發(fā)供選擇的物理系統(tǒng)。
2/5/20237前一頁總體的設計過程選取合理方案
從上一步提供的方案中選取,至少選取低成本、中等成本和高成本的三種方案。對每個合理的方案分析員都應該準備下列四份資料:
(1)系統(tǒng)流程圖(2)組成系統(tǒng)的物理元素的清單(3)成本/效益分析(4)實現(xiàn)這個系統(tǒng)的進度計劃
2/5/20238前一頁總體的設計過程推薦最佳方案
分析員應該綜合分析對比各種合理的方案,推薦一個最佳的方案,并且為推薦的方案制定詳細的實現(xiàn)計劃。用戶和有關的技術專家審查推薦的最佳系統(tǒng),如果確定該系統(tǒng)符合用戶的需要,并且是在現(xiàn)有條件下完全能夠?qū)崿F(xiàn)的,則請使用部門負責人進一步審批。在接受分析員所推薦的方案之后,系統(tǒng)設計完成,進入總體設計過程的下一個重要階段——結構設計。
2/5/20239前一頁總體的設計過程功能分解
為了最終實現(xiàn)目標系統(tǒng),必須設計出組成這個系統(tǒng)的所有程序和文件(或數(shù)據(jù)庫)。對程序(特別是復雜的大型程序)的設計,通常分為兩個階段完成:結構設計(StructureDesign):是總體設計階段的任務,確定程序由那些模塊組成,以及這些模塊之間的關系。
過程設計(ProcessDesign):是詳細設計階段的任務,確定每個模塊的處理過程。2/5/202310功能分解
為確定軟件結構,首先需要從實現(xiàn)角度把復雜的功能進一步分解。功能分解導致數(shù)據(jù)流圖進一步細化,同時使用圖形工具描述算法。2/5/202311前一頁總體的設計過程設計軟件結構即結構設計,包括確定系統(tǒng)各模塊間的關系。通常程序中的一個模塊完成一個適當?shù)淖庸δ?,而一個程序包含若干個模塊,因此考慮把模塊組織成良好的層次系統(tǒng)。頂層模塊調(diào)用它下層模塊以實現(xiàn)程序的完整功能,每個下層模塊再調(diào)用更下層的模塊,從而完成程序的一個子功能,最下層的模塊完成最具體的功能。2/5/202312設計軟件結構頂層模塊調(diào)用它下層模塊以實現(xiàn)程序的完整功能,每個下層模塊再調(diào)用更下層的模塊,從而完成程序的一個子功能,最下層的模塊完成最具體的功能。軟件結構可以用層次圖或結構圖表示。有些軟件的結構可以通過細化的數(shù)據(jù)流圖映射得到。2/5/202313前一頁總體的設計過程數(shù)據(jù)庫設計對于需要使用數(shù)據(jù)庫的系統(tǒng),工程師需要對數(shù)據(jù)庫進行設計。2/5/202314前一頁總體的設計過程制定測試計劃在軟件開發(fā)的早期階段考慮測試(Testing)問題,能促使軟件設計人員在設計時注意提高軟件的可測試性。2/5/202315前一頁總體的設計過程書寫文檔
1.系統(tǒng)說明2.用戶手冊3.測試計劃4.詳細的實現(xiàn)計劃5.數(shù)據(jù)庫設計結果
2/5/202316前一頁總體的設計過程審核和復審
最后應該對總體設計的結果進行嚴格的技術審查,通過之后再由使用部門從管理和應用的角度進行復審。2/5/202317軟件設計的概念和原理模塊化
抽象
逐步求精信息隱蔽和局部化
模塊獨立
前一頁主要內(nèi)容2/5/202318前一頁軟件設計的概念和原理模塊化
模塊(Modular)是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο蟮募?,它是單獨命名的而且可通過名字來訪問。模塊化就是把程序劃分成若干個模塊,每個模塊完成一個子功能,把這些模塊集總起來組成一個整體,可以完成指定的功能滿足問題的要求。
2/5/202319前一頁軟件設計的概念和原理模塊化
設函數(shù)C(x)定義問題x的復雜程度,函數(shù)E(x)確定解決問題x需要的工作量(時間),對于兩個問題p1和p2,IfC(p1)>C(p2)ThenE(p1)>E(p2)C(p1+p2)>C(P1)+C(p2)E(p1+p2)>E(p1)+E(p2)
2/5/202320前一頁模塊化與軟件成本2/5/202321前一頁軟件設計的概念和原理抽象
人類在認識復雜現(xiàn)象的過程中使用的最強有力的思維工具抽象(Abstract)。人們在實踐中認識到,在現(xiàn)實世界中一定事物、狀態(tài)或過程之間總存在著某些相似的方面(共性)。把這些相似的方面集中和概括起來,暫時忽略它們之間的差異,這就是抽象。2/5/202322抽象處理復雜系統(tǒng)的唯一有效的方法是用層次的方式構造和分析它。2/5/202323逐步求精逐步求精和模塊化的概念,與抽象是密切相關的。如軟件工程的每一步都是對軟件解法的抽象層次的一次精化??尚行苑治鲭A段,軟件作為完整的部件;需求階段,軟件解法使用熟悉的問題描述;從總體設計到詳細設計,抽象程度降低,逐步精化。抽象與求精互補。2/5/202324逐步求精定義:為了能集中精力解決主要問題而盡量推遲對問題細節(jié)的考慮。原因:人類認知過程的局限——Miller法則
一個人在任何時候都只能把注意力集中在(7+2)個知識塊上。
逐步求精的效果,把注意力集中在與當前開發(fā)最相關的問題上,忽略暫時不需要考慮的細節(jié)。2/5/202325前一頁軟件設計的概念和原理信息的隱蔽和局部化
信息隱藏:使得一個模塊內(nèi)包括的信息(過程和數(shù)據(jù))對于不需要這些信息的模塊來說,是不能訪問的。局部化:把一些關系密切的軟件元素物理地放得彼此靠近。
“隱蔽”(Hiding)意味著有效的模塊化可以通過定義一組獨立的模塊而實現(xiàn),這些獨立的模塊彼此間僅僅交換那些為了完成系統(tǒng)功能而必須交換的信息。2/5/202326前一頁模塊獨立
模塊獨立(Independence)的概念是模塊化、抽象、信息隱蔽和局部化概念的直接結果。開發(fā)具有獨立功能而且和其他模塊之間沒有過多的相互作用的模塊,就可以做到模塊獨立。模塊獨立性的優(yōu)點:第一,有效的模塊化(即具有獨立的模塊)的軟件比較容易開發(fā)出來。第二,獨立的模塊比較容易測試和維護。2/5/202327模塊獨立模塊的獨立程度可以由兩個定性標準度量,這兩個標準分別稱為內(nèi)聚和耦合,內(nèi)聚衡量一個模塊內(nèi)部各個元素彼此結合的緊密程度;耦合衡量不同模塊彼此間互相依賴(連接)的緊密程度。
2/5/202328前一頁軟件設計的概念和原理模塊獨立–耦合耦合
(Coupling)耦合是對一個軟件結構內(nèi)不同模塊之間互聯(lián)程度的度量。在軟件設計時應該追求松散耦合的系統(tǒng)。如果兩個模塊中的每一個都能獨立地工作而不需要另一個模塊地存在,那么它們彼此完全獨立,這意味著模塊間無任何連接,耦合程度最低。2/5/202329前一頁幾種類型的耦合模塊獨立–耦合數(shù)據(jù)耦合
(DataCoupling):如果兩個模塊彼此間通過參數(shù)交換信息,而且交換的信息僅僅是數(shù)據(jù),那么這種耦合稱為數(shù)據(jù)耦合??刂岂詈?ControlCoupling):如果傳遞的信息中有控制信息,則這種耦合稱為控制耦合。
數(shù)據(jù)耦合是低耦合。系統(tǒng)必須存在這種耦合,因為只有當某些模塊的輸出數(shù)據(jù)作為另一些模塊的輸入數(shù)據(jù)時,系統(tǒng)才能完成有價值的功能。
2/5/202330前一頁模塊獨立–耦合公共環(huán)境耦合
(CommonCoupling):當兩個或多個模塊通過一個公共數(shù)據(jù)環(huán)境相互作用時,它們之間的耦合稱為公共環(huán)境耦合。內(nèi)容耦合(ContainCoupling):最高程度的耦合是內(nèi)容耦合。原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。幾種類型的耦合2/5/202331前一頁軟件設計的概念和原理模塊獨立–內(nèi)聚內(nèi)聚(Cohesion)
內(nèi)聚是一個模塊內(nèi)各個元素彼此結合的緊密程度。設計時應該力求做到高內(nèi)聚,通常中等程度的內(nèi)聚也是可以采用的。內(nèi)聚和耦合密切相關,模塊內(nèi)的高內(nèi)聚意味著模塊間的松耦合。
按程度分類:低內(nèi)聚中內(nèi)聚高內(nèi)聚2/5/202332前一頁模塊獨立–內(nèi)聚低內(nèi)聚有如下幾類:偶然內(nèi)聚、邏輯內(nèi)聚、時間內(nèi)聚
偶然內(nèi)聚(CoincidentalCohesion):模塊中,元素之間沒有實質(zhì)的聯(lián)系,在不同的場合需要做不同的修改,導致出錯概率高。
邏輯內(nèi)聚(LogicalCohesion):模塊中,不同功能混在一起,合用部分程序代碼,局部修改會影響全局,導致修改困難。時間內(nèi)聚(TemporalCohesion):模塊中,各處理單元必須在一個有限的時間間隔內(nèi)執(zhí)行完成。幾種類型的內(nèi)聚2/5/202333前一頁模塊獨立–內(nèi)聚中內(nèi)聚
主要有兩類:
過程內(nèi)聚(ProceduralCohesion)需要按特定順序執(zhí)行模塊內(nèi)的處理元素的稱為過程內(nèi)聚。
通信內(nèi)聚(CommunicationCohesion)模塊中所有元素都使用同一個輸入數(shù)據(jù)或輸出同一個數(shù)據(jù),稱為通信內(nèi)聚。
幾種類型的內(nèi)聚2/5/202334前一頁模塊獨立–內(nèi)聚高內(nèi)聚也有兩類:順序內(nèi)聚
功能內(nèi)聚
順序內(nèi)聚(SequentialCohesion)模塊中一個處理單元的輸出是另一個處理單元的輸入。
功能內(nèi)聚(FunctionalCohesion)模塊中所有處理單元共同完成同一功能。
功能內(nèi)聚是最高程度的內(nèi)聚。幾種類型的內(nèi)聚2/5/202335前一頁軟件設計的概念和原理模塊獨立–內(nèi)聚
高內(nèi)聚
也有兩類:順序內(nèi)聚、功能內(nèi)聚。對內(nèi)聚的參考評價:
功能內(nèi)聚10分時間內(nèi)聚3分順序內(nèi)聚9分邏輯內(nèi)聚1分通信內(nèi)聚7分偶然內(nèi)聚0分過程內(nèi)聚5分
2/5/202336啟發(fā)式規(guī)則改進軟件結構提高模塊獨立性模塊規(guī)模應該適中深度、寬度、扇出和扇入應適當模塊的作用域應在控制域之內(nèi)盡量降低模塊接口的復雜程度設計單入口出口的模塊模塊功能應該可以預測前一頁主要內(nèi)容2/5/202337圖形工具層次圖和HIPO圖
結構圖
前一頁主要內(nèi)容2/5/202338前一頁圖形工具層次圖
層次圖
用來描繪軟件的層次結構,層次圖適合于在自頂向下設計軟件的過程中使用。
2/5/202339層次圖層次圖和層次方框圖的區(qū)別層次圖中一個矩形表示一個模塊,矩形框之間的連線表示調(diào)用關系層次方框圖一個矩形表示一個數(shù)據(jù)集合,矩形框之間的連線表示數(shù)據(jù)的層次2/5/202340前一頁正文加工系統(tǒng)的層次圖2/5/202341HIPO圖HIPO圖
是美國IBM公司發(fā)明的層次圖加“輸入/處理/輸出圖”的英文縮寫為了能使HIPO圖具有可追蹤性,在H圖(層次圖)里除了最頂層的方框之外,每個方框都加了編號。和H圖中每個方框?qū)?,有一張IPO圖描繪該模塊的處理過程。2/5/202342前一頁帶編號的層次圖(H圖)2/5/202343前一頁結構圖
Yourdon提出的進行軟件結構設計的有力工具。圖中方框代表模塊,方框之間的箭頭/連線表示模塊的調(diào)用關系。用帶注釋的箭頭表示模塊調(diào)用過程中傳遞的信息。并可以用箭頭尾部的形狀來區(qū)分傳遞信息的種類:尾部是空心圓表示傳遞的是數(shù)據(jù),實心圓表示傳遞的是控制信息。
2/5/202344前一頁產(chǎn)生最佳解的結構圖2/5/202345前一頁判定為真時調(diào)用A為假時調(diào)用BM循環(huán)調(diào)用A、B、C2/5/202346層次圖和結構圖層次圖和結構圖并沒有表示出模塊的調(diào)用次序。同時兩種圖也沒有指明什么時候調(diào)用下層模塊。2/5/202347面向數(shù)據(jù)流的設計方法前一頁面向數(shù)據(jù)流的設計方法的目標是給出設計軟件結構的一個系統(tǒng)化的途徑。在軟件工程的需求分析階段,信息流是一個關鍵,通常用數(shù)據(jù)流圖描繪信息在系統(tǒng)中加工和流動的情況。面向數(shù)據(jù)流的設計方法即把數(shù)據(jù)流圖變換成軟件結構。通常所說的結構化設計方法(簡稱SD方法),也就是基于數(shù)據(jù)流的設計方法。2/5/202348面向數(shù)據(jù)流的設計方法概念
變換分析事務分析設計優(yōu)化
前一頁主要內(nèi)容2/5/202349前一頁面向數(shù)據(jù)流的設計方法概念–變換流
根據(jù)基本系統(tǒng)模型,信息通常以“外部世界”的形式進入軟件系統(tǒng),經(jīng)過處理以后再以“外部世界”的形式離開系統(tǒng)。2/5/202350前一頁變換流圖2/5/202351概念–變換流信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。當數(shù)據(jù)流圖具有這些特征時,這種信息流就叫作變換流。2/5/202352前一頁概念–事務流
數(shù)據(jù)沿輸入通路到達一個處理T,這個處理根據(jù)輸入數(shù)據(jù)的類型再若干個動作序列中選出一個來執(zhí)行。這類數(shù)據(jù)流應該劃為一類特殊的數(shù)據(jù)流,稱為事務流。
(1)接收輸入數(shù)據(jù)(輸入數(shù)據(jù)又稱為事務);(2)分析每個事物以確定它的類型;(3)根據(jù)事物類型選取一條活動通道。處理T稱為事務中心,完成的任務:2/5/202353前一頁事務流2/5/202354前一頁概念設計過程2/5/202355前一頁面向數(shù)據(jù)流的設計方法變換分析設計
把具有變換流特點的數(shù)據(jù)流圖按預先確定的模式映射成軟件結構。2/5/202356前一頁面向數(shù)據(jù)流的設計方法變換流分析設計
設計一個安裝在汽車上的數(shù)字儀表板,功能如下:(1)通過模-數(shù)轉換實現(xiàn)傳感器和微處理機接口;(2)在發(fā)光二極管面板上顯示數(shù)據(jù);(3)指示每小時英里數(shù)(mph),行駛的英里數(shù)(mpg),總里程等等;(4)指示加速或減速;(5)超速報警。2/5/202357前一頁面向數(shù)據(jù)流的設計方法變換流分析設計第1步復查基本系統(tǒng)模型。第2步復查并精化數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新鄉(xiāng)醫(yī)學院《傳感器實驗》2023-2024學年第二學期期末試卷
- 2025至2031年中國空調(diào)通風道行業(yè)投資前景及策略咨詢研究報告
- 興安職業(yè)技術學院《數(shù)字合成》2023-2024學年第二學期期末試卷
- 2024屆山東省臨沂蘭陵縣聯(lián)考中考數(shù)學模擬試題含解析
- 甘肅省定西市渭源縣重點中學2024年中考數(shù)學押題試卷含解析
- 廣東普寧市下架山中學2023-2024學年初中數(shù)學畢業(yè)考試模擬沖刺卷含解析
- 2024-2025新進廠員工安全培訓考試試題(達標題)
- 2024-2025新進廠員工安全培訓考試試題附完整答案(網(wǎng)校專用)
- 2025年員工安全培訓考試試題預熱題
- 2025年班組安全培訓考試試題答案必考
- 決勝新高考·四川名優(yōu)校聯(lián)盟2025屆高三4月聯(lián)考生物+答案
- 智能調(diào)度算法設計-全面剖析
- 2025年元宇宙+游戲行業(yè)新興熱點、發(fā)展方向、市場空間調(diào)研報告
- 森林管護員面試題及答案
- 2025年高級考評員職業(yè)技能等級認定考試題(附答案)
- 培訓課件:混凝土結構的施工技術(澆筑、養(yǎng)護)
- “中華傳統(tǒng)文化經(jīng)典研習”任務群下先秦諸子散文教學策略研究
- 2025年高考語文模擬作文導寫及點評:社會時鐘
- 《護理信息系統(tǒng)》課件
- 單片機技術與應用知到智慧樹章節(jié)測試課后答案2024年秋甘肅省農(nóng)墾中等專業(yè)學校
- 施工現(xiàn)場平面布置與臨時設施、臨時道路布置方案
評論
0/150
提交評論