軟件工程課件第五章_第1頁
軟件工程課件第五章_第2頁
軟件工程課件第五章_第3頁
軟件工程課件第五章_第4頁
軟件工程課件第五章_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論