第4章總體設計_第1頁
第4章總體設計_第2頁
第4章總體設計_第3頁
第4章總體設計_第4頁
第4章總體設計_第5頁
已閱讀5頁,還剩178頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Email:liangsun@大連理工大學計算機科學與技術學院1總體設計主講:

孫亮第3章課程回顧

知識點回顧軟件客戶-包括提出要求、支付款項、選擇、具體說明或使用軟件產品的項目風險承擔者(stakeholder)或是獲得產品所產生結果的人模型-對對象系統的形式化的特征抽象,概括性或近似地表示結構化分析方法(StructuredAnalysis,SA)-70年代中期提出的一種面向數據流、自頂向下、逐步求精進行需求分析的方法2第3章課程回顧各種需求分析方法所應遵循的準則包括必須理解并描述問題的信息域,建立數據模型必須定義軟件應完成的功能,建立功能模型必須描述作為外部事件結果的軟件行為,建立行為模型必須對描述信息、功能和行為的模型進行分解,用層次的方式展開細節3第3章課程回顧需求分析的具體任務包括:確定軟件系統的綜合需求分析系統的數據需求用E-R圖、層次方框圖等工具建立數據模型導出軟件系統的邏輯模型:用數據流圖、ER圖、狀態轉換圖等工具建立邏輯模型修正系統的開發計劃驗證軟件需求分析的正確性編寫軟件需求規格說明書4第3章課程回顧軟件的綜合要求一般包括內容功能需求:系統必須提供的服務性能要求:系統必須滿足的定時約束或容量約束等可靠性和可用性需求出錯處理需求:系統對環境錯誤應該怎樣響應接口需求:系統與其他的環境通信格式要求約束:設計約束或實現約束描述在設計或實現應用系統時應遵守的限制條件:精度/工具/語言/設計/標準/平臺5第3章課程回顧逆向需求:說明軟件系統不應該做什么將來可能提出的要求需求獲取的常用方法訪談面向數據流自頂向下求精簡易的應用規格說明技術6第3章課程回顧需求分析階段中常用的模型主要有:數據流圖(DFD):用于建立功能模型實體-聯系圖(ERD):用于建立數據模型類圖:用于建立結構模型時序圖:用于建立行為模型狀態圖:用于建立行為模型協作圖:用于建立行為模型7第3章課程回顧結構化分析方法中使用的主要建模工具結構化分析方法中使用的建模工具主要包括:數據流圖、數據字典、結構化語言、判定標和判定樹數據模型的畫法數據模型也稱ER模型,它包括三要素:數據對象、數據屬性和數據聯系數據對象:存在且可區分的事物,用矩形框表示數據對象是指具有一系列不同性質或屬性的事物,僅具有單個值的事物不是數據對象8第3章課程回顧屬性定義了實體或聯系所具有的性質。用圓角矩形/橢圓形表示聯系表示數據對象彼此之間相互連接的方式聯系可以是一對一、一對多、多對多。用菱形框表示聯系也可以有屬性狀態轉換圖的畫法簡稱狀態圖通過描繪系統的狀態及引起系統狀態轉換的事件,來表示系統的行為9第3章課程回顧狀態圖包括3個主要狀態,即初態/初始狀態:僅1個,用實心圓表示終態/最終狀態:0-N個,用一對同心圓(內圓為實心圓)表示中間狀態/用圓角矩形表示狀態圖可以表示系統循環運行過程,這時不關心如何啟動該狀態狀態圖可以表示系統單程生命期,這時需標明初始狀態和最終狀態10第4章

總體設計4.1設計過程4.2設計原理4.3啟發規則4.4描繪軟件結構的圖形工具4.5面向數據流的設計方法4.6體系結構設計優化4.7總體設計報告書寫11第4章總體設計總體設計又稱為概要設計或初步設計開發階段的開始:“怎么做?”基本目的:“概括地說,系統如何實現?”確定系統中每個程序由哪些模塊組成以及這些模塊相互間的關系12第4章總體設計在總體設計階段,主要任務:劃分物理元素:物理元素內容包括:程序/文件/數據庫/人工過程和文檔等物理元素分解程度:黑盒子級確定軟件結構:整個軟件的程序組成134.1設計過程每個程序的模塊組成模塊之間的關系總體設計的必要性全局性分析,選最佳方案和最合理的軟件結構總體設計過程分兩個階段系統設計:確定系統的具體實現方案結構設計:確定軟件結構144.1設計過程實施總體設計的過程包括9個步驟:1.設想供選擇的方案:從數據流圖(DFD)出發區分各種處理、并分組考慮各種處理的實現策略設想、列出方案,但不評價154.1設計過程實際例講評:《口算高手》部分方案選擇164.1設計過程[1]輸入數據類型的選擇unsignedpara1,para2,output;unsignedpara1,para2,intoutput;intpara1,para2,output;intpara1,para2,longintoutpout;[2]試題數據保存方法的選擇選用數組臨時保存st_para1[100],st_para2[100],st_output[100]選用Delphi自帶數據庫選Foxpro/Oracle數據庫/SQLserver等……174.1設計過程實例講評:《客房管理系統》局部方案選擇184.1設計過程[1]預定請求類型的選擇只接受電話預定只接受網上預定只接受上門預定接受上述三種方案的任意組合預定[2]夜審時間與餐費列入方法的確定中午12點早晨8點餐費列入住宿費……194.1設計過程2.選取合理的方案分析員應提供的相關資料系統流程圖物理元素清單成本效益分析進度計劃考慮需求規格說明書要求,并征求用戶意見204.1設計過程實例講評:《口算高手》系統流程圖214.1設計過程實例講評:《口算高手》物理元素清單一個程序六個模塊:輸入模塊、校驗模塊、退出模塊、計算模塊、打印模塊、顯示模塊實例講評:《口算高手》成本/效益分析:略實例講評:《口算高手》實現進度計劃可行性分析:0.5天,需求分析:0.5天總體設計:1天,詳細設計與編碼:1天軟件測試:3天,文檔資料編寫、審議:1天224.1設計過程3.推薦最佳方案系統分析員推薦最佳方案用戶和專家審查通過使用部門負責人認可完成系統設計,進入結構設計以上為總體設計過程的系統設計階段234.1設計過程4.功能分解先結構設計:確定模塊組成、相互關系。屬于總體設計確定軟件有哪些模塊組成模塊之間的關系后過程設計:確定每個模塊的處理過程。屬于詳細設計分解后的每個功能對于程序員而言,是明顯易懂的244.1設計過程實例講評:《口算高手》模塊組成254.1設計過程5設計軟件結構:用層次圖或結構圖來描述6.設計數據庫:模式設計:確定物理數據庫結構滿足第三范式關系數據庫模型解決數據庫管理系統的結構約束264.1設計過程實例講評:《路燈管理系統》部分層次圖274.1設計過程實例講評:《路燈管理系統》數據庫結構實例284.1設計過程子模式設計:用戶使用的數據視圖:非物理數據直接反映的數據完整性和安全性設計內容完整性使用安全性操作安全性優化:模式和子模式的優化:利于存取294.1設計過程實例講評:國家標準《數據庫設計說明書》1

引言1.1編寫目的說明編寫這份數據庫設計說明書的目的,指出預期的讀者1.2背景說明說明待開發的數據庫的名稱和使用此數據庫的軟件系統的名稱列出該軟件系統開發項目的任務提出者、用戶以及將安裝該軟件和這個數據庫的計算站(中心)30補充:數據庫設計說明書(GB8567-88)主要內容1.3定義列出本文件中用到的專門術語的定義、外文首字母組詞的原詞組1.4參考資料列出有關的參考資料本項目的經核準的計劃任務書或合同、上級機關批文屬于本項目的其他已發表的文件本文件中各處引用到的文件資料,包括所要用到的軟件開發標準列出這些文件的標題、文件編號、發表日期和出版單位,說明能夠取得這些文件的來源31補充:數據庫設計說明書(GB8567-88)主要內容2外部設計2.1標識符和狀態聯系用途,詳細說明用于唯一地標識該數據庫的代碼、名稱或標識符,附加的描述性信息亦要給出。如果該數據庫屬于尚在實驗中、尚在測試中或暫時使用的,則要說明這一特點及其有效時間范圍2.2使用它的程序列出將要使用或訪問此數據庫的所有應用程序,對于這些應用程序的每一個,給出它的名稱和版本號32補充:數據庫設計說明書(GB8567-88)主要內容2.3約定陳述一個程序員或一個系統分析員為了能使用此數據庫而需要了解的建立標號、標識的約定,例如用于標識數據庫的不同版本的約定和用于標識庫內各個問卷、紀錄、數據項的命名約定等2.4專門指導向準備從事此數據庫的生成、從事此數據庫的測試、維護人員提供專門的指導,例如將被送入數據庫的數據的格式和標準、送入數據庫的操作規程和步驟,用于產生、修改、更新或使用這些數據文卷的操作指導。如果這些指導的內容篇幅很長,列出可參閱的文件資料的名稱和章條33補充:數據庫設計說明書(GB8567-88)主要內容2.5支持軟件簡單介紹同此數據庫直接有關的支持軟件,如數據庫管理系統、存儲定位程序和用于裝入、生成、修改、更新數據庫的程序等說明這些軟件的名稱、版本號和主要功能特性,如所用數據模型的類型、允許的數據容量等列出這些支持軟件的技術文件的標題、編號及來源34補充:數據庫設計說明書(GB8567-88)主要內容3.結構設計3.1概念結構設計說明本數據庫將反映的顯示世界中的實體、屬性和它們之間的關系等的原始數據形式,包括各數據項、紀錄、系、文卷的標識符、定義、類型、度量單位和值域,建立本數據庫的每一幅用戶視圖3.2邏輯結構設計說明把上述原始數據進行分解、合并后重新組織起來的數據庫全邏輯結構,包括所確定的關鍵字和屬性、重新確定的紀錄結構和文卷結構、所建立的各個文卷之間的相互關系,形成本數據庫的數據庫管理員視圖35補充:數據庫設計說明書(GB8567-88)主要內容3.3物理結構設計建立系統程序員視圖,包括:數據在內存中的安排,包括對索引區、緩沖區的設計所使用的外存設備及外存空間的組織,包括索引區、數據塊的組織與劃分訪問數據的方式方法36補充:數據庫設計說明書(GB8567-88)主要內容4.運用設計4.1數據字典設計對數據庫設計中涉及到的各種項目,如數據項、紀錄、系、文卷、模式、子模式等一般要建立起數據字典,以說明它們的標識符、同義名及有關信息。在本節中要說明對此數據字典設計的基本考慮4.2安全保密設計說明在數據庫的設計中,將如何通過區分不同的訪問者、不同的訪問類型和不同的數據對象,進行分別對待而獲得的數據庫安全保密的設計考慮374.1設計過程7制定測試計劃測試方法選擇:白盒測試/黑盒測試測試內容設計:模塊測試/功能測試/性能測試測試條件:人員/設備/。。。測試用例設計測試人員安排測試時間進度實例講評:國家標準《測試計劃》38補充:測試計劃(GB8567-88)主要內容1.引言1.1編寫目的本測試計劃的具體編寫目的,指出預期的讀者范圍1.2背景說明測試計劃所從屬的軟件系統的名稱該開發項目的歷史,列出用戶和執行此項目測試的計算中心,說明在開始執行本測試計劃之前必須完成的各項工作39補充:測試計劃(GB8567-88)主要內容1.3定義列出本文件中用到的專門術語的定義和外文首字母組詞的原詞組1.4參考資料列出要用到的參考資料,如:本項目的經核準的計劃任務書或合同、上級機關的批文;屬于本項目的其他已發表的文件本文件中各處引用的文件、資料,包括所要用到的軟件開發標準。列出這些文件的標題、文件編號、發表日期和出版單位,說明能夠得到這些文件資料的來源。40補充:測試計劃(GB8567-88)主要內容2.計劃2.1軟件說明提供一份圖表,并逐項說明被測軟件的功能、輸入和輸出等質量指標,作為敘述測試計劃的提綱2.2測試內容列出組裝測試和確認測試中的每一項測試內容的名稱標識符、這些測試的進度安排以及這些測試的內容和目的,例如模塊功能測試、接口正確性測試、數據文卷存取的測試、運行時間的測試、設計約束和極限的測試等41補充:測試計劃(GB8567-88)主要內容2.3測試1(標識符)給出這項測試內容的參與單位及被測試的部位2.3.1進度安排:包括進行測試的日期和工作內容(如熟悉環境、培訓、準備輸入數據等)2.3.2條件陳述本項測試工作對資源的要求,包括:設備所用到的設備類型、數量和預定使用時間軟件列出將被用來支持本項測試過程而本身又并不是被測軟件的組成部分的軟件,如測試驅動程序、測試監控程序、仿真程序、樁模塊等等42補充:測試計劃(GB8567-88)主要內容人員列出在測試工作期間可由用戶和開發任務組提供的工作人員的人數。技術水平及有關的預備只是,包括一些特殊要求,如倒班操作和數據鍵入人員2.3.3測試資料列出本項測試所需的資料,如:有關本項任務的文件被測試程序及其所在的媒體測試的輸入和輸出舉例有關控制此項測試的方法、過程的圖表43補充:測試計劃(GB8567-88)主要內容2.3.4測試培訓說明或引用資料說明為被測軟件的使用提供培訓的計劃。規定培訓的內容、受訓人員及從事培訓的工作人員2.4測試2(標識符)用與本測試計劃2.3條相類似的方式說明用于另一項及其后各項測試內容的測試工作計劃44補充:測試計劃(GB8567-88)主要內容3.測試設計說明3.1測試1(標識符)說明對第一項測試內容的測試設計考慮3.1.1控制說明本測試的控制方式,如輸入是人工、半自動或自動引入、控制操作的順序以及結果的紀錄方法3.1.2輸入說明本項測試中所使用的輸入數據及選擇這些輸入數據策略45補充:測試計劃(GB8567-88)主要內容3.1.3輸出說明預期的輸出數據,如測試結果及可能產生的中間結果或運行信息3.1.4過程說明完成此項測試的一個個步驟和控制命令,包括測試的準備、初始化、中間步驟和運行結束方式3.2測試2(標識符)用與本測試計劃3.1條相類似的方式說明第2項及其后各項測試工作的設計考慮46補充:測試計劃(GB8567-88)主要內容4.評價準則4.1范圍說明所選擇的測試用例能夠檢查的范圍及其局限性4.2數據整理陳述為了把測試數據加工成便于評價的適當形式,使得測試結果可以用同已知結果進行比較而要用到的轉換處理技術,如手工方式或自動方式;如果是用自動方式整理數據,還要說明為進行處理而要用到的硬件、軟件資源47補充:測試計劃(GB8567-88)主要內容4.3尺度說明用來判斷測試工作是否能通過的評價尺度,如合理的輸出結果的類型、測試輸出結果與預期輸出之間的允許偏離范圍、允許中斷或停機的最大次數484.1設計過程8.書寫文檔:1.系統說明:系統流程圖:系統構成方案組成的物理元素清單成本/效益分析最佳方案概述精化的數據流程圖軟件結構:層次圖或結構圖模塊算法:IPO等工具494.1設計過程2.用戶手冊:修改/更正初步用戶手冊3.測試計劃:測試策略測試方案預期測試結果測試進度計劃4.詳細的實現計劃5.數據庫設計結果504.1設計過程9.檢查和復審實例講評:國家標準《用戶手冊》實例獎評:國家標準《概要設計說明書》514.2設計原理1.模塊化模塊(module)是數據說明和可執行語句等程序對象的集合,每個模塊單獨命名并且可以通過名字對模塊進行訪問把大型軟件按照規定的原則劃分為一個個較小的、相對獨立但又相關的模塊的設計方法,叫做模塊化設計(modulardesign)實現模塊化設計的重要指導思想是功能分解、信息隱藏和模塊獨立性524.2設計原理模塊是由一定功能的可以用名詞調用的程序語句集合,如:C語言的子程序獨立的匯編程序COBOL的段和節Pascal的過程FORTRAN的子程序匯編的宏面向對象方法學中的對象等534.2設計原理分解設函數C(x)定義問題x的復雜程度,函數E(x)確定解決問題x所需要的工作量(時間)。對于兩個問題P1和P2,如果C(P1)>C(P2),

顯然E(P1)>E(P2)

根據人類解決一般問題的經驗,如果一個問題由P1和P2兩個問題組合而成,那么它的復雜程序大于分別考慮每個問題時的復雜程度之和,即:

C(P1+P2)>C(P1)+C(P2)

綜上所述

E(P1+P2)>E(P1)+E(P2)544.2設計原理模塊化和軟件成本554.2設計原理控制結構(程序結構)控制結構是軟件模塊間關系的表示控制結構圖示564.2設計原理控制結構的層次規則只有一個頂層(0層)模塊除0層外任一模塊都會在它的鄰層存在一模塊與它有關同層模塊間不發生聯系574.2設計原理軟件結構度量術語584.2設計原理寬度:軟件結構內同一個層次傷的模塊總數的最大值扇出:一個模塊直接控制/調用的模塊數。平均扇出為3或4扇入:一個模塊扇入表明有多少個上級模塊直接調用它深度:一個模塊包含自身及其它模塊的層數594.2設計原理實例獎評:軟件結構度量術語實例604.2設計原理2.抽象抽象的含義:反映本質特征,忽略細節多層次抽象最高層:使用問題環境語言,概括問題解法較低抽象層:更過程化的方法,面向問題,面向實現的解法最底層:直接實現的方式,敘述問題解法614.2設計原理3.信息隱藏(InformationHiding)模塊內部的數據與過程,應該對不需要了解這些數據與過程的模塊隱藏起來。只有那些為了完成軟件的總體功能而必須在模塊間交換的信息,才允許在模塊間進行傳遞信息隱蔽原理:使一個模塊內部包含的信息對于不需要這些信息的模塊來說,是不能訪問的624.2設計原理“隱藏”意味著有效的模塊化可以通過定義一組獨立的模塊而實現,這些獨立的模塊彼此間僅僅交換那些為了完成系統功能而必須交換的信息。這一指導思想的目的是為了提高模塊的獨立性,即當修改或維護模塊時減少把一個模塊的錯誤擴散到其他模塊中的機會局部化:指把一些關系緊密地軟件元素物理地放得彼此靠近。例:局部變量634.2設計原理實例獎評:隱藏與局部化644.2設計原理4.模塊獨立性(moduleindependence)概括了把軟件劃分為模塊時要遵守的準則,也是判斷模塊構造是否合理的標準。一般地,堅持模塊獨立性是獲得良好設計的關鍵兩個定性度量標準-內聚和耦合耦合用于衡量不同模塊彼此之間相互依賴(連接)的緊密程度654.2設計原理內聚用于衡量一個模塊內部各個元素間彼此結合的緊密程度模塊獨立的概念:模塊化、信息隱蔽和局部化的直接結果完成特定功能模塊之間關系簡單需要模塊獨立的原因易開發易測試664.2設計原理耦合強度取決于模塊接口的復雜程度、通過接口的數據等應該追求盡可能松散耦合的系統:影響系統的可理解性、可測試性、可靠性和可維護性耦合的七種類型674.2設計原理耦合強度非直接耦合/無耦合:最低數據耦合:低耦合/可以只包括該耦合控制耦合:中耦合/通常模塊分解可以用數據耦合公共環境耦合:全程變量、共享通信區、內存公共覆蓋區、存儲介質上文件或設備等;復雜程度隨耦合模塊個數變化;/一讀一取;屬松散耦合;既讀又取;介于數據耦合與控制耦合之間684.2設計原理內容耦合:最高程度耦合無直接耦合:兩個模塊沒有直接關系(模塊1和模塊2),模塊獨立性最強694.2設計原理實例講評:無直接耦合示例704.2設計原理數據耦合:一模塊調用另一模塊時,被調用模塊的輸入、輸出都是簡單的數據(若干參數)。屬松散耦合實例講評:數據耦合示例714.2設計原理實例講評:數據耦合程序示例724.2設計原理特征耦合也稱標記耦合(復合型耦合)如兩個模塊通過傳遞數據結構(不是簡單數據,而是紀錄、數組等)加以聯系,或都與一個數據結構有關系,則稱這兩個模塊之間存在標記耦合734.2設計原理實例講評:特征耦合示例744.2設計原理實例講評:特征耦合示例754.2設計原理實例講評:特征耦合示例764.2設計原理將特征耦合修改為數據耦合舉例774.2設計原理實例講評:將特征耦合修改為數據耦合示例784.2設計原理控制耦合模塊向下屬模塊傳遞的信息(開關量、標志等控制被調用模塊決策的變量)控制了被調用模塊的內部邏輯794.2設計原理實例講評:控制耦合示例804.2設計原理去除模塊間控制耦合的方法控制耦合增加了理解和編程的復雜性,調用模塊必須知道被調模塊的內部邏輯,增加了相互依賴將被調用模塊內的判定上移到調用模塊中進行被調用模塊分解成若干單一功能模塊814.2設計原理改控制耦合為數據耦合舉例824.2設計原理實例講評:改控制耦合為數據耦合示例834.2設計原理外部耦合一組模塊與同一外部環境關聯(例如,I/O模塊與特定的設備、格式和通信協議相關聯),它們之間便存在外部耦合外部耦合必不可少,但這種模塊數目應盡量少公共耦合(公共數據區耦合)一組模塊引用同一個公用數據區(也稱全局數據區、公共數據環境)公共數據區指:全局數據結構、共享通訊區,內存公共覆蓋區等844.2設計原理實例講評:公共耦合實例854.2設計原理實例講評:公共耦合示例864.2設計原理公共耦合存在的問題軟件可理解性降低診斷錯誤困難軟件可維護性差軟件可靠性差(公共數據及全程變量無保護措施)慎用公共數據區和全程變量!!!874.2設計原理內容耦合884.2設計原理耦合設計原則盡量使用數據耦合少用控制耦合限制公共環境耦合范圍完全不用內容耦合894.2設計原理內聚概念:衡量一個模塊內部各元素彼此結合的緊密程度簡單地說,理想內聚的模塊只做一件事情。設計時應該力求做到高內聚,通常中等程度的內聚也是可以采用的,而且效果和高內聚相差不多。但是,堅決不要使用低內聚904.2設計原理內聚類型:七種類型低內聚:偶然內聚:出現錯誤的概率比其他類型的模塊要高/0分;914.2設計原理偶然內聚(巧合內聚)實例講評:偶然內聚示例924.2設計原理邏輯內聚:把幾種相關功能(邏輯上相似的功能)組合在一模塊內,每次調用由傳給模塊的參數確定執行哪種功能修改困難/1分934.2設計原理實例講評:邏輯內聚示例944.2設計原理時間內聚時間內聚,比邏輯內聚好一些/3分。模塊完成的功能必須在同一時間內執行,這些功能只因時間因素關聯在一起實例講評:時間內聚示例例如:初始化系統模塊、系統結束模塊、緊急故障處理模塊等均是時間性聚合模塊954.2設計原理實例講評:時間內聚:初始化模塊964.2設計原理過程內聚(順序性組合)過程內聚:程序流程圖作為工具設計軟件時得到模塊/5分模塊內各處理成分相關,且必須以特定次序執行屬中內聚974.2設計原理實例講評:過程內聚:定時器與中斷標志984.2設計原理實例講評:過程內聚994.2設計原理通信內聚模塊內各部分使用相同的輸入數據,或產生相同的輸出結果通信內聚:7分屬中內聚1004.2設計原理實例講評:通信內聚示例1014.2設計原理實例講評:通信內聚示例1024.2設計原理順序內聚數據流圖作為工具設計軟件時得到的模塊/9分信息內聚模塊完成多個功能,各功能都在同一數據結構上操作,每一功能有唯一入口屬高內聚1034.2設計原理實例講評:順序內聚示例1044.2設計原理功能內聚最高內聚/理想內聚只做一件事/10分模塊僅包括為完成某個功能所必須的所有成分模塊所有成分共同完成一個功能,缺一不可內聚性最強屬高內聚1054.2設計原理實例講評:功能內聚示例1064.2設計原理內聚設計原則:力求高內聚中等內聚也可以采用低內聚不要用與耦合關系:高內聚意味松耦合實踐表明,內聚更重要,應該把更多注意力集中到提高模塊的內聚程度上1074.3啟發規則常用啟發規則(1)改進軟件結構,提高模塊獨立性降低耦合,提高內聚(2)模塊規模適中模塊過大,分解不充分模塊過小,接口過于復雜,通信開銷過大(3)深度、寬度、扇出和扇入應適中1084.3啟發規則寬度:軟件結構內同一個層次上的模塊總數的最大值扇出:一個模塊直接控制/調用的模塊數。平均扇出為3或4寬度越大,系統越復雜扇入:一個模塊扇入表明有多少個上級模塊直接調用它深度:一個模塊包含自身及其他模塊的層數深度表示軟件結構中控制的層數,能粗略地標志一個系統的大小和復雜程度通常頂層扇出比較高,中層扇出比較小,底層扇入比較高1094.3啟發規則實例講評:深度為3的示例1104.3啟發規則實例講評:深度為1的示例1114.3啟發規則實例講評:深度為4的示例1124.3啟發規則(4)模塊的作用域應該在控制域之內作用域:收該模塊內一個判斷影響的所有模塊集合控制域:該模塊本身以及所有直接或間接從屬于它的模塊的集合作用域應是控制域的子集改變作用域與控制域的方法:判斷點上移/作用域對象下移1134.3啟發規則實例講評:A2的作用域為B1,B2,C1,C2,BM;A2的控制域應小于上述集合1144.3啟發規則(5)力爭降低模塊接口的復雜程度實例講評:一元二次方程求解函數接口復雜或不一致:緊耦合或低內聚>>重新分析模塊獨立性(6)設計單入口、單出口的模塊:易理解(7)模塊功能應該可以預測1154.4描繪軟件結構的圖形工具層次圖層次圖(也稱H圖)是總體設計階段最常使用的圖形工具之一,它用于描繪軟件的層次結構矩形代表一個模塊連線表示調用關系適于在自頂向下設計軟件的過程中使用與層次方框圖類似1164.4描繪軟件結構的圖形工具實例講評:層次圖舉例1174.4描繪軟件結構的圖形工具HIPO圖HIPO:是IBM公司發明的“層次圖加輸入/處理/輸出圖”的縮寫為了能使HIPO圖具有課跟蹤性,在H圖里除了最頂層的方框之外,每個方框都加了編號和H圖中的每個方框相對應,有一張IPO圖描述這個方框代表的模塊的處理過程。IPO圖能夠方便地描述數據輸入、數據處理和數據輸出之間的關系1184.4描繪軟件結構的圖形工具實例講評:HIPO層次圖舉例1194.4描繪軟件結構的圖形工具結構圖Yourdon提出的一種軟件結構設計工具一個方框/矩形代表一個模塊箭頭連線/直線表示調用關系帶有注釋的箭頭表示模塊調用過程中來回傳遞的信息1204.4描繪軟件結構的圖形工具實例講評:產生最佳解功能結構圖SC實例1214.4描繪軟件結構的圖形工具結構化設計(SD)方法概述首先研究、分析和審查數據流圖,從軟件的需求規格說明中弄清數據流加工的過程然后根據數據流圖決定問題的類型,即確定是變換型還是事務型。針對兩種不同的類型分別進行分析處理由數據流圖推導出系統的初始結構圖利用一些試探性原則來改進系統的初始結構圖,直到得到符合要求的結構圖為止修改和補充數據詞典制定測試計劃1224.4描繪軟件結構的圖形工具SD方法在概要設計中的主要表達工具約定:1234.4描繪軟件結構的圖形工具結構圖(SC,StructureChart):四種模塊1244.4描繪軟件結構的圖形工具SC中的選擇調用1254.4描繪軟件結構的圖形工具SC中的循環調用1264.4描繪軟件結構的圖形工具SC設計優化在不考慮時間因素的前提下開發并精化軟件結構在詳細設計階段選出最耗費時間的那些模塊,仔細地設計它們的處理過程,以求提高效率使用高級程序設計語言編寫程序必要時重新設計或用依賴于機器的語言重寫上述大量占用資源的模塊的代碼,以求提高效率在軟件中孤立出那些大量占用處理機資源的模塊1274.4描繪軟件結構的圖形工具實例講評:醫院管理系統SC實例1284.4描繪軟件結構的圖形工具實例講評:酒店管理信息系統功能結構圖實例1294.4描繪軟件結構的圖形工具實例講評:零售管理信息系統功能結構圖實例130回顧設計過程、設計原理、啟發規則與圖形工具1314.5面向數據流的設計方法結構化設計方法是基于數據流的設計方法SD以數據流圖為基礎,它定義了把DFD變換成軟件結構的不同映射方法1324.5面向數據流的設計方法系統結構特征可歸納為兩種典型形式變換型結構事務型結構數據流圖可分為兩種類型變換型數據流事務型數據流1334.5面向數據流的設計方法1344.5面向數據流的設計方法數據流圖基本模型1354.5面向數據流的設計方法變換型數據流舉例1364.5面向數據流的設計方法事務型數據流圖舉例1374.5面向數據流的設計方法大型系統DFD中,變換型和事務型結構往往共存1384.5面向數據流的設計方法面向數據流設計方法的設計步驟(1)精化DFD(2)確定DFD類型(3)把DFD映射導系統模塊結構,設計出模塊結構的上層(4)基于DFD,逐步分解高層模塊,設計出下層模塊(5)根據模塊獨立性原理,精化模塊結構(6)模塊接口描述1394.5面向數據流的設計方法1404.5面向數據流的設計方法SD方法的兩種映射過渡方法1414.5面向數據流的設計方法初始的SC1424.5面向數據流的設計方法變換分析設計方法(1)區分傳入、變換中心、傳出部分,在DFD上標明分界線(2)第一級分解(建立初始SC框架),設計頂層和第一層模塊(3)第二級分解(分解SC各分支),自頂向下分解,設計出每個分支的中、下層模塊1434.5面向數據流的設計方法1444.5面向數據流的設計方法1454.5面向數據流的設計方法1464.5面向數據流的設計方法傳入分支的分解(1)1474.5面向數據流的設計方法傳入分支的分解(2)1484.5面向數據流的設計方法傳出分支的分解1494.5面向數據流的設計方法加工中心分支的分解1504.5面向數據流的設計方法事務分析設計方法任何情況下都可使用變換分析方法設計軟件結構,但如數據流具有明顯的事務特點時(有一個明顯的事務中心),以采用事務分析方法為宜1514.5面向數據流的設計方法步驟在DFD上確定事務中心、接收部分和發送部分畫出SC框架,把DFD上的三部分分別映射為事務控制模塊、接收模塊和動作發送模塊分解細化接收分支和發送分支,完成初始SC1524.5面向數據流的設計方法實例講評:用戶命令交互子系統DFD1534.5面向數據流的設計方法事務分析的映射方法1544.5面向數據流的設計方法用戶命令交互子系統初始SC1554.5面向數據流的設計方法實例講評:用戶命令子系統DFD1564.5面向數據流的設計方法用戶命令子系統的SC1574.5面向數據流的設計方法實例講評:用戶命令子交互子系統1584.5面向數據流的設計方法1594.5面向數據流的設計方法事務流設計舉例1604.5面向數據流的設計方法1614.5面向數據流的設計方法動作分支的典型結構1624.5面向數據流的設計方法1634.5面向數據流的設計方法事務流設計舉例(另一種畫法)1644.5面向數據流的設計方法混合流設計舉例1654.5面向數據流的設計方法1664.6體系結構設計優化體系結構設計優化將初始SC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論