軟件工程課件:第5章 總體設(shè)計(jì)_第1頁(yè)
軟件工程課件:第5章 總體設(shè)計(jì)_第2頁(yè)
軟件工程課件:第5章 總體設(shè)計(jì)_第3頁(yè)
軟件工程課件:第5章 總體設(shè)計(jì)_第4頁(yè)
軟件工程課件:第5章 總體設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩93頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院1第5章總體設(shè)計(jì)本章內(nèi)容:5.1軟件設(shè)計(jì)的重要性5.2設(shè)計(jì)過程5.3軟件總體設(shè)計(jì)5.4設(shè)計(jì)基本原理 5.5體系結(jié)構(gòu)設(shè)計(jì)5.6結(jié)構(gòu)化設(shè)計(jì)5.7軟件結(jié)構(gòu)優(yōu)化2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院25.1軟件設(shè)計(jì)的重要性軟件設(shè)計(jì)處于軟件工程過程的技術(shù)核心地位。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院32022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院4軟件設(shè)計(jì)的重要性:1是把用戶需求轉(zhuǎn)變?yōu)樽罱K軟件產(chǎn)品的唯一方法2是決定軟件產(chǎn)品質(zhì)量的關(guān)鍵階段(能否開發(fā)成功、開發(fā)出系統(tǒng)的穩(wěn)定性、測(cè)試的難易程度、維護(hù)的難易程度)3提供了可以進(jìn)行質(zhì)量評(píng)估的軟件表示2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院52022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院65.2設(shè)計(jì)過程軟件設(shè)計(jì)是一個(gè)把需求轉(zhuǎn)換為軟件表達(dá)式的過程。從軟件工程的角度講是分為總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)??傮w設(shè)計(jì)主要是把需求轉(zhuǎn)換為數(shù)據(jù)結(jié)構(gòu)和軟件體系結(jié)構(gòu),而詳細(xì)設(shè)計(jì)主要集中在體系結(jié)構(gòu)表達(dá)式的細(xì)化,從而產(chǎn)生詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和軟件的算法表達(dá)式。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院7總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)除了必須有先進(jìn)的設(shè)計(jì)技術(shù)外,還要有同步的管理技術(shù)支持。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院8軟件設(shè)計(jì)原則:1)設(shè)計(jì)應(yīng)當(dāng)模塊化(modular),也就是說,軟件應(yīng)被邏輯地劃分為能完成特定功能和子功能的構(gòu)件。(2)設(shè)計(jì)應(yīng)形成具有獨(dú)立功能特征的模塊(如子程序或過程)。(3)設(shè)計(jì)應(yīng)使模塊之間和與外部環(huán)境之間接口的復(fù)雜性盡量地減少。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院9(4)設(shè)計(jì)應(yīng)該有一個(gè)分層的組織結(jié)構(gòu),這樣人們可對(duì)軟件各個(gè)構(gòu)件進(jìn)行理性的控制。(5)設(shè)計(jì)應(yīng)有性質(zhì)不同的可區(qū)分的數(shù)據(jù)和過程表達(dá)式。(6)設(shè)計(jì)應(yīng)利用軟件需求分析中得到的信息和可重復(fù)的方法。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院105.3軟件總體設(shè)計(jì)1.軟件系統(tǒng)結(jié)構(gòu)設(shè)計(jì)(1)采用某種設(shè)計(jì)方法,將一個(gè)復(fù)雜的系統(tǒng)按功能劃分成模塊。(2)確定每個(gè)模塊的功能。(3)確定模塊之間的調(diào)用關(guān)系。(4)確定模塊之間的接口,即模塊之間傳遞的信息。(5)評(píng)價(jià)模塊結(jié)構(gòu)的質(zhì)量。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院112.數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫(kù)設(shè)計(jì)1)數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)根據(jù)需求分析階段對(duì)系統(tǒng)數(shù)據(jù)的組成、操作約束和數(shù)據(jù)之間的關(guān)系的描述,確定數(shù)據(jù)結(jié)構(gòu)特性。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院122)數(shù)據(jù)庫(kù)的設(shè)計(jì)一般的軟件系統(tǒng)都有數(shù)據(jù)的存儲(chǔ),存儲(chǔ)要借助數(shù)據(jù)庫(kù)技術(shù)。數(shù)據(jù)庫(kù)的設(shè)計(jì)是指數(shù)據(jù)存儲(chǔ)文件的設(shè)計(jì)。設(shè)計(jì)包括以下三個(gè)方面:(1)概念設(shè)計(jì)。(2)邏輯設(shè)計(jì)。(3)物理設(shè)計(jì)。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院133.網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)如果采用的是網(wǎng)絡(luò)環(huán)境,則要進(jìn)行網(wǎng)絡(luò)系統(tǒng)的設(shè)計(jì)。要分析網(wǎng)絡(luò)負(fù)荷與容量,遵照網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)原則,確定網(wǎng)絡(luò)系統(tǒng)的需求。要進(jìn)行網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì),選擇好網(wǎng)絡(luò)操作系統(tǒng),確定網(wǎng)絡(luò)系統(tǒng)配置,制定網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院144.軟件總體設(shè)計(jì)文檔總體設(shè)計(jì)說明書是總體設(shè)計(jì)階段結(jié)束時(shí)提交的技術(shù)文檔。按國(guó)標(biāo)GB8576–88的《計(jì)算機(jī)軟件產(chǎn)品開發(fā)文件編制指南》規(guī)定,軟件設(shè)計(jì)文檔可分為“總體設(shè)計(jì)說明書”、“詳細(xì)設(shè)計(jì)說明書”和“數(shù)據(jù)庫(kù)設(shè)計(jì)說明書”。這些文檔的內(nèi)容與格式請(qǐng)參考有關(guān)資料。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院155.評(píng)審在該階段,對(duì)設(shè)計(jì)部分是否完整地實(shí)現(xiàn)了需求中規(guī)定的功能、性能等要求,設(shè)計(jì)方案的可行性、關(guān)鍵的處理及內(nèi)外部接口定義正確性、有效性以及各部分之間的一致性等,都一一進(jìn)行評(píng)審。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院165.4設(shè)計(jì)基本原理軟件設(shè)計(jì)要回答下列問題:(1)使用什么樣的準(zhǔn)則才能把軟件劃分成為各個(gè)單獨(dú)的構(gòu)件?(2)怎樣把功能或數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)從軟件概念表達(dá)式中分離出來(lái)?(3)定義軟件設(shè)計(jì)的技術(shù)質(zhì)量有統(tǒng)一的準(zhǔn)則嗎?2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院175.4.1抽象抽象是認(rèn)識(shí)復(fù)雜現(xiàn)象過程中使用的思維工具,即抽出事物本質(zhì)的共同特性而暫不考慮它的細(xì)節(jié),不考慮其他因素。隨著對(duì)抽象不同層次的展開,過程抽象(ProceduralAbstraction)和數(shù)據(jù)抽象(DataAbstraction)就建立了。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院185.4.2細(xì)化逐步細(xì)化是一種自頂向下的設(shè)計(jì)策略。程序的體系結(jié)構(gòu)開發(fā)是由過程細(xì)節(jié)層次不斷地細(xì)化而成的。分層的開發(fā)則是以逐步的方式由分解一個(gè)宏功能直到獲得編程語(yǔ)言語(yǔ)句。細(xì)化實(shí)際上是一個(gè)詳細(xì)描述的過程。在高層抽象定義時(shí),從功能說明或信息描述開始,就是說明功能或信息的概念,而不給出功能內(nèi)部的工作細(xì)節(jié)或信息的內(nèi)部結(jié)構(gòu)。細(xì)化則是設(shè)計(jì)者在原始說明的基礎(chǔ)上進(jìn)行詳細(xì)說明,隨著不斷的細(xì)化(詳細(xì)說明)給出更多的細(xì)節(jié)。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院195.4.3模塊化模塊具有以下幾種基本屬性:(1)接口:指模塊的輸入與輸出。(2)功能:指模塊實(shí)現(xiàn)什么功能。(3)邏輯:描述內(nèi)部如何實(shí)現(xiàn)要求的功能及所需的數(shù)據(jù)。(4)狀態(tài):指該模塊的運(yùn)行環(huán)境,即模塊的調(diào)用與被調(diào)用關(guān)系。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院20模塊化是指解決一個(gè)復(fù)雜問題時(shí)自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程。每個(gè)模塊完成一個(gè)特定的子功能,所有的模塊按某種方法組裝起來(lái),成為一個(gè)整體,完成整個(gè)系統(tǒng)所要求的功能。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院21問題復(fù)雜性與工作量關(guān)系設(shè)問題x,表示它的復(fù)雜性函數(shù)為C(x),解決它所需的工作量函數(shù)為E(x)。對(duì)于問題P1和P2;如果:C(P1)>C(P2)即P1比P2復(fù)雜,那么:E(P1)>E(P2)即問題越復(fù)雜,所需要的工作量越大。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院22根據(jù)解決一般問題的經(jīng)驗(yàn),規(guī)律為:C(P1+P2)>C(P1)+C(P2)即一個(gè)問題同問題組合而成的復(fù)雜度大于分別考慮每個(gè)問題的復(fù)雜度之和。這樣,可以推出:E(P1+P2)>E(P1)+E(P2)所得結(jié)果對(duì)于模塊化和軟件具有重要的意義。那么,從上面所得的不等式是否可以得出這樣的結(jié)論:如果把軟件無(wú)限細(xì)分,那么最后開發(fā)軟件所需要的工作量就小得可以忽略了。但是,事實(shí)上,影響軟件開發(fā)工作量的因素還有許多2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院23模塊數(shù)目與軟件成本2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院245.4.4軟件體系結(jié)構(gòu)軟件總體設(shè)計(jì)的主要任務(wù)就是軟件結(jié)構(gòu)的設(shè)計(jì)。軟件體系結(jié)構(gòu)(softwarearchitecture)包含了計(jì)算機(jī)程序的兩個(gè)重要特性:(1)過程構(gòu)件(模塊)的層次結(jié)構(gòu)。(2)數(shù)據(jù)結(jié)構(gòu)。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院25結(jié)構(gòu)化演化2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院26不同結(jié)構(gòu)2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院275.4.5程序結(jié)構(gòu)程序結(jié)構(gòu)(programstructure)給出了程序構(gòu)件(模塊)的組織(通常叫分層),這種組織包含了控制的層次。它們不給出軟件的過程方面,如過程的序列、決策的出現(xiàn)或次序,或操作的重復(fù)等。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院28結(jié)構(gòu)專用名詞2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院295.4.6數(shù)據(jù)結(jié)構(gòu)在軟件體系結(jié)構(gòu)的表達(dá)式中,數(shù)據(jù)結(jié)構(gòu)與程序結(jié)構(gòu)同樣重要。數(shù)據(jù)結(jié)構(gòu)決定信息的組織、存取方法、結(jié)合的程度,以及可選的處理方法。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院30典型的數(shù)據(jù)結(jié)構(gòu)2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院31當(dāng)組織標(biāo)量項(xiàng)作為一列或連接的組時(shí),就形成一個(gè)順序向量(sequentialvector)。向量是數(shù)據(jù)結(jié)構(gòu)中最常用的。可看下面這個(gè)C語(yǔ)言程序段的例子:intaa[100];…procedureps(intaa;intn;intsum){inti;{2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院32sum=0;

for(i=1;i<=n;i++)

sum=sum+aa[i];};}…例子中定義aa為100個(gè)標(biāo)量整數(shù)項(xiàng)的順序向量。在過程ps中標(biāo)引aa的每個(gè)元素的存儲(chǔ),這樣數(shù)據(jù)結(jié)構(gòu)的每個(gè)元素都可按定義的順序引用。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院335.4.7軟件過程軟件過程(softwareprocedure),則側(cè)重于每一個(gè)單獨(dú)模塊的處理細(xì)節(jié)研究。過程必須提供精確的事件的順序、確切的抉擇點(diǎn)、重復(fù)的操作,以及數(shù)據(jù)的組織與結(jié)構(gòu)處理規(guī)格說明。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院34一個(gè)模塊內(nèi)的過程2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院35過程的分層2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院365.5體系結(jié)構(gòu)設(shè)計(jì)軟件體系結(jié)構(gòu)設(shè)計(jì)(architecturaldesign)的主要目標(biāo)是設(shè)計(jì)一個(gè)模塊化的程序結(jié)構(gòu)。體系結(jié)構(gòu)設(shè)計(jì)融合了程序結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),接口定義能使數(shù)據(jù)流經(jīng)程序。要給出各個(gè)模塊之間的控制關(guān)系。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院375.5.1軟件結(jié)構(gòu)圖軟件結(jié)構(gòu)圖是軟件系統(tǒng)的模塊層次結(jié)構(gòu),反映了整個(gè)系統(tǒng)的功能實(shí)現(xiàn),即將來(lái)程序的控制層次體系。軟件結(jié)構(gòu)往往用樹狀或網(wǎng)狀結(jié)構(gòu)的圖形來(lái)表示。1.模塊用方框表示,并用名字標(biāo)識(shí)該模塊,名字應(yīng)體現(xiàn)該模塊的功能。2.模塊的控制關(guān)系兩個(gè)模塊間用單向箭頭或直線連接起來(lái)表示它們的控制關(guān)系。

2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院383.模塊間的信息傳遞模塊間還經(jīng)常用帶注釋的短箭頭表示模塊調(diào)用過程中來(lái)回傳遞的信息。模塊間的控制關(guān)系及信息傳遞2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院394.兩個(gè)附加符號(hào)表示模塊有選擇調(diào)用或循環(huán)調(diào)用2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院405.結(jié)構(gòu)圖的形態(tài)特征2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院41結(jié)構(gòu)圖的形態(tài)特征包括:(1)深度:指結(jié)構(gòu)圖控制的層次,即模塊的層數(shù)。(2)寬度:指一層中最大的模塊個(gè)數(shù)。(3)扇出:指一個(gè)模塊直接下屬模塊的個(gè)數(shù)。(4)扇入:指一個(gè)模塊直接上屬模塊的個(gè)數(shù)。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院426.畫結(jié)構(gòu)圖應(yīng)注意的事項(xiàng)(1)同一名字的模塊在結(jié)構(gòu)圖中僅出現(xiàn)一次。(2)調(diào)用關(guān)系只能從上到下。(3)不嚴(yán)格表示模塊的調(diào)用次序,習(xí)慣上從左到右。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院435.5.2模塊的大小前面在討論模塊設(shè)計(jì)的原理時(shí),已經(jīng)知道一個(gè)系統(tǒng)應(yīng)當(dāng)由若干個(gè)模塊構(gòu)成。其目的是為了降低系統(tǒng)的復(fù)雜度。模塊設(shè)計(jì)的準(zhǔn)則不應(yīng)該是語(yǔ)句的多少,而應(yīng)當(dāng)是模塊是否是一個(gè)獨(dú)立的功能。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院445.5.3扇出和扇入與深度和寬度由結(jié)構(gòu)圖的形態(tài)特征可以知道,一個(gè)系統(tǒng)的大小和系統(tǒng)的復(fù)雜程度在一定程度上可以用深度和寬度表示。大量的系統(tǒng)研究表明,認(rèn)為高層模塊應(yīng)有較高的扇出,低層模塊特別是底層模塊應(yīng)有較高的扇入。扇入越大,表示該模塊被更多的上級(jí)模塊共享。多個(gè)扇入入口相同,這就避免了程序的重復(fù),因此希望扇入高一點(diǎn)。但過多又可能是把許多不相關(guān)的功能硬湊在一起,形成通用模塊,這樣的模塊必然是低聚合的。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院45扇出實(shí)際上是對(duì)問題解的分解2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院462022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院475.5.4模塊的耦合耦合(Coupling)表示軟件結(jié)構(gòu)內(nèi)不同模塊彼此之間相互依賴(連接)的緊密程度,是衡量軟件模塊結(jié)構(gòu)質(zhì)量好壞的度量,是對(duì)模塊獨(dú)立性的直接衡量指標(biāo)。耦合強(qiáng)弱取決于模塊間接口的復(fù)雜程度,進(jìn)入或訪問一個(gè)模塊的點(diǎn),以及通過接口的數(shù)據(jù)。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院481.數(shù)據(jù)耦合如果兩個(gè)模塊彼此間通過參數(shù)交換信息,而且交換的信息僅僅是數(shù)據(jù),那么這種耦合稱為數(shù)據(jù)耦合。數(shù)據(jù)耦合是低耦合。系統(tǒng)中必須存在這種耦合,因?yàn)橹挥挟?dāng)某些模塊的輸出數(shù)據(jù)作為另一些模塊的輸入數(shù)據(jù)時(shí),系統(tǒng)才能完成有價(jià)值的功能。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院492.控制耦合如果傳遞的信息中有控制信息,則這種耦合稱為控制耦合。控制耦合是中等程度的耦合,它增加了系統(tǒng)的復(fù)雜程度??刂岂詈贤嵌嘤嗟?,在把模塊適當(dāng)分解之后通??梢杂脭?shù)據(jù)耦合代替它。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院502022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院513.公共環(huán)境耦合當(dāng)兩個(gè)或多個(gè)模塊通過一個(gè)公共數(shù)據(jù)環(huán)境相互作用時(shí),它們之間的耦合稱為公共環(huán)境耦合(即公用耦合)。公共環(huán)境耦合的復(fù)雜程度隨耦合的模塊個(gè)數(shù)而變化,當(dāng)耦合的模塊個(gè)數(shù)增加時(shí)復(fù)雜程度顯著增加。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院52松散的公用耦合2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院53緊密的公用耦合2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院54(1)一個(gè)模塊往公共環(huán)境送數(shù)據(jù),另一個(gè)模塊從公共環(huán)境取數(shù)據(jù)。這是數(shù)據(jù)耦合的一種形式,是比較松散的耦合。(2)兩個(gè)模塊都既往公共環(huán)境送數(shù)據(jù)又從里面取數(shù)據(jù),這種耦合比較緊密,介于數(shù)據(jù)耦合和控制耦合之間。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院554.內(nèi)容耦合最高程度的耦合是內(nèi)容耦合。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院56(1)一個(gè)模塊訪問另一個(gè)模塊的內(nèi)部數(shù)據(jù);(2)一個(gè)模塊不通過正常入口而轉(zhuǎn)到另一個(gè)模塊的內(nèi)部;(3)兩個(gè)模塊有一部分程度代碼重疊(只可能出現(xiàn)在匯編程序中);(4)一個(gè)模塊有多個(gè)入口(這表明一個(gè)模塊有幾種功能)。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院57應(yīng)該堅(jiān)決避免使用內(nèi)容耦合。事實(shí)上許多高級(jí)程序設(shè)計(jì)語(yǔ)言已經(jīng)設(shè)計(jì)成不允許在程序中出現(xiàn)任何形式的內(nèi)容耦合??傊?,耦合是影響模塊結(jié)構(gòu)和軟件復(fù)雜程度的一個(gè)重要因素,應(yīng)該采用如下設(shè)計(jì)原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共環(huán)境耦合,完全不用內(nèi)容耦合。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院585.5.5模塊的內(nèi)聚內(nèi)聚標(biāo)志一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度,它是信息隱蔽和局部化概念的自然擴(kuò)展。簡(jiǎn)單地說,理想內(nèi)聚的模塊只做一件事情。1.功能內(nèi)聚如果模塊內(nèi)所有處理元素屬于一個(gè)整體,完成一個(gè)單一的功能,則稱為功能內(nèi)聚。功能內(nèi)聚是最高程度的內(nèi)聚。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院592.信息內(nèi)聚信息內(nèi)聚模塊能完成多種功能,各個(gè)功能都在同一數(shù)據(jù)結(jié)構(gòu)上操作,每一項(xiàng)功能有一個(gè)惟一的入口點(diǎn)。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院603.通信內(nèi)聚如果一個(gè)模塊中所有處理元素都使用同一個(gè)輸入數(shù)據(jù)和(或)產(chǎn)生同一個(gè)輸出數(shù)據(jù),稱為通信內(nèi)聚(CommunicationalCohesion)。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院614.過程內(nèi)聚如果一個(gè)模塊內(nèi)部的處理元素是相關(guān)的,而且必須以特定次序執(zhí)行,則稱為過程內(nèi)聚。過程內(nèi)聚與順序內(nèi)聚的區(qū)別主要在于:順序內(nèi)聚中是數(shù)據(jù)流從一個(gè)處理元流到另一個(gè)處理元,而過程內(nèi)聚中是控制流從一個(gè)動(dòng)作流向另一個(gè)動(dòng)作。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院625.邏輯內(nèi)聚如果一個(gè)模塊完成的任務(wù)在邏輯上屬于相同或相似的一類,稱為邏輯內(nèi)聚(LogicalCohesion)。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院636.時(shí)間內(nèi)聚如果一個(gè)模塊包含的任務(wù)必須在同一段時(shí)間內(nèi)執(zhí)行,就叫時(shí)間內(nèi)聚。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院647.偶然內(nèi)聚如果一個(gè)模塊完成一組任務(wù),這些任務(wù)彼此間即使有關(guān)系,關(guān)系也是很松散的,就叫做偶然內(nèi)聚。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院655.5.6結(jié)構(gòu)設(shè)計(jì)的一般準(zhǔn)則1.模塊獨(dú)立性準(zhǔn)則(1)如果若干模塊之間耦合強(qiáng)度過高,每個(gè)模塊內(nèi)功能不復(fù)雜,可將它們合并,以減少信息的傳遞和公共區(qū)的引用。(2)若有多個(gè)相關(guān)模塊,應(yīng)對(duì)它們的功能進(jìn)行分析,消去重復(fù)功能。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院662022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院672.軟件結(jié)構(gòu)的形態(tài)特征準(zhǔn)則軟件結(jié)構(gòu)的深度、寬度、扇入及扇出應(yīng)適當(dāng)。3.模塊的大小準(zhǔn)則在考慮模塊獨(dú)立性的同時(shí),為了增加可理解性,模塊的大小最好在50~150條語(yǔ)句左右,可以用1~2頁(yè)打印紙打印,便于人們閱讀與研究。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院684.模塊的接口準(zhǔn)則模塊的接口要簡(jiǎn)單、清晰及含義明確,便于理解,易于實(shí)現(xiàn)、測(cè)試與維護(hù)。模塊接口的復(fù)雜性是軟件發(fā)生錯(cuò)誤的一個(gè)重要原因。因此,設(shè)計(jì)模塊接口時(shí),應(yīng)盡量使傳遞的信息簡(jiǎn)單并與模塊的功能一致。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院695.5.7模塊的作用域與控制域一個(gè)模塊的作用范圍應(yīng)在其控制范疇之內(nèi),且條件判定所在的模塊應(yīng)與受影響的模塊在層次上盡量靠近。如果在設(shè)計(jì)過程中,發(fā)現(xiàn)模塊作用范圍不在其控制范圍之內(nèi),可用以下方法加以改進(jìn):(1)上移判斷點(diǎn)。使該判斷的層次升高,以擴(kuò)大它的控制范圍。(2)下移受判斷影響的模塊。將受判斷影響的模塊下移到判斷所在模塊的控制范圍內(nèi)。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院70圖5-28模塊示意圖1圖5-29模塊示意圖2圖5-30模塊示意圖32022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院715.6結(jié)構(gòu)化設(shè)計(jì)5.6.1數(shù)據(jù)流的類型1.變換型數(shù)據(jù)流圖根據(jù)信息系統(tǒng)的模型,信息一般是以外部形式進(jìn)入系統(tǒng),通過系統(tǒng)處理后,然后離開系統(tǒng)。從其過程可以得出,變換流的數(shù)據(jù)流圖是一個(gè)線性結(jié)構(gòu)。變換型的數(shù)據(jù)流是由輸入、變換(或稱處理)和輸出三部分組成。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院72變換型數(shù)據(jù)流圖圖5-31變換型數(shù)據(jù)流圖

2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院732.事務(wù)型數(shù)據(jù)流圖基本系統(tǒng)模型意味著變換流。因此,原則上可以講所有的信息流都可以歸結(jié)為這一類。圖5-32事務(wù)型數(shù)據(jù)流圖2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院74圖中的處理T稱為事務(wù)中心,它完成下述任務(wù):(1)接收輸入數(shù)據(jù)。(2)分析每個(gè)事務(wù),確定其類型。(3)根據(jù)事務(wù)選擇一條活動(dòng)通路。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院755.6.2過程步驟結(jié)構(gòu)化設(shè)計(jì)方法轉(zhuǎn)換的步驟:(1)數(shù)據(jù)流圖:把數(shù)據(jù)流圖轉(zhuǎn)換成軟件結(jié)構(gòu)圖前,設(shè)計(jì)人員要參照規(guī)范說明書,仔細(xì)地研究分析數(shù)據(jù)流圖并參照數(shù)據(jù)字典,認(rèn)真理解其中的有關(guān)元素,檢查有無(wú)遺漏或不合理之處,進(jìn)行必要的修改。(2)確定數(shù)據(jù)流圖類型:通常將系統(tǒng)的數(shù)據(jù)流圖視為變換流。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院76(3)找出變換中心:輸入流是一條路徑,經(jīng)過這條路徑數(shù)據(jù)從外部形式轉(zhuǎn)換為內(nèi)部形式。輸出流則相反,從內(nèi)部形式轉(zhuǎn)換為外部形式。(4)第一層分解:如果是變換流,要把數(shù)據(jù)流圖映射為一種輸入、變換、輸出的特殊結(jié)構(gòu)。(5)第二層分解:這一步的任務(wù)是把數(shù)據(jù)流圖中的各個(gè)變換映射成為相應(yīng)的模塊。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院77(6)根據(jù)優(yōu)化準(zhǔn)則對(duì)軟件結(jié)構(gòu)求精。(7)描述模塊功能、接口及全局?jǐn)?shù)據(jù)結(jié)構(gòu)。(8)復(fù)查,如果有錯(cuò),轉(zhuǎn)步驟(2)修改完善,否則進(jìn)入詳細(xì)設(shè)計(jì)。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院785.6.3變換分析設(shè)計(jì)變換流的設(shè)計(jì)是將數(shù)據(jù)流圖到程序結(jié)構(gòu)圖的轉(zhuǎn)換。當(dāng)數(shù)據(jù)流圖具有較明顯的變換特征時(shí),則按照下列步驟設(shè)計(jì)。1.確定數(shù)據(jù)流圖中的變換中心、邏輯輸入和邏輯輸出。

2.設(shè)計(jì)軟件結(jié)構(gòu)的頂層和第一層。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院79圖5-33變換分析設(shè)計(jì)舉例2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院803.設(shè)計(jì)中、下層模塊。1)輸入模塊的下屬模塊的設(shè)計(jì)2)輸出模塊的下屬模塊的設(shè)計(jì)3)變換模塊的下屬模塊的設(shè)計(jì)2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院814.設(shè)計(jì)的優(yōu)化(1)輸入部分的求精(2)輸出部分的求精(3)變換部分的求精2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院825.6.4事務(wù)分析設(shè)計(jì)事務(wù)流的設(shè)計(jì)是從事務(wù)數(shù)據(jù)流圖到程序結(jié)構(gòu)的變換。對(duì)于具有事務(wù)型特征的數(shù)據(jù)流圖,則采用事務(wù)分析的設(shè)計(jì)方法。(1)確定數(shù)據(jù)流圖中的事務(wù)中心和加工路徑。當(dāng)數(shù)據(jù)流圖中的某個(gè)加工具有明顯地將一個(gè)輸入數(shù)據(jù)流分解成多個(gè)發(fā)散的輸出數(shù)據(jù)流時(shí),該加工就是事務(wù)中心。從事務(wù)中心輻射出去的數(shù)據(jù)流為各個(gè)加工路徑。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院83(2)設(shè)計(jì)軟件結(jié)構(gòu)的頂層和第一層。事務(wù)處理中心和事務(wù)處理路徑確定后,就可以確定它們的軟件結(jié)構(gòu)。(3)進(jìn)行事務(wù)結(jié)構(gòu)中、下層模塊的設(shè)計(jì)、優(yōu)化等工作。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院84圖5-34事務(wù)分析設(shè)計(jì)舉例2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院855.6.5混合流設(shè)計(jì)1.混合數(shù)據(jù)流圖的映射一般中型以上的系統(tǒng)的數(shù)據(jù)流圖中,都會(huì)既有變換流,又有事務(wù)流。這就是所謂的混合的數(shù)據(jù)流圖,其軟件結(jié)構(gòu)設(shè)計(jì)方法一般采用以變換流為主,事務(wù)流為輔的方法。(1)確定數(shù)據(jù)流圖整體上的類型。(2)標(biāo)出局部的數(shù)據(jù)流圖范圍,確定其類型。(3)按整體和局部的數(shù)據(jù)流圖特征,設(shè)計(jì)出軟件結(jié)構(gòu)。2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院862.分層數(shù)據(jù)流圖的映射對(duì)于一個(gè)復(fù)雜問題的數(shù)據(jù)流圖結(jié)果,往往是分層的。那么對(duì)于分層的數(shù)據(jù)流圖映射成軟件結(jié)構(gòu)圖也應(yīng)該是分層的。(2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院871)主圖是變換型,子圖是事務(wù)型圖5-35主圖變換型,子圖事務(wù)型2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院88(2)主圖是事務(wù)型,子圖是變換型圖5-36主圖事務(wù)型,子圖變換型

2022/11/3廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院895.6.6結(jié)構(gòu)化設(shè)計(jì)方法應(yīng)用示例圖5-37銷售管理系

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論