




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1第五章總體設(shè)計(jì)2教學(xué)內(nèi)容5.1設(shè)計(jì)過程5.2設(shè)計(jì)原理5.3啟發(fā)規(guī)則5.4描繪軟件結(jié)構(gòu)的圖形工具5.5面向數(shù)據(jù)流的設(shè)計(jì)方法5.6小結(jié)3學(xué)習(xí)目標(biāo)掌握:
1、軟件設(shè)計(jì)過程中應(yīng)遵循的基本原理和相關(guān)概念;
2、描繪軟件結(jié)構(gòu)的圖形工具的運(yùn)用;
3、面向數(shù)據(jù)流設(shè)計(jì)方法概念;變換分析、事務(wù)分析法過程和應(yīng)用。理解:
1、典型的總體設(shè)計(jì)過程包括的步驟;
2、設(shè)計(jì)中的啟發(fā)式規(guī)則;4重點(diǎn)和難點(diǎn)重點(diǎn):
軟件設(shè)計(jì)過程中應(yīng)遵循的基本原理;面向數(shù)據(jù)流的設(shè)計(jì)方法。難點(diǎn):
變換分析、事務(wù)分析法的過程和應(yīng)用。5前言軟件設(shè)計(jì)的目標(biāo)和任務(wù)
軟件需求:解決“做什么”
軟件設(shè)計(jì):解決“怎么做”
●軟件設(shè)計(jì)的任務(wù):以軟件需求規(guī)格說明書為依據(jù),著手實(shí)現(xiàn)軟件的需求,并將設(shè)計(jì)的結(jié)果反映在“設(shè)計(jì)規(guī)格說明書”文檔中?!褴浖O(shè)計(jì)的重要性:是軟件開發(fā)階段的第一步,最終影響軟件實(shí)現(xiàn)的成敗和軟件維護(hù)的難易程度。6軟件設(shè)計(jì)的兩個階段
第一階段:概要設(shè)計(jì)(總體設(shè)計(jì))
根據(jù)軟件需求,設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),確定程序的組成模塊及模塊之間的相互關(guān)系?;卮稹案爬ǖ卣f,系統(tǒng)應(yīng)該如何實(shí)現(xiàn)?”。其重要性是:站在全局高度,從較抽象的層次上分析對比多種可能的系統(tǒng)實(shí)現(xiàn)方案和軟件結(jié)構(gòu),從中選出最佳方案和最合理的軟件結(jié)構(gòu),從而用較低成本開發(fā)出較高質(zhì)量的軟件系統(tǒng)。7第二階段:詳細(xì)設(shè)計(jì)(過程設(shè)計(jì))
確定模塊內(nèi)部的算法和數(shù)據(jù)結(jié)構(gòu);選定某種過程的表達(dá)形式來描述各種算法;產(chǎn)生精確描述各模塊程序過程的詳細(xì)文檔,并進(jìn)行評審。8
軟件結(jié)構(gòu)設(shè)計(jì)以需求分析中得到的數(shù)據(jù)流圖為基礎(chǔ)而進(jìn)行。將需求分析模型轉(zhuǎn)換為軟件設(shè)計(jì)9SA與SD的關(guān)系10第一個階段總體設(shè)計(jì)的任務(wù)
①
制定規(guī)范②設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu)(簡稱軟件結(jié)構(gòu))③處理方式設(shè)計(jì)④數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計(jì)⑤可靠性設(shè)計(jì)⑥編寫概要設(shè)計(jì)文檔⑦概要設(shè)計(jì)評審前進(jìn)11①制定規(guī)范
為軟件開發(fā)小組制定在進(jìn)行軟件設(shè)計(jì)時,應(yīng)該共同遵守的標(biāo)準(zhǔn),以便協(xié)調(diào)組內(nèi)各成員的工作。返回12②軟件結(jié)構(gòu)設(shè)計(jì)
包括:將系統(tǒng)按功能劃分成模塊確定每個模塊的功能確定模塊之間的調(diào)用關(guān)系確定模塊之間的接口,即模塊之間傳遞的信息評價(jià)模塊結(jié)構(gòu)的質(zhì)量返回13③處理方式設(shè)計(jì)包括:
●功能設(shè)計(jì):確定實(shí)現(xiàn)功能需求必須的算法,評估算法的性能
●性能設(shè)計(jì):確定實(shí)現(xiàn)性能需求必須的算法和模塊間的控制方式
返回14§5.1概要設(shè)計(jì)的過程
15§5.2設(shè)計(jì)遵循的基本原理
5.2.1模塊化5.2.2抽象5.2.3逐步求精5.2.4信息隱蔽和局部化5.2.5模塊獨(dú)立前進(jìn)16§5.2.1模塊化(Modularity)
①什么是模塊和模塊化思想?
采取自頂向下的方式,逐層把軟件系統(tǒng)劃分成若干可單獨(dú)命名和可編址的部分——“模塊”,每個模塊完成一個特定的子功能;所有模塊按某種方法組成一個整體,完成整個系統(tǒng)所要求的功能。軟件系統(tǒng)就是通過這些模塊的組合來實(shí)現(xiàn)。17②模塊化的優(yōu)點(diǎn)
模塊化是軟件解決復(fù)雜問題所具備的手段,可降低軟件復(fù)雜性,減少開發(fā)工作量,從而降低開發(fā)成本,提高軟件生產(chǎn)率,是模塊化的依據(jù)。
設(shè),函數(shù)C(x)定義問題x的復(fù)雜程度;函數(shù)E(x)確定解決問題x需要的工作量(時間);設(shè)P1和P2為兩個問題;則,如果C(P1)>C(P2)E(P1)>E(P2);
根據(jù)解決一般問題的經(jīng)驗(yàn),存在
C(P1+P2)>C(P1)+C(P2)
因此,E(P1+P2)>E(P1)+E(P2)18③模塊化與軟件成本的關(guān)系
19④模塊的基本屬性接口:指模塊的輸入與輸出。功能:指模塊實(shí)現(xiàn)什么功能。邏輯:描述內(nèi)部如何實(shí)現(xiàn)要求的功能及所需的數(shù)據(jù)。狀態(tài):該模塊的運(yùn)行環(huán)境。返回20§5.2.2抽象(Abstraction)①什么是抽象?認(rèn)識復(fù)雜事物和現(xiàn)象時,抽出事物本質(zhì)的共同特性而暫不考慮它們的細(xì)節(jié)。②軟件開發(fā)中的抽象過程的抽象數(shù)據(jù)的抽象
返回21§5.2.3逐步細(xì)化
由NiklausWirth提出的設(shè)計(jì)策略,適用于大而復(fù)雜的軟件系統(tǒng)開發(fā)。
Miller法則:一個人在任何時候都只能把注意力同時集中在(7±2)個知識塊上。但是,在開發(fā)軟件的過程中,軟件工程師在一段時間內(nèi)需要考慮的知識塊數(shù)遠(yuǎn)遠(yuǎn)多于7個。
22自頂向下,逐步細(xì)化的基本思想●將功能、信息的說明分為多個層次,最高層也最抽象——僅僅只是概念性地描述功能或信息,不提供功能的內(nèi)部工作情況或信息的內(nèi)部結(jié)構(gòu);●設(shè)計(jì)者從最高層開始,仔細(xì)推敲,進(jìn)行功能和信息的細(xì)化,給出下層實(shí)現(xiàn)的細(xì)節(jié);●隨著每個后續(xù)細(xì)化逐步的完成,提供越來越多的細(xì)節(jié),最終得出用程序設(shè)計(jì)語言表達(dá)的程序。23結(jié)合了模塊化和逐步細(xì)化思想建立的軟件結(jié)構(gòu)圖
返回24§5.2.4信息隱蔽和局部化
信息隱蔽:在設(shè)計(jì)和確定模塊時,使得一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),不允許其它不需要這些信息的模塊訪問,獨(dú)立的模塊間僅僅交換為完成系統(tǒng)功能而必須交換的信息。局部化:將一些關(guān)系密切都軟件元素物理地放得彼此靠近。返回25§5.2.5模塊獨(dú)立
1、什么是模塊獨(dú)立性(moduleindependence)
●模塊只完成系統(tǒng)要求的相對獨(dú)立的功能●符合信息隱蔽原則●模塊間關(guān)連和依賴程度盡量小2、模塊獨(dú)立的優(yōu)點(diǎn)容易開發(fā)、測試和維護(hù)返回263、衡量模塊獨(dú)立性的兩個準(zhǔn)則
①耦合性(coupling)②內(nèi)聚性(cohesion)27①耦合性(coupling)
也稱塊間的聯(lián)系。是對軟件系統(tǒng)結(jié)構(gòu)中,各模塊間相互聯(lián)系緊密程度的一種度量。
設(shè)計(jì)目標(biāo):低耦合
圖形表示耦合關(guān)系28無直接耦合(NondirectCoupling)兩個模塊沒有直接關(guān)系,模塊獨(dú)立性最強(qiáng)。圖例:模塊1與模塊2;模塊3與模塊429
屬松散耦合。一模塊訪問另一模塊時,通過數(shù)據(jù)參數(shù)交換輸入、輸出信息。數(shù)據(jù)耦合(DataCoupling)30控制耦合(ControlCoupling)
模塊之間傳遞的是控制信息(如開關(guān)、標(biāo)志、名字等),控制被調(diào)用模塊的內(nèi)部邏輯31控制耦合舉例
32去除模塊間控制耦合的方法
控制耦合增加了理解和編程的復(fù)雜性,調(diào)用模塊必須知道被調(diào)模塊的內(nèi)部邏輯,增加了相互依賴。解決方法:
(1)將被調(diào)用模塊內(nèi)的判定上移到調(diào)用模塊中進(jìn)行
(2)被調(diào)用模塊分解成若干單一功能模塊33模塊間耦合強(qiáng)度
34
?一模塊對另一模塊的引用?一模塊向另一模塊傳遞的數(shù)據(jù)量?一模塊施加到另一模塊的控制的數(shù)量?
模塊間接口的復(fù)雜程度耦合強(qiáng)度依賴的因素:35降低耦合度的設(shè)計(jì)原則
1、根據(jù)問題特點(diǎn),選擇合適的耦合類型。
盡量使用數(shù)據(jù)耦合,少用控制耦合和外部耦合,限制公共耦合的范圍,完全不用內(nèi)容耦合。
2、降低模塊接口的復(fù)雜性。
減少每個模塊的參數(shù)個數(shù);盡量使用標(biāo)準(zhǔn)過程調(diào)用方式,少用直接引用的方式;傳送的信息以標(biāo)準(zhǔn)、直接的方式提供。
3、把模塊的通信信息放在緩沖區(qū)中。返回36②內(nèi)聚性(cohesion)
又稱塊內(nèi)聯(lián)系。指一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度的度量。若一個模塊內(nèi)各元素(語句之間、程序段之間)聯(lián)系的越緊密,則它的內(nèi)聚性就越高。
設(shè)計(jì)目標(biāo):高內(nèi)聚37巧合內(nèi)聚(偶然內(nèi)聚,CoincidentalCohesion)
塊內(nèi)各組成成份在功能上是互不相關(guān)的。38邏輯內(nèi)聚(LogicalCohesion)
把幾種相關(guān)功能(邏輯上相似的功能)組合在一模塊內(nèi),每次調(diào)用由傳給模塊的參數(shù)確定執(zhí)行哪種功能。39邏輯內(nèi)聚模塊
40模塊間內(nèi)聚的類型
41總結(jié):耦合、內(nèi)聚與模塊獨(dú)立性關(guān)系
耦合與內(nèi)聚都是模塊獨(dú)立性的定性標(biāo)準(zhǔn),都反映模塊獨(dú)立性的良好程度。但耦合是直接的主導(dǎo)因素,內(nèi)聚則輔助耦合共同對模塊獨(dú)立性進(jìn)行衡量。
設(shè)計(jì)要求:低耦合,高內(nèi)聚
返回42§5.3啟發(fā)規(guī)則
改進(jìn)原則:高內(nèi)聚、低耦合①改進(jìn)軟件結(jié)構(gòu),提高模塊獨(dú)立性②模塊規(guī)模適中③深度、寬度、扇出和扇入適中④將模塊的影響限制在控制范圍內(nèi)⑤降低模塊接口的復(fù)雜性⑥設(shè)計(jì)單入口單出口的模塊⑦模塊功能可預(yù)測43①改進(jìn)軟件結(jié)構(gòu),提高模塊獨(dú)立性通過模塊分解或合并,降低耦合提高內(nèi)聚。44②模塊規(guī)模適中
模塊過大:可理解程度下降模塊過?。洪_銷大于有效操作系統(tǒng)接口復(fù)雜在考慮模塊的獨(dú)立性同時,為了增加可理解性,模塊的大小最好在50-150條語句左右,可以用1-2頁打印紙打印,便于人們閱讀與研究。45③深度、寬度、扇出和扇入適中
46例:避免平鋪結(jié)構(gòu)47增加中間層降低扇出48§5.4描繪軟件結(jié)構(gòu)的圖形工具§5.4.1層次圖和HIPO圖
描述軟件的層次結(jié)構(gòu)。層次圖中,一個方框代表一個模塊,方框間的連線表示調(diào)用關(guān)系。
HIPO圖=層次圖+IPO圖49正文加工系統(tǒng)
50酒店管理信息系統(tǒng)功能結(jié)構(gòu)圖51§5.4.2結(jié)構(gòu)圖(SCStructureChart)
調(diào)用直線邊的小箭頭,表示調(diào)用時從一個模塊傳給另一個模塊的數(shù)據(jù),也指出了傳送方向。52§5.5面向數(shù)據(jù)流的設(shè)計(jì)方法§5.5.1概念
數(shù)據(jù)流可分為兩種類型:●變換型數(shù)據(jù)流●事務(wù)型數(shù)據(jù)流53變換型數(shù)據(jù)流基本模型特點(diǎn):具有明確的傳入、變換(或稱主加工)和傳出界面的DFD54另一種表示圖:55變換型數(shù)據(jù)流舉例
56●事務(wù)型數(shù)據(jù)流基本模型57例1:汽車數(shù)字儀表板功能(教材P96-101面)1)通過A/D轉(zhuǎn)換實(shí)現(xiàn)傳感器和微處理器接口,2)在發(fā)光二極管面板上顯示數(shù)據(jù),3)指示每小時英里數(shù)(mph),行駛的里程,每加倫油行駛的英里數(shù)(mpg)等等。4)指示加速或減速;5)超速警告:如果車速超過55英里/小時,則發(fā)出超速警告鈴聲?!?.5.2變換分析5859§5.5.3事務(wù)分析適用情況:數(shù)據(jù)流具有明顯的事務(wù)中心。事務(wù)分析步驟
(1)在DFD上確定事務(wù)中心、接收部分和發(fā)送部分。(2)畫出SC框架,把DFD上的三部分分別映射為事務(wù)控制模塊、接收模塊和動作發(fā)送模塊。(3)分解細(xì)化接收分支和發(fā)送分支,完成初始SC。60總結(jié):面向數(shù)據(jù)流方法的設(shè)計(jì)過程
61總結(jié):面向數(shù)據(jù)流設(shè)計(jì)方法的設(shè)計(jì)步驟
(1)精化DFD(2)確定DFD類型(3)把
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位整修合同范本
- 2025年天津從業(yè)資格證貨運(yùn)題庫答案大全
- 關(guān)于消防器材購買合同范本
- 企業(yè)聯(lián)營合作合同范本
- 醫(yī)美手術(shù)合同范本
- 單位公車出租合同范本
- 加高工程合同范本
- 農(nóng)戶合同范本
- 劇組服裝采購合同范本
- 共享單車租金合同范本
- 《體育開學(xué)第一課:體育常規(guī)教育》課件
- 上海市高新技術(shù)成果轉(zhuǎn)化項(xiàng)目認(rèn)定申請書
- 休閑體育小鎮(zhèn)規(guī)劃方案
- 海南紅色拓展培訓(xùn)方案
- 鎂合金汽車輪轂的研究與開發(fā)
- 新能源船舶動力系統(tǒng)的工程實(shí)踐
- SHAFER氣液聯(lián)動執(zhí)行機(jī)構(gòu)培訓(xùn)
- 小學(xué)生守則、日常行為規(guī)范教育實(shí)施方案
- 湖南省六年級上冊數(shù)學(xué)期末試卷(含答案)
- 部編版小學(xué)六年級道德與法治下冊課堂達(dá)標(biāo)檢測試卷全冊含答案
- 巖土工程中的非線性問題分析
評論
0/150
提交評論