版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
軟件工程
softwareengineering 計算機學院軟件工程課程組軟件生存期維護軟件計劃需求分析測試軟件設計實現(xiàn)(編碼)定義時期開發(fā)時期使用和維護時期退役第5章 傳統(tǒng)軟件設計方法概要設計和詳細設計階段的任務是什么?什么是結(jié)構(gòu)化設計方法?結(jié)構(gòu)化設計與結(jié)構(gòu)化分析的關系?什么是面向數(shù)據(jù)結(jié)構(gòu)的設計方法?什么是結(jié)構(gòu)化程序設計?常用的過程設計工具?一、軟件設計的任務和作用兩個階段概要設計詳細設計se核心過程二、設計的啟發(fā)規(guī)則1、提高模塊獨立性松耦合,高內(nèi)聚增加內(nèi)聚減少耦合軟件結(jié)構(gòu)的劃分方式水平劃分垂直劃分水平劃分(horizontalpartitioning)按主要功能定義模塊結(jié)構(gòu)的各分支頂層控制模塊,下層輸入、處理、輸出三個分支優(yōu)點:功能分離,易修改擴充缺點:模塊接口傳遞數(shù)據(jù)多,信息流的整體控制復雜化function1function3function2垂直劃分(verticalpartitioning:factoring)自頂向下逐層分布工作頂層模塊控制,低層模塊實際處理優(yōu)點:對低層模塊的修改不易引起副作用便于將來的維護設計的啟發(fā)規(guī)則2、模塊規(guī)模適中過大不易理解,分解不充分太小則接口開銷過大注意分解后不應降低模塊的獨立性optimalnumber
ofmodules
costof
softwarenumberofmodulesmoduleintegrationcostmoduledevelopmentcost設計的啟發(fā)規(guī)則3、深度、寬度、扇入、扇出適當深度=層數(shù)過大表示分工過細管理模塊過分簡單,適當合并寬度=跨度數(shù)的最大值過大表示系統(tǒng)復雜設計的啟發(fā)規(guī)則扇出=模塊直接調(diào)用/控制的模塊數(shù)
fan-out5扇入=直接調(diào)用該模塊的上級模塊數(shù)fan-in≤5aa的扇出aa的扇入設計的啟發(fā)規(guī)則4、作用域在控制域內(nèi)控制域模塊本身以及所有直接或間接從屬于它的模塊的集合作用域受該模塊內(nèi)一個判定影響的所有模塊的集合macbabcifflagthenbelsecm的控制域={m,a,b,c}a的作用域={b,c}作用域在控制域內(nèi)修改軟件結(jié)構(gòu)判斷點上移 把a中的if移到m中受影響塊下移
把c移到a下面a:…………if……thengotob1……………………b:……………………b1:……………………a作用域在控制域內(nèi)macba的控制域={a,b}a:…………if……thengotom……………………m:……………………m1:gotoc……………………a作用域超出了控制域c:…………………………………………設計的啟發(fā)規(guī)則5、降低接口的復雜程度接口復雜可能表明模塊的獨立性差接口復雜或不一致(看起來傳遞的數(shù)據(jù)間無聯(lián)系),是緊耦合或低內(nèi)聚的征兆【例】求一元二次方程的根解法1……vara,b,c,x1,x2:real;beginread(a,b,c);
p;write(x1,x2)end.procedurep;beginend;解法2……typeta=array[1..3]ofreal;tb=array[1..2]ofreal;vara:ta;b:tb;beginread(a[1],a[2],a[3]);
p(a,b);write(b[1],b[2])end.procedurea(a:ta;varb:tb);beginend;解法3……vara,b,c,x1,x2:real;beginread(a,b,c);
p(a,b,c,x1,x2);write(x1,x2)end.procedurep(a,b,c:real;varx1,x2:real);begin
end;全局變量,緊耦合!可讀性差!局部變量,可讀性好!設計的啟發(fā)規(guī)則6、單出單入,避免內(nèi)容耦合7、模塊功能可預測相同輸入必產(chǎn)生相同輸出模塊中使用全局變量可能導致不可預測a:………………………………entry1:………………………………entry2:………………………………三、表示軟件結(jié)構(gòu)的圖形工具層次圖和hipo圖結(jié)構(gòu)圖1.層次圖和hipo圖層次圖(hierarchydiagram)正文加工系統(tǒng)編輯3.0加標題4.0輸出2.0存儲5.0……插入3.3刪除3.2追加3.1修改3.4合并3.5列表3.6改寫3.4.1……輸入1.0檢索6.0編目錄7.0格式化8.0層次圖描述軟件結(jié)構(gòu),而非數(shù)據(jù)結(jié)構(gòu)矩形框:模塊連線:調(diào)用關系,而非組成關系模塊a模塊bhipo圖h圖+ipo圖(input-process-outputdiagram)對每個模塊附一張ipo圖每個ipo圖中應明確標出對應模塊的編號ipo圖舊的主文件事務文件1.校驗主記錄2.校驗事務記錄3.更新主記錄有效的主記錄有效的事務記錄更新后的主文件inputprocessoutputipo表被調(diào)用:調(diào)用:輸入:輸出:處理:局部數(shù)據(jù)元素:注釋:系統(tǒng): 作者:模塊: 日期:編號:ipo表2.結(jié)構(gòu)圖(structureddiagram)數(shù)據(jù)傳遞控制信息或循環(huán)bamm1m2m3cd【例】結(jié)構(gòu)圖產(chǎn)生最佳解得到輸入計算最佳解輸出結(jié)果讀輸入編輯輸入結(jié)果格式化顯示結(jié)果輸入原始輸入原始輸入編輯結(jié)果解輸入解解格式化的解格式化的解四、軟件系統(tǒng)設計技術面向數(shù)據(jù)流(dfd)的設計方法面向數(shù)據(jù)結(jié)構(gòu)的設計方法原型法結(jié)構(gòu)化設計(structureddesign,sd)基于模塊化、自頂向下求精、結(jié)構(gòu)化程序設計技術基礎上發(fā)展起來面向數(shù)據(jù)流的設計方法數(shù)據(jù)流圖映射到軟件結(jié)構(gòu)用啟發(fā)式規(guī)則對結(jié)構(gòu)進行細化1.面向數(shù)據(jù)流(dfd)的設計方法programarchitecturedataflowdiagram(1)dfd的類型dfd的類型決定了映射的方法變換流事務流混合型①變換流(transformflow)所有信息流都可歸結(jié)為變換流internalrepresentationinformationtransformflowoutgoingflowincomingflowexternalrepresentationtime變換型的軟件結(jié)構(gòu)圖②事務流(transactionflow)當信息流具有明顯的“事務中心”時,可歸結(jié)為事務流……ttransactionrequest…actionpaths……t=calloneoftheseveralsubroutinesdependingonthetypeoftheincomingtransactionrequest.事務型的軟件結(jié)構(gòu)圖③混合型兩種dfd的混合體(2)面向數(shù)據(jù)流方法的設計過程“變換”“事務”精化數(shù)據(jù)流圖流類型區(qū)分事務中心和數(shù)據(jù)接收通路區(qū)分輸入和輸出分支映射成事務結(jié)構(gòu)映射成變換結(jié)構(gòu)用啟發(fā)式設計規(guī)則精化軟件結(jié)構(gòu)導出接口描述和全程數(shù)據(jù)結(jié)構(gòu)復查詳細設計變換設計事務設計“getittowork,thenmakeitfast.”dfdsystemhierarchy(3)從dfd導出軟件結(jié)構(gòu)圖變換設計事務設計綜合設計法①變換設計mpiointernalrepresentationinformationtransformflowoutgoingflowincomingflowexternalrepresentationtime【例】汽車數(shù)字儀表板的設計功能:①通過模-數(shù)轉(zhuǎn)換實現(xiàn)傳感器和微處理機接口;②在發(fā)光二極管面板上顯示數(shù)據(jù);③指示每小時英里數(shù)(mph),行駛的里程,每加侖油行駛的英里數(shù)(mpg)等等;④指示加速或減速;⑤如果車速超過55mph,則發(fā)出警告鈴聲。確定輸入流和輸出流的邊界燃料流傳感器信號sps旋轉(zhuǎn)信號讀旋轉(zhuǎn)信號收集和求平均確定加/減速轉(zhuǎn)換成轉(zhuǎn)/分計算里程計算mph,超速值產(chǎn)生加/減速顯示計算燃料消耗計算gph讀和校核產(chǎn)生mpg顯示產(chǎn)生mph顯示發(fā)出鈴聲產(chǎn)生里程顯示spssps箭頭指示燃燒流上箭頭水平線下箭頭rpmrpmgphmphmpgmph超速值英里顯示鈴聲mph顯示mpg顯示第一級分解方法mpio第一級分解燃料流傳感器信號sps旋轉(zhuǎn)信號讀旋轉(zhuǎn)信號收集和求平均確定加/減速轉(zhuǎn)換成轉(zhuǎn)/分計算里程計算mph,超速值產(chǎn)生加/減速顯示計算燃料消耗計算gph讀和校核產(chǎn)生mpg顯示產(chǎn)生mph顯示發(fā)出鈴聲產(chǎn)生里程顯示spssps箭頭指示燃燒流上箭頭水平線下箭頭rpmrpmgphmphmpgmph超速值英里顯示鈴聲mph顯示mpg顯示第一級分解數(shù)字儀表板控制數(shù)據(jù)轉(zhuǎn)換控制驅(qū)動儀表板接收傳感器信號輸入控制變換控制輸出控制第二級分解adcbmi每個加工映射成受p控制的一個下層模塊p由邊界向外移動,將每個遇到的加工映射成i控制下的一個低層模塊i沿輸出通路向外移動,將每個加工映射成直接或間接受o控制的低層模塊ocbda系統(tǒng)軟件結(jié)構(gòu)數(shù)字儀表板控制數(shù)據(jù)轉(zhuǎn)換控制驅(qū)動儀表板接收傳感器信號計算gph轉(zhuǎn)換成rpm讀燃料流收集sps讀旋轉(zhuǎn)信號確定加/減速計算mph計算mpg計算里程加/減速顯示顯示mph顯示mpg顯示里程發(fā)出鈴聲發(fā)光二極管顯示轉(zhuǎn)換成rpm求精:高內(nèi)聚、低耦合!求精系統(tǒng)軟件結(jié)構(gòu)數(shù)字儀表板控制數(shù)據(jù)轉(zhuǎn)換控制驅(qū)動儀表板接收傳感器信號計算gph讀燃料流讀旋轉(zhuǎn)信號確定加/減速計算mph計算mpg計算里程加/減速顯示顯示mph顯示mpg顯示里程發(fā)出鈴聲發(fā)光二極管顯示轉(zhuǎn)換成rpm模塊說明為每個模塊附一個簡要說明/ipo表進出該模塊的信息(接口描述)模塊內(nèi)部的信息過程陳述,包括主要判定點及任務等對約束和特殊特點的簡短討論t②事務設計……ttransactionrequest…actionpaths……iiibac………事務設計的映射方法miiitabc………iiitbac………③綜合設計法變換設計事務設計優(yōu)化控制模塊的合并控制模塊的分解sa/sd方法的特點優(yōu)點自頂向下,逐步求精各模塊可單獨設計、編碼、測試、修改缺點紙上設計,長時間偏離軟件實體開發(fā)周期長剝離了數(shù)據(jù)/功能的關系頂在何方?下到何處?2.面向數(shù)據(jù)結(jié)構(gòu)的設計方法jackson方法(jacksonsystemdevelopment,jsd)warnier方法數(shù)據(jù)結(jié)構(gòu)程序處理過程(1)jackson圖(jacksondiagram)順序結(jié)構(gòu)選擇結(jié)構(gòu)重復結(jié)構(gòu)abcdabocodoab*(2)改進的jackson圖abcd順序結(jié)構(gòu)abocodos(i)選擇結(jié)構(gòu)abo—os(i)可選結(jié)構(gòu)ab*i(i)重復結(jié)構(gòu)(3)jackson方法畫出一輸入、輸出數(shù)據(jù)結(jié)構(gòu)的jackson圖找輸入—輸出數(shù)據(jù)結(jié)構(gòu)的對應關系以輸出數(shù)據(jù)結(jié)構(gòu)為基礎導出程序結(jié)構(gòu)有關系的數(shù)據(jù)單元––合畫一個處理框輸入數(shù)據(jù)結(jié)構(gòu)中余下的數(shù)據(jù)單元––各畫一個輸出數(shù)據(jù)結(jié)構(gòu)中余下的數(shù)據(jù)單元––各畫一個列出所有操作、條件偽碼表示程序【例】統(tǒng)計正文文件空格數(shù)一個正文文件由若干個記錄組成,每個記錄是一個字符串。要求統(tǒng)計每個記錄中空格字符的個數(shù),以及文件中空格字符的總個數(shù)。要求的輸出數(shù)據(jù)格式是:每復制一行輸入字符串之后,另起一行印出這個字符串中的空格數(shù),最后印出文件中空格的總個數(shù)。數(shù)據(jù)結(jié)構(gòu)的jackson圖正文文件輸入數(shù)據(jù)結(jié)構(gòu)字符串*字符*空格o非空格oi(1)i(2)s(3)輸出表格輸出數(shù)據(jù)結(jié)構(gòu)表格體串信息*字符串空格數(shù)i(1)空格總數(shù)2層3層3層4層4層5層1層1層??分析字符*處理空格o處理非空格oi(2)s(3)程序結(jié)構(gòu)的jackson圖統(tǒng)計空格處理字符串*i(1)印字符串印空格數(shù)程序體印空格總數(shù)正文文件輸入數(shù)據(jù)結(jié)構(gòu)字符串*字符*空格o非空格oi(1)i(2)輸出表格輸出數(shù)據(jù)結(jié)構(gòu)表格體串信息*字符串空格數(shù)空格總數(shù)2層3層3層4層4層5層1層1層s(3)i(1)i(1) 文件結(jié)束i(2) 字符串結(jié)束s(3) 字符是空格sum 空格數(shù)totalsum 空格總數(shù)pointer 當前位置分配了所有操作、條件后的程序結(jié)構(gòu)圖統(tǒng)計空格處理字符串*i(1)印字符串印空格數(shù)程序體印空格總數(shù)分析字符串分析字符*處理空格o處理非空格oi(2)s(3)totalsum:=0讀入字符串打開文件sum:=sum+1停止關閉文件sum:=0pointer:=1讀入字符串totalsum:=totalsum+sumpointer:=pointer+1pointer:=pointer+1偽碼表示程序處理過程統(tǒng)計空格seq打開文件讀入字符串totalsum:=0程序體iteruntil文件結(jié)束處理字符串seq印字符串seq印出字符串印字符串endsum:=0pointer:=l分析字符串iteruntil字符串結(jié)束分析字符select字符是空格處理空格seqsum:=sum+1pointer:=pointer+1處理空格end分析字符or字符不是空格處理非空格seqpointer:=pointer+1處理非空格end分析字符end分析字符串end印空格數(shù)seq印出空格數(shù)目印空格數(shù)endtotalsum:=totalsum+sum讀入字符串處理字符串end程序體end印總數(shù)seq印出空格總數(shù)印總數(shù)end關閉文件停止統(tǒng)計空格endjsd方法的特點優(yōu)點面向數(shù)據(jù)的方法適合于以數(shù)據(jù)為主,計算較簡單的事務型處理系統(tǒng)簡化數(shù)據(jù)處理部分的設計缺點模塊與獨立性原則沒有給予應有重視未提供對復雜系統(tǒng)設計過程的支持不適合于大型實時系統(tǒng),非數(shù)據(jù)處理系統(tǒng)的開發(fā)3.原型法原型法又稱為“快速弱功能”法
其核心思想是快速建立一個實現(xiàn)了系統(tǒng)若干功能的(不要求全)可執(zhí)行原型,來啟發(fā)、揭示并能不斷完善,直到滿足用戶全部要求為止
建立規(guī)范模型的步驟弄清用戶/設計者的基本信息需求開發(fā)初始原型系統(tǒng)用原型系統(tǒng)完善用戶/設計者的需求修改和完善原型系統(tǒng)原型法模式需求報告開發(fā)原型滿意完善業(yè)務系統(tǒng)4、過程設計interfacedesignarchitecturaldesigndatadesignthedesignmodelproceduraldesign5.詳細設計詳細設計的任務詳細設計的常用工具詳細設計的過程詳細設計復審詳細設計文檔一、詳細設計的任務
詳細設計的總體目標是確定每個單元的具體實現(xiàn)算法,即對軟件結(jié)構(gòu)圖中的每個模塊進行分析、設計出全部必要的過程細節(jié),并給予清晰的表達,從而在編碼階段可以把這個描述直接翻譯成某種程序設計語言書寫的程序。 詳細設計也叫做過程設計或程序設計,它不同于編碼或編程。在過程設計階段,要決定各個模塊的實現(xiàn)算法,并精確地表達這些算法。為此應提供詳細設計的表達工具。二、詳細設計表示法流程圖
pda偽碼1.程序流程圖(pfd)例:求n個元數(shù)組數(shù)中的最大值2.問題分析圖(pad)例:求一組數(shù)中的最大值pdl(programdesignlanguage)pdl是一種用于描述功能模塊的算法設計和加工細節(jié)的語言。稱為設計程序用語言。它是一種偽碼。有多種不同的形式。偽碼的語法規(guī)則分為“外語法”和“內(nèi)語法”。pdl具有嚴格的關鍵字外語法,用于定義控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),同時它又有靈活、自由的表示實際操作和條件的內(nèi)語法例:求一組數(shù)中的最大值declareintarrayaget(arra
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 瓷磚鋪裝技術升級-洞察及研究
- 未來五年汽車拋光服務企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略分析研究報告
- 未來五年境外就業(yè)服務企業(yè)縣域市場拓展與下沉戰(zhàn)略分析研究報告
- 未來五年深冷技術裝備企業(yè)縣域市場拓展與下沉戰(zhàn)略分析研究報告
- 未來五年食品科學服務企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略分析研究報告
- 未來五年豬企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略分析研究報告
- 2026山東威海市乳山市屬國有企業(yè)招聘16人備考題庫有答案詳解
- 2025四川成都錦城逸景社區(qū)衛(wèi)生服務中心招聘公衛(wèi)科、兒??谱o士工作人員8人備考題庫有答案詳解
- 2026年福建莆田市霞林學校初中部教師招聘備考題庫含答案詳解
- 2025山東勞動職業(yè)技術學院招聘8人備考題庫及完整答案詳解一套
- 漢源縣審計局關于公開招聘編外專業(yè)技術人員的備考題庫附答案
- GB/T 46758-2025紙漿硫酸鹽法蒸煮液總堿、活性堿和有效堿的測定(電位滴定法)
- 2026屆福建省龍巖市龍巖一中生物高一第一學期期末綜合測試試題含解析
- 2026年上海市普陀區(qū)社區(qū)工作者公開招聘筆試參考題庫及答案解析
- 二元思辨:向外探索(外)與向內(nèi)審視(內(nèi))-2026年高考語文二元思辨作文寫作全面指導
- 智能清掃機器人設計與研發(fā)方案
- 《中華人民共和國危險化學品安全法》全套解讀
- 糖尿病足護理指導
- 甲狀腺腫瘤的課件
- 新型鋁合金雨棚施工方案
- 戰(zhàn)略屋策略體系roadmapPP T模板(101 頁)
評論
0/150
提交評論