軟件工程第5章總體設(shè)計2_第1頁
軟件工程第5章總體設(shè)計2_第2頁
軟件工程第5章總體設(shè)計2_第3頁
軟件工程第5章總體設(shè)計2_第4頁
軟件工程第5章總體設(shè)計2_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、結(jié)構(gòu)化設(shè)計方法結(jié)構(gòu)化設(shè)計方法( (SD- Structured Design) ) 結(jié)構(gòu)化設(shè)計就是采用最佳的可能方法設(shè)計系統(tǒng)各組成部分以及各成分之間的相互聯(lián)系的技術(shù),也可以說,結(jié)構(gòu)化設(shè)計是這樣一個過程,它決定用哪些方法把哪些部分聯(lián)系起來,才能解決好某個具有清楚定義的問題. 結(jié)構(gòu)化設(shè)計方法是基于模塊化、自頂向下細化、結(jié)構(gòu)模塊化、自頂向下細化、結(jié)構(gòu)化程序設(shè)計化程序設(shè)計等程序設(shè)計技術(shù)基礎(chǔ)發(fā)展起來的。 它所提供的方法和原則,主要是用來指導(dǎo)軟件的概要設(shè)計。它還提供了一種 “結(jié)構(gòu)圖” 的描述工具,是專門用來描述軟件的總體結(jié)構(gòu)的。 結(jié)構(gòu)化設(shè)結(jié)構(gòu)化設(shè)計的計的目的目的 使程序的結(jié)構(gòu)盡可能反使程序的結(jié)構(gòu)盡可能反映

2、映要解決的問題的結(jié)構(gòu)要解決的問題的結(jié)構(gòu)結(jié)構(gòu)化設(shè)結(jié)構(gòu)化設(shè)計的計的任務(wù)任務(wù) 完成目標系統(tǒng)的完成目標系統(tǒng)的系統(tǒng)結(jié)構(gòu)圖系統(tǒng)結(jié)構(gòu)圖() 結(jié)構(gòu)化設(shè)計屬于結(jié)構(gòu)化設(shè)計屬于面向數(shù)據(jù)流面向數(shù)據(jù)流 的設(shè)計方法。的設(shè)計方法。 在軟件的需求分析階段,數(shù)據(jù)流是軟件開發(fā)人員考慮問題的出在軟件的需求分析階段,數(shù)據(jù)流是軟件開發(fā)人員考慮問題的出發(fā)點和基礎(chǔ)。數(shù)據(jù)流從系統(tǒng)的輸入端向輸出端,則要經(jīng)歷一系列的發(fā)點和基礎(chǔ)。數(shù)據(jù)流從系統(tǒng)的輸入端向輸出端,則要經(jīng)歷一系列的變換或處理。用來表現(xiàn)這個過程的數(shù)據(jù)流(變換或處理。用來表現(xiàn)這個過程的數(shù)據(jù)流(DFD),),實際上就是軟件實際上就是軟件系統(tǒng)的邏輯模型。系統(tǒng)的邏輯模型。 面向數(shù)據(jù)流的設(shè)計要解決

3、的任務(wù),就是在上述需求分析的基礎(chǔ)面向數(shù)據(jù)流的設(shè)計要解決的任務(wù),就是在上述需求分析的基礎(chǔ)上,將上,將DFD圖圖 映射(映射(MappingMapping)- - 軟件系統(tǒng)的結(jié)構(gòu)軟件系統(tǒng)的結(jié)構(gòu)。 換句話說,這類設(shè)計方法,允許把用換句話說,這類設(shè)計方法,允許把用 DFDDFD圖表示的系統(tǒng)邏輯模圖表示的系統(tǒng)邏輯模型,很方便地轉(zhuǎn)換成對于軟件結(jié)構(gòu)的初始設(shè)計描述。型,很方便地轉(zhuǎn)換成對于軟件結(jié)構(gòu)的初始設(shè)計描述。 結(jié)構(gòu)化設(shè)計方法中,軟件的結(jié)構(gòu)一律用結(jié)構(gòu)化設(shè)計方法中,軟件的結(jié)構(gòu)一律用 圖來描述。圖來描述。目標系統(tǒng)的DFDSC 圖 - Structured Chart 該圖常用來表示系統(tǒng)的該圖常用來表示系統(tǒng)的軟件結(jié)

4、構(gòu)軟件結(jié)構(gòu)。利用。利用它可以清楚地表達軟件結(jié)構(gòu)中它可以清楚地表達軟件結(jié)構(gòu)中模塊間的層次模塊間的層次調(diào)用關(guān)系和模塊之間的聯(lián)系調(diào)用關(guān)系和模塊之間的聯(lián)系。 SD目標系統(tǒng)的SC1、在系統(tǒng)結(jié)構(gòu)圖中的模塊一、典型的系統(tǒng)一、典型的系統(tǒng)結(jié)構(gòu)形式結(jié)構(gòu)形式原子模塊: 在系統(tǒng)結(jié)構(gòu)圖中通常是指不能再分割的底層模塊 完全因子分解系統(tǒng) 如果一個軟件系統(tǒng),它的全部實際加工 (即數(shù)據(jù)計算或處理)都是由底層的原子模塊來 完成,而其它所有非原子模塊僅僅執(zhí)行控制或 協(xié)調(diào)功能。傳入模塊AA傳入模塊 從下屬模塊取得數(shù)據(jù),進行某些處理,再將其結(jié)果 傳給上級模塊。在此,將它傳送的數(shù)據(jù)流稱為邏輯輸入 數(shù)據(jù)流。 在系統(tǒng)結(jié)構(gòu)圖中有四種類型的模塊

5、:邏輯輸入數(shù)據(jù)流成績錄入成績錄入 傳出模塊 從上級模塊獲得數(shù)據(jù),進行某些處理,再將其結(jié)果 傳給下屬模塊。在此,將它傳送的數(shù)據(jù)流稱為邏輯輸出 數(shù)據(jù)流。 傳出模塊DD邏輯輸出數(shù)據(jù)流成績輸出成績輸出 變換模塊 也叫加工模塊。它是從上級模塊獲得數(shù)據(jù),進行 特定的處理,將其轉(zhuǎn)換為其他形式,再傳回上級模塊 它所加工的數(shù)據(jù)流叫做變換數(shù)據(jù)流。 變換模塊CB變換數(shù)據(jù)流協(xié)調(diào)模塊 對所有下屬模塊進行協(xié)調(diào)和管理的模塊。在一個 好的系統(tǒng)結(jié)構(gòu)圖中,協(xié)調(diào)模塊應(yīng)在較高層出現(xiàn)。協(xié)調(diào)模塊YXYX1變換流變換流 根據(jù)基本系統(tǒng)模型,信息通常以根據(jù)基本系統(tǒng)模型,信息通常以“外部世界外部世界”的形式進的形式進入軟件系統(tǒng),經(jīng)過處理后再以入

6、軟件系統(tǒng),經(jīng)過處理后再以“外部世界外部世界”的形式離開的形式離開系統(tǒng)。信息沿輸入通路進入系統(tǒng),同時由外部形式變換系統(tǒng)。信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)加工處成內(nèi)部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。當(dāng)理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。當(dāng)數(shù)據(jù)流圖具有這些特征時,這種信息流就叫做數(shù)據(jù)流圖具有這些特征時,這種信息流就叫做變換流變換流。5.5.1 基本概念基本概念目標目標:是給出設(shè)計軟件結(jié)構(gòu)的一個系統(tǒng)化的途徑是給出設(shè)計軟件結(jié)構(gòu)的一個系統(tǒng)化的途徑。5.5 面向數(shù)據(jù)流的設(shè)計方法面向數(shù)據(jù)流的設(shè)

7、計方法1、變換型數(shù)據(jù)流圖、變換型數(shù)據(jù)流圖輸入變換輸出2事務(wù)流事務(wù)流當(dāng)數(shù)據(jù)流圖當(dāng)數(shù)據(jù)流圖“以事務(wù)為中心以事務(wù)為中心”,也就是說,數(shù),也就是說,數(shù)據(jù)沿輸入通路到達一個處理據(jù)沿輸入通路到達一個處理T T,這個處理根據(jù)輸,這個處理根據(jù)輸入數(shù)據(jù)的類型在若干個動作序列中選出一個來入數(shù)據(jù)的類型在若干個動作序列中選出一個來執(zhí)行。這類系統(tǒng)的特征,是具有在多種事務(wù)中執(zhí)行。這類系統(tǒng)的特征,是具有在多種事務(wù)中選擇執(zhí)行某種事務(wù)的能力。事務(wù)型結(jié)構(gòu)由至少選擇執(zhí)行某種事務(wù)的能力。事務(wù)型結(jié)構(gòu)由至少一條接受路徑、一個事務(wù)中心和若干條動作路一條接受路徑、一個事務(wù)中心和若干條動作路徑組成。這類數(shù)據(jù)流應(yīng)該劃為一類特殊的數(shù)據(jù)徑組成。這類

8、數(shù)據(jù)流應(yīng)該劃為一類特殊的數(shù)據(jù)流,稱為流,稱為事務(wù)流事務(wù)流。 2、事務(wù)型數(shù)據(jù)流圖、事務(wù)型數(shù)據(jù)流圖事務(wù)中心活動通路T事務(wù)3.變換型系統(tǒng)結(jié)構(gòu)圖取得數(shù)據(jù)iaeo變換數(shù)據(jù)給出數(shù)據(jù)傳入部分變換中心傳出部分- 具有變換型數(shù)據(jù)流圖主模塊C變換成D取得C給出D取得BB變換成CD變換成E給出E取得AA變換成BAABBBCCDCDED取得數(shù)據(jù)CD變換數(shù)據(jù)給出數(shù)據(jù)協(xié)調(diào)模塊變換模塊傳出模塊- 具有變換型系統(tǒng)結(jié)構(gòu)圖DFD-SC傳入模塊“事務(wù)” 引起、觸發(fā)或啟動某一引起、觸發(fā)或啟動某一動作或一串動作的任何數(shù)據(jù)動作或一串動作的任何數(shù)據(jù)、控制信號、事件或狀態(tài)的、控制信號、事件或狀態(tài)的變化。變化。4.事務(wù)型系統(tǒng)結(jié)構(gòu)圖 由它接受一

9、項事務(wù),根據(jù)事務(wù)處理的特點和性質(zhì)由它接受一項事務(wù),根據(jù)事務(wù)處理的特點和性質(zhì) 選擇分配一個適當(dāng)?shù)奶幚韱卧?,然后給出結(jié)果。選擇分配一個適當(dāng)?shù)奶幚韱卧?,然后給出結(jié)果。輸入輸入- 事務(wù)型事務(wù)型 數(shù)據(jù)流圖數(shù)據(jù)流圖ABCDEFGH中心變換中心變換輸出輸出上圖所示的是最典型的事務(wù)型的上圖所示的是最典型的事務(wù)型的DFD圖,當(dāng)外部信息沿接受路圖,當(dāng)外部信息沿接受路徑進入系統(tǒng)后,經(jīng)過事務(wù)中心的識別和分析獲得某一特定值,徑進入系統(tǒng)后,經(jīng)過事務(wù)中心的識別和分析獲得某一特定值,就可以根據(jù)這個特定的值來啟動與該特定值相應(yīng)的動作路徑。就可以根據(jù)這個特定的值來啟動與該特定值相應(yīng)的動作路徑。這類結(jié)構(gòu)的特征,是具有能在這類結(jié)構(gòu)的

10、特征,是具有能在多種事務(wù)中選擇執(zhí)行某一事務(wù)的多種事務(wù)中選擇執(zhí)行某一事務(wù)的能力。能力。像在現(xiàn)代軟件中常見的像在現(xiàn)代軟件中常見的菜單選擇菜單選擇,就是事務(wù)型結(jié)構(gòu)的一,就是事務(wù)型結(jié)構(gòu)的一個典型的實例。個典型的實例。輸入輸入- 事務(wù)型事務(wù)型 數(shù)據(jù)流圖數(shù)據(jù)流圖ABCDEFGH中心變換中心變換輸出輸出邏輯邏輯輸入輸入物理物理輸入輸入邏輯邏輯輸出輸出物理物理輸出輸出中心變換部分是系統(tǒng)的中心加工部分。從輸入設(shè)備獲得的物理輸入中心變換部分是系統(tǒng)的中心加工部分。從輸入設(shè)備獲得的物理輸入一般要經(jīng)過編輯、數(shù)制轉(zhuǎn)換、格式變換以及合法性檢查等一系列的一般要經(jīng)過編輯、數(shù)制轉(zhuǎn)換、格式變換以及合法性檢查等一系列的預(yù)處理操作,最

11、后才變成邏輯輸入傳送給事務(wù)中心。同樣,從事務(wù)預(yù)處理操作,最后才變成邏輯輸入傳送給事務(wù)中心。同樣,從事務(wù)中心中又產(chǎn)生的是邏輯輸出,它要經(jīng)過格式轉(zhuǎn)換、組成物理塊等一中心中又產(chǎn)生的是邏輯輸出,它要經(jīng)過格式轉(zhuǎn)換、組成物理塊等一系列處理后,才成為物理輸出。所謂邏輯輸入,是指離物理輸入端系列處理后,才成為物理輸出。所謂邏輯輸入,是指離物理輸入端最遠,但仍可以被看作系統(tǒng)的輸入的那些數(shù)據(jù)流。邏輯輸出則是離最遠,但仍可以被看作系統(tǒng)的輸入的那些數(shù)據(jù)流。邏輯輸出則是離系統(tǒng)的物理輸出端最遠,但仍可視為系統(tǒng)的輸出的數(shù)據(jù)流。系統(tǒng)的物理輸出端最遠,但仍可視為系統(tǒng)的輸出的數(shù)據(jù)流。 在事務(wù)型系統(tǒng)結(jié)構(gòu)圖中,事務(wù)中心模塊按所接受的

12、事務(wù)的類型,選擇某一個事務(wù)處理模塊執(zhí)行。u 各個事務(wù)處理模塊是并列的,依賴于一定的選擇條件,分別完成不同的事務(wù)處理工作。每個事務(wù)處理模塊可能要調(diào)用若干個操作模塊,而操作模塊又可能調(diào)用若干個細節(jié)模塊。u 由于不同的事務(wù)處理模塊可能有共同的操作,所以某些事務(wù)處理模塊可能共享一些操作模塊。同樣不同的操作模塊可以有相同的細節(jié),所以某些操作模塊又可以共享一些細節(jié)模塊。u 對于事務(wù)型系統(tǒng)的結(jié)構(gòu)圖可以有多種不同的形式。例如,有多層操作層或沒有操作層。事務(wù)中心輸入已分析的作業(yè)內(nèi)部表示的作業(yè)結(jié)果- 事務(wù)型系統(tǒng)結(jié)構(gòu)(層次)圖輸出結(jié)果調(diào)度作業(yè)信息讀入作業(yè)分析作業(yè)事務(wù)1事務(wù)2事務(wù)3事務(wù)4操作2操作3 操作4 操作5操

13、作6操作1細節(jié)2細節(jié)3 細節(jié)4 細節(jié)5細節(jié)6細節(jié)1細節(jié)7結(jié)果-簡化的事務(wù)型系統(tǒng)結(jié)構(gòu)圖事務(wù)中心得到作業(yè) 作業(yè)結(jié)果輸出結(jié)果分析 調(diào)度事務(wù)1事務(wù)2事務(wù)3 簡化了的事務(wù)型系統(tǒng)結(jié)構(gòu)圖是把分析作業(yè)和調(diào)度都歸入事務(wù)中心模塊:SDSD方法方法實施的要點是:方法方法實施的要點是:(1 1)首先研究、分析和審查數(shù)據(jù)流圖,從軟件的需)首先研究、分析和審查數(shù)據(jù)流圖,從軟件的需求規(guī)格說明中弄清數(shù)據(jù)流加工的過程。求規(guī)格說明中弄清數(shù)據(jù)流加工的過程。(2 2)然后根據(jù)數(shù)據(jù)流圖決定問題的類型,即確定是)然后根據(jù)數(shù)據(jù)流圖決定問題的類型,即確定是變換型變換型還是還是事務(wù)型事務(wù)型。針對兩種不同的類型分別進行分。針對兩種不同的類型分別

14、進行分析處理。析處理。(3 3)由數(shù)據(jù)流圖推導(dǎo)出系統(tǒng)的初始結(jié)構(gòu)圖。)由數(shù)據(jù)流圖推導(dǎo)出系統(tǒng)的初始結(jié)構(gòu)圖。(4 4)利用一些試探性原則來改進系統(tǒng)的初始結(jié)構(gòu)圖,)利用一些試探性原則來改進系統(tǒng)的初始結(jié)構(gòu)圖,直到得到符合要求的結(jié)構(gòu)圖為止。直到得到符合要求的結(jié)構(gòu)圖為止。(5 5)修改和補充數(shù)據(jù)詞典。)修改和補充數(shù)據(jù)詞典。 (6 6)制定測試計劃。)制定測試計劃。 二、二、SD方法概述方法概述精化數(shù)據(jù)流圖流類型映射成事務(wù)結(jié)構(gòu)區(qū)分事務(wù)中心和數(shù)據(jù)接收通路映射成變換結(jié)構(gòu)區(qū)分輸入和輸出分支用啟發(fā)式設(shè)計規(guī)則精化軟件結(jié)構(gòu)導(dǎo)出接口描述和全程數(shù)據(jù)結(jié)構(gòu)復(fù)查詳細設(shè)計事務(wù)分析變換分析“事務(wù)”“變換”正確錯誤面向數(shù)據(jù)流方法的設(shè)計過

15、程面向數(shù)據(jù)流方法的設(shè)計過程5.5.2 變換分析變換分析將具有將具有變換型變換型的的DFD圖導(dǎo)出圖導(dǎo)出SC圖圖在 圖上標出邏輯輸入、邏輯輸出和變換中心的分界abdvrp變換中心變換中心c,e 邏輯輸入w,u 邏輯輸出- 具有變換型數(shù)據(jù)流圖DFD的分析和劃分對于較復(fù)雜的DFD,不同的設(shè)計人員可能得出不同的劃分結(jié)果。以下是幾種可能遇到的情況及其處理方法:n有些系統(tǒng)沒有變換中心,邏輯輸入和邏輯輸出是完全相同的數(shù)據(jù)流,此時應(yīng)如實劃分為傳入和傳出兩部分n變換中心甚至傳出部分也可能從系統(tǒng)外接收某些輸入數(shù)據(jù)流,稱為二次輸入數(shù)據(jù),分析時應(yīng)照實情把二次輸入數(shù)據(jù)看成變換中心或輸出部分的一個成分;n有些DFD可能缺少

16、應(yīng)有的細節(jié),設(shè)計人員可對用做分析的DFD進行補充,必要時甚至重畫完成第一級分解abvrpdeCmCACTCEC,eC,eU,wU,w變換中心變換中心頂層 用于控制的主模塊第一層第一級分解后的 SC 圖協(xié)調(diào)模塊YXYX輸入信息處理控制模塊輸入信息處理控制模塊,協(xié)調(diào)協(xié)調(diào)對所有輸入數(shù)據(jù)的接收對所有輸入數(shù)據(jù)的接收輸出信息處理控制模塊,協(xié)輸出信息處理控制模塊,協(xié)調(diào)輸出信息的產(chǎn)生過程調(diào)輸出信息的產(chǎn)生過程變換中心控制模塊,管理對變換中心控制模塊,管理對內(nèi)部形式的數(shù)據(jù)的所有操作內(nèi)部形式的數(shù)據(jù)的所有操作abvrpdeCmCA1CE1C eU CA2QPRCE2e c,p pr r w,uw上圖是SC的另一種畫法

17、,在第一層不是每一分支只畫一個模塊,而是按實際情況確定模塊的數(shù)量。邏輯輸入和邏輯輸出都具有兩個數(shù)據(jù)流,而中心加工含有三個加工,故可畫出(2+3+2)共7個模塊。n對一個大型系統(tǒng)中的復(fù)雜數(shù)據(jù)流可以用兩個或多個模塊完成上述一個模塊的控制功能;n在能夠完成控制功能并且保持好的耦合和內(nèi)聚特性的前提下,盡量使第一級控制中模塊數(shù)目取最小值完成第二級分解abvrpde變換中心變換中心把數(shù)據(jù)流圖中的每個處理映射成軟件結(jié)構(gòu)中一個適當(dāng)?shù)哪K:從變換中心的邊界開始沿輸入路徑向外動,把輸入通路中每個處理映射成軟件結(jié)構(gòu)中Ca控制下的一個低層模塊;沿輸出通路向外移動,把輸出通路中每個處理映射成直接或間接受模塊Ce控制的一

18、個低層模塊;把變換中心內(nèi)的每個處理映射成受Ct控制的一個模塊完成第二級分解abvrpdeCa變換中心變換中心對邏輯輸入的分解CEBADabdeccbaABCCaEDde 邏輯輸入模塊的調(diào)用與執(zhí)行過程CACEBADabdecCAGet CGet EBtoCAtoBDtoEaecReadDGet BRead Ac,eabbbcde輸入分支的第二種分解圖:為顯式的表示數(shù)據(jù)流在輸入過程中經(jīng)歷的變換,在圖中增加3個變換模塊,并在模塊中加上Read、Get等字樣,使結(jié)構(gòu)更加清晰明了abvrpdeCE變換中心變換中心對輸出的分解WUVvuwCTQPR eC,prU,w對變換中心加工的分解 prw,u從變換分

19、析導(dǎo)出的初始 SC 圖CACBAEDCTQPRCEWUVCmc, eW,uW,uC,e獲得完整的 圖數(shù)據(jù)流圖數(shù)據(jù)流圖系統(tǒng)結(jié)構(gòu)圖系統(tǒng)結(jié)構(gòu)圖請將上列給出的具有變換型的DFD圖導(dǎo)出它的SC圖a1a2b1c1c1p1P2 運用變換分析方法建立系統(tǒng)的SC時需注意以下幾點: 主模塊主模塊ABCA1A2A3A11A12A13低功能內(nèi)聚信息內(nèi)聚通信內(nèi)聚過程內(nèi)聚時間內(nèi)聚邏輯內(nèi)聚巧合性內(nèi)聚 高強弱 內(nèi)聚性模塊獨立性低非直接耦合數(shù)據(jù)耦合標記耦合控制耦合外部耦合公共耦合內(nèi)容耦合 高弱 強耦合性模塊獨立性 具有高內(nèi)聚低耦合的模塊才是模塊獨立性比較強的模塊。 具有高內(nèi)聚低耦合的模塊才是模塊獨立性比較強的模塊。模塊A模塊D

20、模塊C模塊B非直接耦合通過參數(shù)表通過參數(shù)表傳遞傳遞數(shù)據(jù)數(shù)據(jù)( (數(shù)據(jù)耦合數(shù)據(jù)耦合) )通過參數(shù)表通過參數(shù)表傳遞傳遞數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)( (數(shù)據(jù)耦合數(shù)據(jù)耦合) ) 具有松散型 的耦合類型 假設(shè)儀表板的功能如下:(1)通過模通過模/數(shù)數(shù)(A/D)轉(zhuǎn)換實現(xiàn)傳感器和微處理機接口;轉(zhuǎn)換實現(xiàn)傳感器和微處理機接口;(2)在發(fā)光二極管(在發(fā)光二極管(LCD)面板上顯示數(shù)據(jù);)面板上顯示數(shù)據(jù);(3)指示每小時英里數(shù)(指示每小時英里數(shù)(mph),行駛的里程,每加侖),行駛的里程,每加侖油行駛的英里數(shù)(油行駛的英里數(shù)(mpg)等等;)等等;(4)指示加速或減速;指示加速或減速;(5)超速警告:如果車速超過超速警告:如

21、果車速超過55英里小時,則發(fā)出超英里小時,則發(fā)出超速警告鈴聲。速警告鈴聲。在軟件需求分析階段,應(yīng)該對上述每項性能和其它要在軟件需求分析階段,應(yīng)該對上述每項性能和其它要求進行全面的分析,并建立起相應(yīng)的文檔資料,得出數(shù)據(jù)求進行全面的分析,并建立起相應(yīng)的文檔資料,得出數(shù)據(jù)流圖。流圖。具體的設(shè)計步驟如下:例子例子:一個汽車數(shù)字儀表板的設(shè)計一個汽車數(shù)字儀表板的設(shè)計1、復(fù)查基本、復(fù)查基本系統(tǒng)模型系統(tǒng)模型2、復(fù)查并精化、復(fù)查并精化數(shù)據(jù)流圖數(shù)據(jù)流圖 SPS mph 超超速速值值 計計算算 里里程程 產(chǎn)產(chǎn)生生 加加速速/減減 速速顯顯示示 讀讀入入 旋旋轉(zhuǎn)轉(zhuǎn) 信信號號 收收集集 并并求求 平平均均 旋旋轉(zhuǎn)轉(zhuǎn)信信

22、號號 信信號號數(shù)數(shù) /秒秒 (SPS) 確確定定 加加速速 / 減減速速 箭箭頭頭指指示示 下下箭箭頭頭 水水平平線線 上上箭箭頭頭 轉(zhuǎn)轉(zhuǎn)換換成成 轉(zhuǎn)轉(zhuǎn) /分分 (rpm) 計計算算 mph 和和 超超速速值值 計計算算 燃燃料料 消消耗耗 產(chǎn)產(chǎn)生生 mpg 顯顯示示 讀讀入入 并并核核實實 計計算算 gph 燃燃料料流流量量 傳傳感感器器信信號號 燃燃料料流流量量 gph mph mpg mpg 顯顯示示 產(chǎn)產(chǎn)生生 里里程程 顯顯示示 英英里里 顯顯示示 發(fā)發(fā)出出 警警告告 鈴鈴聲聲 警警告告鈴鈴聲聲 產(chǎn)產(chǎn)生生 mph 顯顯示示 mph 顯顯示示 rpm SPS rpm 3、確定數(shù)據(jù)流圖的類

23、型、確定數(shù)據(jù)流圖的類型這一步的任務(wù)是確定數(shù)據(jù)流圖是變換型數(shù)據(jù)流圖還是事務(wù)型數(shù)據(jù)流圖。先根據(jù)流圖中占優(yōu)勢的屬性,確定數(shù)據(jù)流的全局特性;把具有和全局特性不同的特點的局部區(qū)域孤立出來,以后按照這些子數(shù)據(jù)流的特點精化根據(jù)全局特性得出的軟件結(jié)構(gòu).從上圖中可以看出,數(shù)據(jù)沿著兩條輸入通路(旋轉(zhuǎn)信號和燃料流量傳感器信號)進入系統(tǒng),然后沿著五條通路(4個顯示,一個警告鈴聲)離開,沒有明顯的事務(wù)中心。因此,可以認為這個數(shù)據(jù)流圖的類型是變換型數(shù)據(jù)流圖。4、確定輸入流和輸出流的邊界,從而孤立出變換中心、確定輸入流和輸出流的邊界,從而孤立出變換中心SPSrpmmpg 顯示gphmpgmph(SPS)mph超速值計算里程

24、讀入旋轉(zhuǎn)信號收集并求平均旋轉(zhuǎn)信號信號數(shù)/秒確定加速/減速箭頭指示產(chǎn)生加速/減速顯示下箭頭水平線上箭頭轉(zhuǎn)換成轉(zhuǎn)/分(rpm)計算mph 和超速值計算燃料消耗產(chǎn)生mpg顯示讀入并核實計算gph燃料流量傳感器信號燃料流量產(chǎn)生里程顯示英里顯示發(fā)出警告鈴聲警告鈴聲產(chǎn)生mph顯示mph 顯示SPSrpm5、進行、進行“第一級分解第一級分解”CmCtCaCe第一級分解的方法第一級分解的結(jié)果數(shù)字儀表板控制數(shù)據(jù)轉(zhuǎn)換控制接收傳感器信號驅(qū)動儀表板輸入控制變換控制輸出控制6、進行、進行“第二級分解第二級分解”第二級分解的方法BADCCmCa CB D A第二級分解的結(jié)果:接收傳感器信號轉(zhuǎn)換成 rpm計算 gph收集

25、sps讀旋轉(zhuǎn)信號讀燃料流量接收傳感器信號確定加速/減速計算 mph計算 mpg計算里程 未經(jīng)精化的輸入結(jié)構(gòu) 未經(jīng)精化的變換結(jié)構(gòu) 未經(jīng)精化的輸出結(jié)構(gòu)驅(qū)動儀表板加速/減速顯示顯示 mpg顯示里程發(fā)出警告鈴聲顯示 mph發(fā)光二極管顯示7、使用設(shè)計度量和設(shè)計準則對第一次分割、使用設(shè)計度量和設(shè)計準則對第一次分割得到的軟件結(jié)構(gòu)進一步精化得到的軟件結(jié)構(gòu)進一步精化 對于從前面的設(shè)計步驟得到的軟件結(jié)構(gòu),還可以進行許多修改:(1)輸入結(jié)構(gòu)中的模塊“轉(zhuǎn)換成rpm”和“收集sps”可以合并;(2)模塊“確定加速減速”可以放在模塊“計算mph”下面,以減少耦合;(3)模塊“加速減速顯示”可以相應(yīng)地放在模塊“顯示mph”

26、的下面。精化的數(shù)字儀表板系統(tǒng)的軟件結(jié)構(gòu)數(shù)字儀表板控制接收傳感器信號數(shù)據(jù)轉(zhuǎn)換控制驅(qū)動儀表板計算里程計算mpg計算mph計算gph轉(zhuǎn)換成rpm發(fā)出警報鈴聲顯示里程顯示mpg顯示mph讀旋轉(zhuǎn)信號讀燃料流量確定加速/減速加速/減速顯示發(fā)光二極管顯示從變換分析導(dǎo)出的初始 SC 圖a1a2b1c1c1p1P2 CACTPCEBC1C2Cma2p1,p2p1,p2a2A2A1a1a2p1,p2a2C1P2P1-是將具有事務(wù)型的DFD圖導(dǎo)出SC圖事務(wù)中心事務(wù)源5.5.3 事務(wù)分析事務(wù)分析 在上述的DFD圖中,數(shù)據(jù)流A是一個帶有 “請求請求”性質(zhì)的信息即事務(wù)源。而加工I 則具有 “事務(wù)中心”的功能,它后繼的三個

27、加工L,M,N 是并列的,在加工I的選擇控制下完成不同功能的處理。最后經(jīng)過加工 O 將某一加工處理的結(jié)果整理輸出。事務(wù)分析的映射方法A_CTL調(diào)度調(diào)度接收通路C 通路B 通路總控A通路B_CTLC_CTL接收分支接收分支:映射方法和變換分析類似發(fā)送分支發(fā)送分支:包含一調(diào)度模塊,控制下層的所有活動模塊,每個活動流通路映射成與它的流特征相對應(yīng)的結(jié)構(gòu)主模塊給出H取得ALMNA GHBECF D書庫保管員F2F1F5F6F7- 采購子系統(tǒng)的 SC 圖 -混合結(jié)構(gòu)混合結(jié)構(gòu) 數(shù)據(jù)流圖數(shù)據(jù)流圖系統(tǒng)結(jié)構(gòu)圖系統(tǒng)結(jié)構(gòu)圖5.5.4 軟件模塊結(jié)構(gòu)的改進軟件模塊結(jié)構(gòu)的改進一、模塊功能的完善化當(dāng)模塊不能完成規(guī)定的功能時,

28、當(dāng)模塊不能完成規(guī)定的功能時,必須回送出錯標志,向它的調(diào)用必須回送出錯標志,向它的調(diào)用者報告出現(xiàn)這種例外情況的原因者報告出現(xiàn)這種例外情況的原因 二、消除重復(fù)功能,改善軟件結(jié)構(gòu)。在結(jié)構(gòu)上完全相似,可能只是在結(jié)構(gòu)上完全相似,可能只是在數(shù)據(jù)類型上不一致。此時可在數(shù)據(jù)類型上不一致。此時可以采取完全合并的方法,只需以采取完全合并的方法,只需在數(shù)據(jù)類型的描述上和變量定在數(shù)據(jù)類型的描述上和變量定義上加以改進。義上加以改進。當(dāng)兩個模塊具有當(dāng)兩個模塊具有一部分相同一部分相同的功能時,的功能時,把這部分相同的功能分離為一個單獨的把這部分相同的功能分離為一個單獨的模塊,可以免除對這一部分內(nèi)容的重復(fù)模塊,可以免除對這一

29、部分內(nèi)容的重復(fù)編碼和測試,節(jié)約軟件的開發(fā)費用。編碼和測試,節(jié)約軟件的開發(fā)費用。物理輸入相似部分相似模塊的各種合并方案的示意圖分析R1, R2,找出其相同部分,從R1和R2中分離出去,重新定義成一個獨立的下層模塊R1 和R2剩余的部分據(jù)情況還可與它的上級模塊合并,以減少像控制的傳遞、全局數(shù)據(jù)的引用和接口等復(fù)雜性 三、模塊的作用范圍應(yīng)在控制范圍之內(nèi)。 一個模塊的作用范圍,是指受這個模塊中的判定影響的所有模塊。 關(guān)于模塊的作用范圍/控制范圍的關(guān)系示意圖 當(dāng)模塊G作出一個判定之后,若需要C工作,則必須把信號送回給D,然后,再由D把信號送給B,才能送到C模塊C超出了G的控制域,從而也增加了數(shù)據(jù)的傳送量和

30、模塊間的耦合,使模塊間出現(xiàn)了控制耦合控制耦合對于一個理想SC圖中的模塊設(shè)計, 所有受到一個判定影響的模塊應(yīng)該都從屬該判定所在的模塊,最好位于作出判定的那個模塊本身及它的直接下屬模塊。計算實發(fā)工資取得工資數(shù)據(jù)工人實發(fā)工資工人實發(fā)工資人員實發(fā)工資計時制工資額稅收扣款薪金制工資額常規(guī)扣款編外人員 工資編外人員稅款編外人員扣款如:為了確定需計算工資工人屬于哪一類,若在如:為了確定需計算工資工人屬于哪一類,若在“取得工資數(shù)據(jù)取得工資數(shù)據(jù)” 模塊中加入判定工資類型的語句,此時判定的作用范圍將超出的控模塊中加入判定工資類型的語句,此時判定的作用范圍將超出的控制范圍(只包含它本身),違反了兩個關(guān)系的原則,其不

31、良后果是,制范圍(只包含它本身),違反了兩個關(guān)系的原則,其不良后果是,在在 “取得工資數(shù)據(jù)取得工資數(shù)據(jù)” 和和 “計算實發(fā)工資計算實發(fā)工資”兩個模塊中,將對兩個模塊中,將對 “工工資類型資類型”進行重復(fù)的判定。進行重復(fù)的判定。修正方法是,在修正方法是,在“計算實發(fā)工資計算實發(fā)工資”模塊內(nèi)設(shè)一判定語句,模塊內(nèi)設(shè)一判定語句,判斷包含在判斷包含在“工資數(shù)據(jù)工資數(shù)據(jù)”中的中的“工資類別工資類別”。這樣,哪。這樣,哪一類的一類的 “實發(fā)工資模塊實發(fā)工資模塊” 執(zhí)行將直接依賴于判定的結(jié)果。執(zhí)行將直接依賴于判定的結(jié)果。我們把這個我們把這個 “實發(fā)工資實發(fā)工資”的模塊稱為這一的模塊稱為這一判定的作用范判定的作

32、用范圍圍。 四、盡可能地減少高扇出結(jié)構(gòu),隨著深度增大扇入。扇入:指模塊的上級模塊數(shù)。 (即共有多少個模塊需要 調(diào)用這個模塊)扇出:指模塊調(diào)用其下屬模塊數(shù)目調(diào)用的下屬模塊數(shù)應(yīng)控制在小于3-4個模塊。PP1P2Q1Q2Q3Q一個模塊的扇入越大,則共享該模塊的上級模塊數(shù)目也就越多。但如果一個模塊的扇入太大,例如超過8,而它又不是公用模塊,則說明該模塊可能具有多個功能。在這種情況下應(yīng)當(dāng)對它 進一步分析并將其功能分解。通過分析得知它是3功能的模塊。對它進行分解,增加三個中間模塊Q1,Q2,Q3,而把公用部分提取出來留在Q中,作為這三個中間模塊的公用模塊,使各模塊的功能單一化,從而改善模塊結(jié)構(gòu)。經(jīng)驗證明,

33、一個設(shè)計得好的軟件模塊結(jié)構(gòu),通常上層扇出比較高,中間上層扇出比較高,中間層扇出較少,底層扇入到有高扇入的公用模塊中層扇出較少,底層扇入到有高扇入的公用模塊中。 五、模塊的大小要適中。50-100 模塊的大小,可以用模塊中所含語句的數(shù)量的多少來衡量。六、應(yīng)限制使用如下應(yīng)限制使用如下三種病態(tài)聯(lián)接:三種病態(tài)聯(lián)接: 七、應(yīng)設(shè)計出功能可預(yù)測的模塊,但要避免過分受限制的模塊。例如,例如, A-為不及格成績處理模塊。為不及格成績處理模塊。 避免過分受限制避免過分受限制: 例如對數(shù)組長度的使用限制,在成績處理中,由于要處理各例如對數(shù)組長度的使用限制,在成績處理中,由于要處理各班級人數(shù)不等,所以數(shù)組長度的定義應(yīng)該隨著學(xué)生人數(shù)的不同而班級人數(shù)不等,所以數(shù)組長度的定義應(yīng)該隨著學(xué)生人數(shù)的不同而不同不同.為了能夠適應(yīng)將來的變更,軟件模塊中局部數(shù)據(jù)結(jié)構(gòu)的大小為了能夠適

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論