




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第五章總體設計軟件工程(SoftwareEngineering)2/5/20231總體設計需求分析解決:系統做什么?總體設計解決:系統怎樣做?2/5/20232總體設計總體設計(SummaryDesign)又稱為概要設計或初步設計。通過這個階段的工作將劃分出組成系統的物理元素——程序(Program)、文件(File)、數據庫(Dadabase)、人工過程和文檔(Document)等等,但是每個物理元素仍然處于黑盒子(BlackBox)級,這些黑盒子里的具體內容將在以后仔細設計。總體設計階段的另一項重要任務是:設計軟件的結構確定系統中每個程序是由哪些模塊組成確定模塊相互間的關系
前一頁2/5/20233設計過程
設計原理
啟發式規則
描述軟件結構的圖形工具
面向數據流的設計方法
本章主要內容前一頁2/5/20234總體的設計過程總體設計過程分為兩個階段系統設計階段:確定系統的實現方案結構設計階段:確定軟件結構2/5/20235前一頁總體的設計過程設想供選擇的方案
選取合理的方案
推薦最佳方案
功能分解
設計軟件結構
數據庫設計
制定測試計劃
書寫文檔審核和復審
2/5/20236前一頁總體的設計過程設想供選擇的方案分析員考慮各種可能的實現方案(Project),并且力求從中選出最佳方案。在總體設計階段開始時只有系統的邏輯模型,分析員有充分的自由分析比較不同的物理實現方案,可以從需求分析得到的數據流圖入手。常用的方法是:設想在數據流圖中處理分組的各種可能的方法,拋棄在技術上行不通的方法,余下的方法作為可能實現的策略,并且可以啟發供選擇的物理系統。
2/5/20237前一頁總體的設計過程選取合理方案
從上一步提供的方案中選取,至少選取低成本、中等成本和高成本的三種方案。對每個合理的方案分析員都應該準備下列四份資料:
(1)系統流程圖(2)組成系統的物理元素的清單(3)成本/效益分析(4)實現這個系統的進度計劃
2/5/20238前一頁總體的設計過程推薦最佳方案
分析員應該綜合分析對比各種合理的方案,推薦一個最佳的方案,并且為推薦的方案制定詳細的實現計劃。用戶和有關的技術專家審查推薦的最佳系統,如果確定該系統符合用戶的需要,并且是在現有條件下完全能夠實現的,則請使用部門負責人進一步審批。在接受分析員所推薦的方案之后,系統設計完成,進入總體設計過程的下一個重要階段——結構設計。
2/5/20239前一頁總體的設計過程功能分解
為了最終實現目標系統,必須設計出組成這個系統的所有程序和文件(或數據庫)。對程序(特別是復雜的大型程序)的設計,通常分為兩個階段完成:結構設計(StructureDesign):是總體設計階段的任務,確定程序由那些模塊組成,以及這些模塊之間的關系。
過程設計(ProcessDesign):是詳細設計階段的任務,確定每個模塊的處理過程。2/5/202310功能分解
為確定軟件結構,首先需要從實現角度把復雜的功能進一步分解。功能分解導致數據流圖進一步細化,同時使用圖形工具描述算法。2/5/202311前一頁總體的設計過程設計軟件結構即結構設計,包括確定系統各模塊間的關系。通常程序中的一個模塊完成一個適當的子功能,而一個程序包含若干個模塊,因此考慮把模塊組織成良好的層次系統。頂層模塊調用它下層模塊以實現程序的完整功能,每個下層模塊再調用更下層的模塊,從而完成程序的一個子功能,最下層的模塊完成最具體的功能。2/5/202312設計軟件結構頂層模塊調用它下層模塊以實現程序的完整功能,每個下層模塊再調用更下層的模塊,從而完成程序的一個子功能,最下層的模塊完成最具體的功能。軟件結構可以用層次圖或結構圖表示。有些軟件的結構可以通過細化的數據流圖映射得到。2/5/202313前一頁總體的設計過程數據庫設計對于需要使用數據庫的系統,工程師需要對數據庫進行設計。2/5/202314前一頁總體的設計過程制定測試計劃在軟件開發的早期階段考慮測試(Testing)問題,能促使軟件設計人員在設計時注意提高軟件的可測試性。2/5/202315前一頁總體的設計過程書寫文檔
1.系統說明2.用戶手冊3.測試計劃4.詳細的實現計劃5.數據庫設計結果
2/5/202316前一頁總體的設計過程審核和復審
最后應該對總體設計的結果進行嚴格的技術審查,通過之后再由使用部門從管理和應用的角度進行復審。2/5/202317軟件設計的概念和原理模塊化
抽象
逐步求精信息隱蔽和局部化
模塊獨立
前一頁主要內容2/5/202318前一頁軟件設計的概念和原理模塊化
模塊(Modular)是數據說明、可執行語句等程序對象的集合,它是單獨命名的而且可通過名字來訪問。模塊化就是把程序劃分成若干個模塊,每個模塊完成一個子功能,把這些模塊集總起來組成一個整體,可以完成指定的功能滿足問題的要求。
2/5/202319前一頁軟件設計的概念和原理模塊化
設函數C(x)定義問題x的復雜程度,函數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前一頁軟件設計的概念和原理抽象
人類在認識復雜現象的過程中使用的最強有力的思維工具抽象(Abstract)。人們在實踐中認識到,在現實世界中一定事物、狀態或過程之間總存在著某些相似的方面(共性)。把這些相似的方面集中和概括起來,暫時忽略它們之間的差異,這就是抽象。2/5/202322抽象處理復雜系統的唯一有效的方法是用層次的方式構造和分析它。2/5/202323逐步求精逐步求精和模塊化的概念,與抽象是密切相關的。如軟件工程的每一步都是對軟件解法的抽象層次的一次精化。可行性分析階段,軟件作為完整的部件;需求階段,軟件解法使用熟悉的問題描述;從總體設計到詳細設計,抽象程度降低,逐步精化。抽象與求精互補。2/5/202324逐步求精定義:為了能集中精力解決主要問題而盡量推遲對問題細節的考慮。原因:人類認知過程的局限——Miller法則
一個人在任何時候都只能把注意力集中在(7+2)個知識塊上。
逐步求精的效果,把注意力集中在與當前開發最相關的問題上,忽略暫時不需要考慮的細節。2/5/202325前一頁軟件設計的概念和原理信息的隱蔽和局部化
信息隱藏:使得一個模塊內包括的信息(過程和數據)對于不需要這些信息的模塊來說,是不能訪問的。局部化:把一些關系密切的軟件元素物理地放得彼此靠近。
“隱蔽”(Hiding)意味著有效的模塊化可以通過定義一組獨立的模塊而實現,這些獨立的模塊彼此間僅僅交換那些為了完成系統功能而必須交換的信息。2/5/202326前一頁模塊獨立
模塊獨立(Independence)的概念是模塊化、抽象、信息隱蔽和局部化概念的直接結果。開發具有獨立功能而且和其他模塊之間沒有過多的相互作用的模塊,就可以做到模塊獨立。模塊獨立性的優點:第一,有效的模塊化(即具有獨立的模塊)的軟件比較容易開發出來。第二,獨立的模塊比較容易測試和維護。2/5/202327模塊獨立模塊的獨立程度可以由兩個定性標準度量,這兩個標準分別稱為內聚和耦合,內聚衡量一個模塊內部各個元素彼此結合的緊密程度;耦合衡量不同模塊彼此間互相依賴(連接)的緊密程度。
2/5/202328前一頁軟件設計的概念和原理模塊獨立–耦合耦合
(Coupling)耦合是對一個軟件結構內不同模塊之間互聯程度的度量。在軟件設計時應該追求松散耦合的系統。如果兩個模塊中的每一個都能獨立地工作而不需要另一個模塊地存在,那么它們彼此完全獨立,這意味著模塊間無任何連接,耦合程度最低。2/5/202329前一頁幾種類型的耦合模塊獨立–耦合數據耦合
(DataCoupling):如果兩個模塊彼此間通過參數交換信息,而且交換的信息僅僅是數據,那么這種耦合稱為數據耦合。控制耦合(ControlCoupling):如果傳遞的信息中有控制信息,則這種耦合稱為控制耦合。
數據耦合是低耦合。系統必須存在這種耦合,因為只有當某些模塊的輸出數據作為另一些模塊的輸入數據時,系統才能完成有價值的功能。
2/5/202330前一頁模塊獨立–耦合公共環境耦合
(CommonCoupling):當兩個或多個模塊通過一個公共數據環境相互作用時,它們之間的耦合稱為公共環境耦合。內容耦合(ContainCoupling):最高程度的耦合是內容耦合。原則:盡量使用數據耦合,少用控制耦合,限制公共環境耦合的范圍,完全不用內容耦合。幾種類型的耦合2/5/202331前一頁軟件設計的概念和原理模塊獨立–內聚內聚(Cohesion)
內聚是一個模塊內各個元素彼此結合的緊密程度。設計時應該力求做到高內聚,通常中等程度的內聚也是可以采用的。內聚和耦合密切相關,模塊內的高內聚意味著模塊間的松耦合。
按程度分類:低內聚中內聚高內聚2/5/202332前一頁模塊獨立–內聚低內聚有如下幾類:偶然內聚、邏輯內聚、時間內聚
偶然內聚(CoincidentalCohesion):模塊中,元素之間沒有實質的聯系,在不同的場合需要做不同的修改,導致出錯概率高。
邏輯內聚(LogicalCohesion):模塊中,不同功能混在一起,合用部分程序代碼,局部修改會影響全局,導致修改困難。時間內聚(TemporalCohesion):模塊中,各處理單元必須在一個有限的時間間隔內執行完成。幾種類型的內聚2/5/202333前一頁模塊獨立–內聚中內聚
主要有兩類:
過程內聚(ProceduralCohesion)需要按特定順序執行模塊內的處理元素的稱為過程內聚。
通信內聚(CommunicationCohesion)模塊中所有元素都使用同一個輸入數據或輸出同一個數據,稱為通信內聚。
幾種類型的內聚2/5/202334前一頁模塊獨立–內聚高內聚也有兩類:順序內聚
功能內聚
順序內聚(SequentialCohesion)模塊中一個處理單元的輸出是另一個處理單元的輸入。
功能內聚(FunctionalCohesion)模塊中所有處理單元共同完成同一功能。
功能內聚是最高程度的內聚。幾種類型的內聚2/5/202335前一頁軟件設計的概念和原理模塊獨立–內聚
高內聚
也有兩類:順序內聚、功能內聚。對內聚的參考評價:
功能內聚10分時間內聚3分順序內聚9分邏輯內聚1分通信內聚7分偶然內聚0分過程內聚5分
2/5/202336啟發式規則改進軟件結構提高模塊獨立性模塊規模應該適中深度、寬度、扇出和扇入應適當模塊的作用域應在控制域之內盡量降低模塊接口的復雜程度設計單入口出口的模塊模塊功能應該可以預測前一頁主要內容2/5/202337圖形工具層次圖和HIPO圖
結構圖
前一頁主要內容2/5/202338前一頁圖形工具層次圖
層次圖
用來描繪軟件的層次結構,層次圖適合于在自頂向下設計軟件的過程中使用。
2/5/202339層次圖層次圖和層次方框圖的區別層次圖中一個矩形表示一個模塊,矩形框之間的連線表示調用關系層次方框圖一個矩形表示一個數據集合,矩形框之間的連線表示數據的層次2/5/202340前一頁正文加工系統的層次圖2/5/202341HIPO圖HIPO圖
是美國IBM公司發明的層次圖加“輸入/處理/輸出圖”的英文縮寫為了能使HIPO圖具有可追蹤性,在H圖(層次圖)里除了最頂層的方框之外,每個方框都加了編號。和H圖中每個方框對應,有一張IPO圖描繪該模塊的處理過程。2/5/202342前一頁帶編號的層次圖(H圖)2/5/202343前一頁結構圖
Yourdon提出的進行軟件結構設計的有力工具。圖中方框代表模塊,方框之間的箭頭/連線表示模塊的調用關系。用帶注釋的箭頭表示模塊調用過程中傳遞的信息。并可以用箭頭尾部的形狀來區分傳遞信息的種類:尾部是空心圓表示傳遞的是數據,實心圓表示傳遞的是控制信息。
2/5/202344前一頁產生最佳解的結構圖2/5/202345前一頁判定為真時調用A為假時調用BM循環調用A、B、C2/5/202346層次圖和結構圖層次圖和結構圖并沒有表示出模塊的調用次序。同時兩種圖也沒有指明什么時候調用下層模塊。2/5/202347面向數據流的設計方法前一頁面向數據流的設計方法的目標是給出設計軟件結構的一個系統化的途徑。在軟件工程的需求分析階段,信息流是一個關鍵,通常用數據流圖描繪信息在系統中加工和流動的情況。面向數據流的設計方法即把數據流圖變換成軟件結構。通常所說的結構化設計方法(簡稱SD方法),也就是基于數據流的設計方法。2/5/202348面向數據流的設計方法概念
變換分析事務分析設計優化
前一頁主要內容2/5/202349前一頁面向數據流的設計方法概念–變換流
根據基本系統模型,信息通常以“外部世界”的形式進入軟件系統,經過處理以后再以“外部世界”的形式離開系統。2/5/202350前一頁變換流圖2/5/202351概念–變換流信息沿輸入通路進入系統,同時由外部形式變換成內部形式,進入系統的信息通過變換中心,經加工處理以后再沿輸出通路變換成外部形式離開軟件系統。當數據流圖具有這些特征時,這種信息流就叫作變換流。2/5/202352前一頁概念–事務流
數據沿輸入通路到達一個處理T,這個處理根據輸入數據的類型再若干個動作序列中選出一個來執行。這類數據流應該劃為一類特殊的數據流,稱為事務流。
(1)接收輸入數據(輸入數據又稱為事務);(2)分析每個事物以確定它的類型;(3)根據事物類型選取一條活動通道。處理T稱為事務中心,完成的任務:2/5/202353前一頁事務流2/5/202354前一頁概念設計過程2/5/202355前一頁面向數據流的設計方法變換分析設計
把具有變換流特點的數據流圖按預先確定的模式映射成軟件結構。2/5/202356前一頁面向數據流的設計方法變換流分析設計
設計一個安裝在汽車上的數字儀表板,功能如下:(1)通過模-數轉換實現傳感器和微處理機接口;(2)在發光二極管面板上顯示數據;(3)指示每小時英里數(mph),行駛的英里數(mpg),總里程等等;(4)指示加速或減速;(5)超速報警。2/5/202357前一頁面向數據流的設計方法變換流分析設計第1步復查基本系統模型。第2步復查并精化數
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇淮安曙光雙語校2025年中考物理試題仿真試題(二)含解析
- 湖北省孝感市云夢縣2024-2025學年初三普通高校統一招生考試仿真卷(三)生物試題試卷含解析
- 新疆阿克蘇第一師第二中學2025屆3月初三教學測試(一)化學試題含解析
- 天津商業大學《空間創意與設計》2023-2024學年第一學期期末試卷
- 河南工業和信息化職業學院《大學英語基礎課程一》2023-2024學年第二學期期末試卷
- 瓶裝水銷售合同風險防范與合規經營考核試卷
- 煙草批發商產品策略考核試卷
- 漁業捕撈作業優化技術考核試卷
- 水電站施工安全管理規范與法規考核試卷
- 電力系統故障分析與設備保護策略考核試卷
- 江西省八所重點2025屆高三下學期4月聯考(二模)政治試卷(含答案)
- 房建工程施工現場文明施工管理標準
- 2025年中國光伏電池市場發展現狀調研及投資趨勢前景分析報告
- 2025年03月福建省氣象局事業單位筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 中國釣魚行業發展監測及投資戰略規劃研究報告
- 2025年上海嘉定區江橋鎮企業服務有限公司招聘筆試參考題庫附帶答案詳解
- 2025年高考語文二輪復習策略講座
- T-SCSF 0004-2020 海洋牧場海藻場建設技術規范
- 2025高職單招考試(語文)試題(附答案)
- 大學生創新創業思維導圖
- 無人機集群控制技術-深度研究
評論
0/150
提交評論