7 結構化概要設計_第1頁
7 結構化概要設計_第2頁
7 結構化概要設計_第3頁
7 結構化概要設計_第4頁
7 結構化概要設計_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 軟件工程 第七講 結構化概要設計 本次課程需要掌握的內(nèi)容什么是軟件設計?軟件設計要達到的目標(重要)總體設計階段的任務(了解)數(shù)據(jù)流圖的分類(重要)內(nèi)聚和耦合的種類(非常重要)基于數(shù)據(jù)流圖的程序設計方法(了解)結構化設計方法1)何謂設計 設計目標:依據(jù)需求規(guī)約,在一個抽象層上建立系統(tǒng)軟件模型,包括軟件體系結構(數(shù)據(jù)和程序結構),以及詳細的處理算法,產(chǎn)生設計規(guī)格說明書.一種軟件開發(fā)活動,定義實現(xiàn)需求規(guī)約所需結構.總體設計階段的任務:1、劃分出組成系統(tǒng)的物理元素程序、文件、數(shù)據(jù)庫、人工過程和文檔等等,但是每個物理元素仍然處于黑盒子級,這些黑盒子里的具體內(nèi)容將在以后仔細設計。2、設計軟件的結構,也

2、就是要確定系統(tǒng)中每個程序是由哪些模塊組成的,以及這些模塊相互間的關系。總體設計過程通常由兩個主要階段組成:系統(tǒng)設計階段,確定系統(tǒng)的具體實現(xiàn)方案;結構設計階段,確定軟件結構。1. 設想供選擇的方案在總體設計階段分析員應該考慮各種可能的實現(xiàn)方案,并且力求從中選出最佳方案。設計過程2. 選取合理的方案應該從前一步得到的一系列供選擇的方案中選取若干個合理的方案,通常至少選取低成本、中等成本和高成本的三種方案。對每個合理的方案分析員都應該準備下列4份資料:(1) 系統(tǒng)流程圖;(2) 組成系統(tǒng)的物理元素清單;(3) 成本/效益分析;(4) 實現(xiàn)這個系統(tǒng)的進度計劃。3. 推薦最佳方案分析員應該綜合分析對比各

3、種合理方案的利弊,推薦一個最佳的方案,并且為推薦的方案制定詳細的實現(xiàn)計劃。通過內(nèi)部評審,且使用部門的負責人也接受了分析員所推薦的方案之后,進入總體設計過程的下一個重要階段結構設計。4. 功能分解結合算法描述仔細分析數(shù)據(jù)流圖中的每個處理,如果一個處理的功能過分復雜,必須把它的功能適當?shù)胤纸獬梢幌盗斜容^簡單的功能。5. 設計軟件結構通常程序中的一個模塊完成一個適當?shù)淖庸δ堋0涯K組織成良好的層次系統(tǒng),頂層模塊調(diào)用它的下層模塊以實現(xiàn)程序的完整功能,每個下層模塊再調(diào)用更下層的模塊,從而完成程序的一個子功能,最下層的模塊完成最具體的功能。6. 設計數(shù)據(jù)庫對于需要使用數(shù)據(jù)庫的那些應用系統(tǒng),軟件工程師應該在

4、需求分析階段所確定的系統(tǒng)數(shù)據(jù)需求的基礎上,進一步設計數(shù)據(jù)庫。7. 制定測試計劃在軟件開發(fā)的早期階段考慮測試問題,能促使軟件設計人員在設計時注意提高軟件的可測試性。8. 書寫文檔應該用正式的文檔記錄總體設計的結果,在這個階段應該完成的文檔通常有下述幾種:(1) 系統(tǒng)說明主要內(nèi)容包括用系統(tǒng)流程圖描繪的系統(tǒng)構成方案,組成系統(tǒng)的物理元素清單,成本/效益分析;對最佳方案的概括描述,精化的數(shù)據(jù)流圖,用層次圖或結構圖描繪的軟件結構,用IPO圖或其他工具(例如,PDL語言)簡要描述的各個模塊的算法,模塊間的接口關系,以及需求、功能和模塊三者之間的交叉參照關系等等。(2) 用戶手冊根據(jù)總體設計階段的結果,修改更

5、正在需求分析階段產(chǎn)生的初步的用戶手冊。(3) 測試計劃包括測試策略,測試方案,預期的測試結果,測試進度計劃等等。(4) 詳細的實現(xiàn)計劃(5) 數(shù)據(jù)庫設計結果9. 審查和復審最后應該對總體設計的結果進行嚴格的技術審查,在技術審查通過之后再由使用部門的負責人從管理角度進行復審。2)結構化設計方法()在總體設計層 -引入了兩個術語/符號 模塊:一種可獨立標識的軟件成分. 調(diào)用:模塊間的一種關系,模塊A為了完成其任務必須 依賴其他模塊. -引入了模塊結構圖 用于表達軟件系統(tǒng)的靜態(tài)結構. -過程指導 為了實現(xiàn)設計目標, 總體設計的具體任務是: 將DFD轉化為MSD 分二步實現(xiàn): 第一步:如何將DFD轉化

6、為初始的MSD 分類:變換型數(shù)據(jù)流圖 事務型數(shù)據(jù)流圖 變換設計 事務設計 數(shù)據(jù)流圖分類變換型:事務型12345678abcdefhgyxz123546abcdefgy變換設計XX系統(tǒng)變換模塊 get eput hput g get c get dc,d-ee-ff-g,hh-yput yg-xput xx-zput zget aget bb-da-ceeg,hhgzzxxgyyhdbcacdeefg,hfxab事務設計事務中心輸入模塊路徑1路徑2輸出模塊aycgbfc-ecee-gegb-dbdd-fdf最后生成HIPO圖 和H圖中每個方框相對應,應該有一張IPO圖描繪這個方框代表的模塊的處理

7、過程。HIPO圖中的每張IPO圖內(nèi)都應該明顯地標出它所描繪的模塊在H圖中的編號,以便追蹤了解這個模塊在軟件結構中的位置。帶編號的層次圖(H圖) 第二步:如何將初始的MSD轉化為最終可供詳 細設計使用的MSD 基于模塊化原理-高內(nèi)聚 低耦合, 給出一些設計規(guī)則經(jīng)驗規(guī)則, 用于精化初始的MSD 體現(xiàn)設計人員的創(chuàng)造 模塊獨立的概念是模塊化、抽象、信息隱藏和局部化概念的直接結果。開發(fā)具有獨立功能而且和其他模塊之間沒有過多的相互作用的模塊,就可以做到模塊獨立。換句話說,希望這樣設計軟件結構,使得每個模塊完成一個相對獨立的特定子功能,并且和其他模塊之間的關系很簡單。3)模塊獨立模塊獨立性重要性:第一,有效

8、的模塊化(即具有獨立的模塊)的軟件比較容易開發(fā)出來。這是由于能夠分割功能而且接口可以簡化,當許多人分工合作開發(fā)同一個軟件時,這個優(yōu)點尤其重要。第二,獨立的模塊比較容易測試和維護。這是因為相對說來,修改設計和程序需要的工作量比較小,錯誤傳播范圍小,需要擴充功能時能夠“插入”模塊。耦合:不同模塊之間相互依賴程度的度量。 耦合類型: 內(nèi)容耦合: 一個模塊訪問另一個模塊的內(nèi)部數(shù)據(jù); 一個模塊不通過正常入口而轉到另一個模塊的內(nèi)部; 兩個模塊有一部分程序代碼重疊; 一個模塊有多個入口。 公共耦合:兩個以上的模塊共同引用一個全局數(shù)據(jù)項。 控制耦合:一個模塊向另一模塊傳遞一個控制信號, 接受信號的模塊將依據(jù)該

9、信號值進行必要的活動。 標記耦合:兩個模塊至少有一個通過界面?zhèn)鬟f的公共 有結構的參數(shù)。 數(shù)據(jù)耦合:模塊間通過參數(shù)傳遞基本類型的數(shù)據(jù)。內(nèi)聚:一個模塊之內(nèi)各成分之間相互依賴程度的度量。 內(nèi)聚類型: 偶然內(nèi)聚:一個模塊之內(nèi)各成分之間沒有任何關系。 邏輯內(nèi)聚:幾個邏輯上相關的功能放在同一模塊中。 時間內(nèi)聚:一個模塊完成的功能必須在同一時間內(nèi)完成,而 這些功能只是因為時間因素關聯(lián)在一起。 過程內(nèi)聚:處理成分必須以特定的次序執(zhí)行。 通信內(nèi)聚:各成分都操作在同一數(shù)據(jù)集或生成同一數(shù)據(jù)集。 順序內(nèi)聚:各成分與一個功能相關,且一個成分的輸出作為 另一成分的輸入。 功能內(nèi)聚:模塊的所有成分對完成單一功能是最基本的,

10、且 該模塊對完成這一功能而言是充分必要的。啟發(fā)性規(guī)則-經(jīng)驗的總結(1)改進軟件結構,提高模塊獨立性;(2)模塊規(guī)模適中-每頁60行語句;(3)深度、寬度、扇入和扇出適中;(4)模塊的作用域力爭在控制域之內(nèi);(5)降低模塊接口的復雜性;(6)模塊功能應該可以預測。模塊的作用域和控制域應用示例:數(shù)字儀表板系統(tǒng)的精化讀旋轉信號收集并求平均轉換成轉/分計算gph讀并校核 確定加速/減速計算里程計算mph和超速值 計算燃料消耗 產(chǎn)生加速/減速顯示 產(chǎn)生里程顯示發(fā)出鈴聲 產(chǎn)生mph顯示 產(chǎn)生mpg顯示 旋轉信號 信號/秒 (sps) sps 燃燒流傳感器信號 燃燒流gph sps rpm rpm 箭頭指示

11、 上箭頭 下箭頭 水平線 英里 超速值 mph mpgmpg顯示 mph顯示 鈴聲里程顯示輸入部分Get gphGet rpmGet spsGet 燃料流變換燃料流為 ghp Get 燃轉信號變換燃轉信號為燃料流變換sps為rpmGet spsGet sps轉換為 sps Get轉速信號變換為sps變換為 sps 、 數(shù)字儀表板系統(tǒng)輸入部分的精化 輸入部分的初始模塊結構圖轉速信號轉速信號燃料流燃料流燃料流gphspsspsrpm spsrpm gphspsspsspsspssps spssps轉速信號轉速信號輸入部分計算gph計算rpm計算 sps讀燃轉信號采集sps讀轉速信號 使用啟發(fā)式規(guī)則

12、1,并考慮其它規(guī)則, 可以將輸入部分的模塊結構圖精化為:其中:sps為轉速的每秒信號量;sps 為sps的平均值; sps為sps的瞬時變化值;rpm為每分鐘轉速;mph為每小時英里數(shù);gph為每小時燃燒的燃料加侖數(shù);rpm為行進里程。輸出部分PUT mpgPUT mphPUT里程PUT 加/減速PUT 超速量顯示顯示顯示、數(shù)字儀表板系統(tǒng)輸出部分的精化 輸出部分的初始模塊結構圖顯示對于這一初始的模塊結構圖,一般情況下應: 把相同或類似的物理輸出合并為一個模塊,以減少模塊之間的關聯(lián)。就本例而言:左邊前三個“顯示”,基本上屬于相似的物理輸出,因此可以把它們合并為一個顯示模塊。而將“PUT mpg”

13、模塊和相關的“生成顯示的模塊合并為一個模塊;同樣地,應把“PUT mph”模塊、“PUT里程”各自與相關的生成顯示的模塊合并為一個模塊,參見下圖。 其它求精的規(guī)則,與輸入部分類同。例如,可以將“PUT 加/減速”模塊與其下屬的兩個模塊合并為一個模塊,將“PUT 超速量”模塊與其下屬的兩個模塊合并為一個模塊 。 輸出模塊生成mpg顯示生成mph顯示生成里程顯示生成加/減速顯示生成蜂鳴顯示通過以上求精之后,可得如下的模塊結構圖變換模塊計算mpg計算mph計算里程計算加/減速、變換部分的精化首先,應該了解:對于變換部分的求精,是一項具有挑戰(zhàn)性的工作。其中主要是根據(jù)設計準則,并要通過實踐,不斷地總結經(jīng)驗,才能設計出合理的模塊結構。就給定的數(shù)字儀表板系統(tǒng)而言,如果把“確定加/減速”的模塊放在“計算速度mph”模塊下面,則可以減

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論