版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 軟件工程 第七講 結(jié)構(gòu)化概要設(shè)計(jì) 本次課程需要掌握的內(nèi)容什么是軟件設(shè)計(jì)?軟件設(shè)計(jì)要達(dá)到的目標(biāo)(重要)總體設(shè)計(jì)階段的任務(wù)(了解)數(shù)據(jù)流圖的分類(重要)內(nèi)聚和耦合的種類(非常重要)基于數(shù)據(jù)流圖的程序設(shè)計(jì)方法(了解)結(jié)構(gòu)化設(shè)計(jì)方法1)何謂設(shè)計(jì) 設(shè)計(jì)目標(biāo):依據(jù)需求規(guī)約,在一個抽象層上建立系統(tǒng)軟件模型,包括軟件體系結(jié)構(gòu)(數(shù)據(jù)和程序結(jié)構(gòu)),以及詳細(xì)的處理算法,產(chǎn)生設(shè)計(jì)規(guī)格說明書.一種軟件開發(fā)活動,定義實(shí)現(xiàn)需求規(guī)約所需結(jié)構(gòu).總體設(shè)計(jì)階段的任務(wù):1、劃分出組成系統(tǒng)的物理元素程序、文件、數(shù)據(jù)庫、人工過程和文檔等等,但是每個物理元素仍然處于黑盒子級,這些黑盒子里的具體內(nèi)容將在以后仔細(xì)設(shè)計(jì)。2、設(shè)計(jì)軟件的結(jié)構(gòu),也
2、就是要確定系統(tǒng)中每個程序是由哪些模塊組成的,以及這些模塊相互間的關(guān)系。總體設(shè)計(jì)過程通常由兩個主要階段組成:系統(tǒng)設(shè)計(jì)階段,確定系統(tǒng)的具體實(shí)現(xiàn)方案;結(jié)構(gòu)設(shè)計(jì)階段,確定軟件結(jié)構(gòu)。1. 設(shè)想供選擇的方案在總體設(shè)計(jì)階段分析員應(yīng)該考慮各種可能的實(shí)現(xiàn)方案,并且力求從中選出最佳方案。設(shè)計(jì)過程2. 選取合理的方案應(yīng)該從前一步得到的一系列供選擇的方案中選取若干個合理的方案,通常至少選取低成本、中等成本和高成本的三種方案。對每個合理的方案分析員都應(yīng)該準(zhǔn)備下列4份資料:(1) 系統(tǒng)流程圖;(2) 組成系統(tǒng)的物理元素清單;(3) 成本/效益分析;(4) 實(shí)現(xiàn)這個系統(tǒng)的進(jìn)度計(jì)劃。3. 推薦最佳方案分析員應(yīng)該綜合分析對比各
3、種合理方案的利弊,推薦一個最佳的方案,并且為推薦的方案制定詳細(xì)的實(shí)現(xiàn)計(jì)劃。通過內(nèi)部評審,且使用部門的負(fù)責(zé)人也接受了分析員所推薦的方案之后,進(jìn)入總體設(shè)計(jì)過程的下一個重要階段結(jié)構(gòu)設(shè)計(jì)。4. 功能分解結(jié)合算法描述仔細(xì)分析數(shù)據(jù)流圖中的每個處理,如果一個處理的功能過分復(fù)雜,必須把它的功能適當(dāng)?shù)胤纸獬梢幌盗斜容^簡單的功能。5. 設(shè)計(jì)軟件結(jié)構(gòu)通常程序中的一個模塊完成一個適當(dāng)?shù)淖庸δ?。把模塊組織成良好的層次系統(tǒng),頂層模塊調(diào)用它的下層模塊以實(shí)現(xiàn)程序的完整功能,每個下層模塊再調(diào)用更下層的模塊,從而完成程序的一個子功能,最下層的模塊完成最具體的功能。6. 設(shè)計(jì)數(shù)據(jù)庫對于需要使用數(shù)據(jù)庫的那些應(yīng)用系統(tǒng),軟件工程師應(yīng)該在
4、需求分析階段所確定的系統(tǒng)數(shù)據(jù)需求的基礎(chǔ)上,進(jìn)一步設(shè)計(jì)數(shù)據(jù)庫。7. 制定測試計(jì)劃在軟件開發(fā)的早期階段考慮測試問題,能促使軟件設(shè)計(jì)人員在設(shè)計(jì)時注意提高軟件的可測試性。8. 書寫文檔應(yīng)該用正式的文檔記錄總體設(shè)計(jì)的結(jié)果,在這個階段應(yīng)該完成的文檔通常有下述幾種:(1) 系統(tǒng)說明主要內(nèi)容包括用系統(tǒng)流程圖描繪的系統(tǒng)構(gòu)成方案,組成系統(tǒng)的物理元素清單,成本/效益分析;對最佳方案的概括描述,精化的數(shù)據(jù)流圖,用層次圖或結(jié)構(gòu)圖描繪的軟件結(jié)構(gòu),用IPO圖或其他工具(例如,PDL語言)簡要描述的各個模塊的算法,模塊間的接口關(guān)系,以及需求、功能和模塊三者之間的交叉參照關(guān)系等等。(2) 用戶手冊根據(jù)總體設(shè)計(jì)階段的結(jié)果,修改更
5、正在需求分析階段產(chǎn)生的初步的用戶手冊。(3) 測試計(jì)劃包括測試策略,測試方案,預(yù)期的測試結(jié)果,測試進(jìn)度計(jì)劃等等。(4) 詳細(xì)的實(shí)現(xiàn)計(jì)劃(5) 數(shù)據(jù)庫設(shè)計(jì)結(jié)果9. 審查和復(fù)審最后應(yīng)該對總體設(shè)計(jì)的結(jié)果進(jìn)行嚴(yán)格的技術(shù)審查,在技術(shù)審查通過之后再由使用部門的負(fù)責(zé)人從管理角度進(jìn)行復(fù)審。2)結(jié)構(gòu)化設(shè)計(jì)方法()在總體設(shè)計(jì)層 -引入了兩個術(shù)語/符號 模塊:一種可獨(dú)立標(biāo)識的軟件成分. 調(diào)用:模塊間的一種關(guān)系,模塊A為了完成其任務(wù)必須 依賴其他模塊. -引入了模塊結(jié)構(gòu)圖 用于表達(dá)軟件系統(tǒng)的靜態(tài)結(jié)構(gòu). -過程指導(dǎo) 為了實(shí)現(xiàn)設(shè)計(jì)目標(biāo), 總體設(shè)計(jì)的具體任務(wù)是: 將DFD轉(zhuǎn)化為MSD 分二步實(shí)現(xiàn): 第一步:如何將DFD轉(zhuǎn)化
6、為初始的MSD 分類:變換型數(shù)據(jù)流圖 事務(wù)型數(shù)據(jù)流圖 變換設(shè)計(jì) 事務(wù)設(shè)計(jì) 數(shù)據(jù)流圖分類變換型:事務(wù)型12345678abcdefhgyxz123546abcdefgy變換設(shè)計(jì)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事務(wù)設(shè)計(jì)事務(wù)中心輸入模塊路徑1路徑2輸出模塊aycgbfc-ecee-gegb-dbdd-fdf最后生成HIPO圖 和H圖中每個方框相對應(yīng),應(yīng)該有一張IPO圖描繪這個方框代表的模塊的處理
7、過程。HIPO圖中的每張IPO圖內(nèi)都應(yīng)該明顯地標(biāo)出它所描繪的模塊在H圖中的編號,以便追蹤了解這個模塊在軟件結(jié)構(gòu)中的位置。帶編號的層次圖(H圖) 第二步:如何將初始的MSD轉(zhuǎn)化為最終可供詳 細(xì)設(shè)計(jì)使用的MSD 基于模塊化原理-高內(nèi)聚 低耦合, 給出一些設(shè)計(jì)規(guī)則經(jīng)驗(yàn)規(guī)則, 用于精化初始的MSD 體現(xiàn)設(shè)計(jì)人員的創(chuàng)造 模塊獨(dú)立的概念是模塊化、抽象、信息隱藏和局部化概念的直接結(jié)果。開發(fā)具有獨(dú)立功能而且和其他模塊之間沒有過多的相互作用的模塊,就可以做到模塊獨(dú)立。換句話說,希望這樣設(shè)計(jì)軟件結(jié)構(gòu),使得每個模塊完成一個相對獨(dú)立的特定子功能,并且和其他模塊之間的關(guān)系很簡單。3)模塊獨(dú)立模塊獨(dú)立性重要性:第一,有效
8、的模塊化(即具有獨(dú)立的模塊)的軟件比較容易開發(fā)出來。這是由于能夠分割功能而且接口可以簡化,當(dāng)許多人分工合作開發(fā)同一個軟件時,這個優(yōu)點(diǎn)尤其重要。第二,獨(dú)立的模塊比較容易測試和維護(hù)。這是因?yàn)橄鄬φf來,修改設(shè)計(jì)和程序需要的工作量比較小,錯誤傳播范圍小,需要擴(kuò)充功能時能夠“插入”模塊。耦合:不同模塊之間相互依賴程度的度量。 耦合類型: 內(nèi)容耦合: 一個模塊訪問另一個模塊的內(nèi)部數(shù)據(jù); 一個模塊不通過正常入口而轉(zhuǎn)到另一個模塊的內(nèi)部; 兩個模塊有一部分程序代碼重疊; 一個模塊有多個入口。 公共耦合:兩個以上的模塊共同引用一個全局?jǐn)?shù)據(jù)項(xiàng)。 控制耦合:一個模塊向另一模塊傳遞一個控制信號, 接受信號的模塊將依據(jù)該
9、信號值進(jìn)行必要的活動。 標(biāo)記耦合:兩個模塊至少有一個通過界面?zhèn)鬟f的公共 有結(jié)構(gòu)的參數(shù)。 數(shù)據(jù)耦合:模塊間通過參數(shù)傳遞基本類型的數(shù)據(jù)。內(nèi)聚:一個模塊之內(nèi)各成分之間相互依賴程度的度量。 內(nèi)聚類型: 偶然內(nèi)聚:一個模塊之內(nèi)各成分之間沒有任何關(guān)系。 邏輯內(nèi)聚:幾個邏輯上相關(guān)的功能放在同一模塊中。 時間內(nèi)聚:一個模塊完成的功能必須在同一時間內(nèi)完成,而 這些功能只是因?yàn)闀r間因素關(guān)聯(lián)在一起。 過程內(nèi)聚:處理成分必須以特定的次序執(zhí)行。 通信內(nèi)聚:各成分都操作在同一數(shù)據(jù)集或生成同一數(shù)據(jù)集。 順序內(nèi)聚:各成分與一個功能相關(guān),且一個成分的輸出作為 另一成分的輸入。 功能內(nèi)聚:模塊的所有成分對完成單一功能是最基本的,
10、且 該模塊對完成這一功能而言是充分必要的。啟發(fā)性規(guī)則-經(jīng)驗(yàn)的總結(jié)(1)改進(jìn)軟件結(jié)構(gòu),提高模塊獨(dú)立性;(2)模塊規(guī)模適中-每頁60行語句;(3)深度、寬度、扇入和扇出適中;(4)模塊的作用域力爭在控制域之內(nèi);(5)降低模塊接口的復(fù)雜性;(6)模塊功能應(yīng)該可以預(yù)測。模塊的作用域和控制域應(yīng)用示例:數(shù)字儀表板系統(tǒng)的精化讀旋轉(zhuǎn)信號收集并求平均轉(zhuǎn)換成轉(zhuǎn)/分計(jì)算gph讀并校核 確定加速/減速計(jì)算里程計(jì)算mph和超速值 計(jì)算燃料消耗 產(chǎn)生加速/減速顯示 產(chǎn)生里程顯示發(fā)出鈴聲 產(chǎn)生mph顯示 產(chǎn)生mpg顯示 旋轉(zhuǎn)信號 信號/秒 (sps) sps 燃燒流傳感器信號 燃燒流gph sps rpm rpm 箭頭指示
11、 上箭頭 下箭頭 水平線 英里 超速值 mph mpgmpg顯示 mph顯示 鈴聲里程顯示輸入部分Get gphGet rpmGet spsGet 燃料流變換燃料流為 ghp Get 燃轉(zhuǎn)信號變換燃轉(zhuǎn)信號為燃料流變換sps為rpmGet spsGet sps轉(zhuǎn)換為 sps Get轉(zhuǎn)速信號變換為sps變換為 sps 、 數(shù)字儀表板系統(tǒng)輸入部分的精化 輸入部分的初始模塊結(jié)構(gòu)圖轉(zhuǎn)速信號轉(zhuǎn)速信號燃料流燃料流燃料流gphspsspsrpm spsrpm gphspsspsspsspssps spssps轉(zhuǎn)速信號轉(zhuǎn)速信號輸入部分計(jì)算gph計(jì)算rpm計(jì)算 sps讀燃轉(zhuǎn)信號采集sps讀轉(zhuǎn)速信號 使用啟發(fā)式規(guī)則
12、1,并考慮其它規(guī)則, 可以將輸入部分的模塊結(jié)構(gòu)圖精化為:其中:sps為轉(zhuǎn)速的每秒信號量;sps 為sps的平均值; sps為sps的瞬時變化值;rpm為每分鐘轉(zhuǎn)速;mph為每小時英里數(shù);gph為每小時燃燒的燃料加侖數(shù);rpm為行進(jìn)里程。輸出部分PUT mpgPUT mphPUT里程PUT 加/減速PUT 超速量顯示顯示顯示、數(shù)字儀表板系統(tǒng)輸出部分的精化 輸出部分的初始模塊結(jié)構(gòu)圖顯示對于這一初始的模塊結(jié)構(gòu)圖,一般情況下應(yīng): 把相同或類似的物理輸出合并為一個模塊,以減少模塊之間的關(guān)聯(lián)。就本例而言:左邊前三個“顯示”,基本上屬于相似的物理輸出,因此可以把它們合并為一個顯示模塊。而將“PUT mpg”
13、模塊和相關(guān)的“生成顯示的模塊合并為一個模塊;同樣地,應(yīng)把“PUT mph”模塊、“PUT里程”各自與相關(guān)的生成顯示的模塊合并為一個模塊,參見下圖。 其它求精的規(guī)則,與輸入部分類同。例如,可以將“PUT 加/減速”模塊與其下屬的兩個模塊合并為一個模塊,將“PUT 超速量”模塊與其下屬的兩個模塊合并為一個模塊 。 輸出模塊生成mpg顯示生成mph顯示生成里程顯示生成加/減速顯示生成蜂鳴顯示通過以上求精之后,可得如下的模塊結(jié)構(gòu)圖變換模塊計(jì)算mpg計(jì)算mph計(jì)算里程計(jì)算加/減速、變換部分的精化首先,應(yīng)該了解:對于變換部分的求精,是一項(xiàng)具有挑戰(zhàn)性的工作。其中主要是根據(jù)設(shè)計(jì)準(zhǔn)則,并要通過實(shí)踐,不斷地總結(jié)經(jīng)驗(yàn),才能設(shè)計(jì)出合理的模塊結(jié)構(gòu)。就給定的數(shù)字儀表板系統(tǒng)而言,如果把“確定加/減速”的模塊放在“計(jì)算速度mph”模塊下面,則可以減
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手車消費(fèi)貸款協(xié)議書
- 物業(yè)管理費(fèi)收取合同
- 工程機(jī)械租賃合同范本
- 招標(biāo)代理專職人員培訓(xùn)課件(陳川生)
- 建筑工程項(xiàng)目管理課件
- 教學(xué)輔助課件- 課程內(nèi)容
- 《小班毛毛蟲》課件
- 《護(hù)理查房之再障》課件
- 《教育行業(yè)經(jīng)理》課件
- 《心理調(diào)適漫談》課件
- 二甲雙胍恩格列凈片(Ⅲ)-臨床用藥解讀
- 煤層應(yīng)力狀態(tài)及煤與瓦斯突出防治研究
- 小學(xué)五年級上冊數(shù)學(xué)基礎(chǔ)知識練習(xí)題帶答案
- 診所聘用醫(yī)生合作協(xié)議書
- 抖音認(rèn)證承諾函
- 藥物分離純化-藥物分離純化技術(shù)的作用
- 《精益生產(chǎn)培訓(xùn)》課件
- GB/T 3518-2023鱗片石墨
- 22G101三維立體彩色圖集
- MQL4命令中文詳解手冊
- 水平井施工方案及措施
評論
0/150
提交評論