課件軟件工程-第4章總體設(shè)計(jì)_第1頁(yè)
課件軟件工程-第4章總體設(shè)計(jì)_第2頁(yè)
課件軟件工程-第4章總體設(shè)計(jì)_第3頁(yè)
課件軟件工程-第4章總體設(shè)計(jì)_第4頁(yè)
課件軟件工程-第4章總體設(shè)計(jì)_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余74頁(yè)可下載查看

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

總體設(shè)計(jì)的任務(wù)及目標(biāo)簡(jiǎn)單地說(shuō),總體設(shè)計(jì)就是根據(jù)需求分析的“做什么(What

to

do?)”,確定系統(tǒng)應(yīng)該“怎么做”(Howto

do?)。1、總體設(shè)計(jì)的任務(wù)第4章

總體設(shè)計(jì)目標(biāo)系統(tǒng)邏輯模型信息域需求性能要求功能需求設(shè)計(jì)

系統(tǒng)結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)

編過(guò)程設(shè)計(jì)

碼程序測(cè)試組裝好的有效系統(tǒng)開(kāi)發(fā)階段的信息流總體設(shè)計(jì)的任務(wù)及目標(biāo)設(shè)計(jì)階段是采用合適的設(shè)計(jì)方法進(jìn)行系統(tǒng)結(jié)構(gòu)、數(shù)據(jù)和過(guò)程的設(shè)計(jì)。其中,系統(tǒng)結(jié)構(gòu)的設(shè)計(jì)定義 組成及各主要成分之間的關(guān)系,構(gòu)造

系統(tǒng)的整體框架;數(shù)據(jù)設(shè)計(jì)完成數(shù)據(jù)結(jié)構(gòu)的定義;過(guò)程設(shè)計(jì)則是對(duì)系統(tǒng)框架和數(shù)據(jù)結(jié)構(gòu)進(jìn)行細(xì)化,對(duì)各結(jié)構(gòu)成分所實(shí)現(xiàn)的功能,用很接近程序的

表示形式進(jìn)行過(guò)程性描述。編碼階段將過(guò)程性描述轉(zhuǎn)換為某種程序設(shè)計(jì)語(yǔ)言描述的源代碼。最后經(jīng)過(guò)測(cè)試即得到完整有效地 系統(tǒng)。制定

設(shè)計(jì)的規(guī)范。系統(tǒng)結(jié)構(gòu)設(shè)計(jì)。數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫(kù)設(shè)計(jì)??煽啃栽O(shè)計(jì)。編寫(xiě)概要設(shè)計(jì)文檔。設(shè)計(jì)

和復(fù)審總體設(shè)計(jì)的任務(wù)及目標(biāo)總體設(shè)計(jì)的任務(wù)及目標(biāo)總體設(shè)計(jì)階段的具體任務(wù)如下:(1)

制定 設(shè)計(jì)的規(guī)范為

開(kāi)發(fā)組制定在設(shè)計(jì)時(shí)應(yīng)該共同遵守的標(biāo)準(zhǔn),以便協(xié)調(diào)組內(nèi)各成員的工作。總體設(shè)計(jì)的任務(wù)及目標(biāo)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)確定組成系統(tǒng)的程序以及相互的關(guān)系。具體內(nèi)容為:采用某種設(shè)計(jì)方法,將一個(gè)復(fù)雜的系統(tǒng)按功能劃分成模塊。

(2)確定每個(gè)模塊的功能。確定模塊之間的調(diào)用關(guān)系。確定模塊之間的接口,即模塊之間傳遞的信息。

(5)評(píng)價(jià)模塊結(jié)構(gòu)的質(zhì)量??傮w設(shè)計(jì)的任務(wù)及目標(biāo)(3)

數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫(kù)設(shè)計(jì)①數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)主要是對(duì)數(shù)據(jù)字典的一些相關(guān)內(nèi)容加以細(xì)化,到詳細(xì)設(shè)計(jì)階段則規(guī)定其具體的實(shí)現(xiàn)細(xì)節(jié)。在該階段應(yīng)使用抽象的數(shù)據(jù)類(lèi)型描述數(shù)據(jù)結(jié)構(gòu)。②數(shù)據(jù)庫(kù)的設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì):可以用E-R模型表示,也可以用3NF關(guān)系群表示邏輯結(jié)構(gòu)設(shè)計(jì):是將概念模型轉(zhuǎn)換成某種數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)支持的數(shù)據(jù)模型。物理結(jié)構(gòu)設(shè)計(jì):設(shè)計(jì)數(shù)據(jù)模式的一些物理細(xì)節(jié),選定合適的存儲(chǔ)結(jié)構(gòu)和存取方法,以獲得數(shù)據(jù)庫(kù)的最佳存取效率。總體設(shè)計(jì)的任務(wù)及目標(biāo)(4)可靠性設(shè)計(jì)(質(zhì)量設(shè)計(jì))在

開(kāi)發(fā)的一開(kāi)始就應(yīng)確定

可靠性和其它質(zhì)量指標(biāo),考慮相應(yīng)措施,確保所做的設(shè)計(jì)具有良好的質(zhì)量特性,使易于修改和易于

。(5)編寫(xiě)概要設(shè)計(jì)文檔①概要設(shè)計(jì)說(shuō)明書(shū)②數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書(shū)③用戶(hù)手冊(cè)④測(cè)試計(jì)劃總體設(shè)計(jì)的任務(wù)及目標(biāo)(6)

設(shè)計(jì)

和復(fù)審和復(fù)審主要是為了及早發(fā)現(xiàn)缺陷,避免將錯(cuò)誤帶到后序階段,甚至放大錯(cuò)誤,導(dǎo)致程序的質(zhì)量下降。評(píng)審的方式可以召開(kāi)正式 會(huì)議,也可以舉行臨時(shí)會(huì)議。總體設(shè)計(jì)的任務(wù)及目標(biāo)2

、總體設(shè)計(jì)的目標(biāo)設(shè)計(jì)的最終目標(biāo)是要取得最佳方案,即在所有候

選方案

省開(kāi)發(fā)費(fèi)用、降低資源消耗、縮短開(kāi)發(fā)時(shí)間、能夠贏得較高的生產(chǎn)效率、較高的可靠性和可 性的方案。并且,方案可使開(kāi)發(fā) 滿(mǎn)足以下特點(diǎn):功能、性能都符合指定的要求;是可 的,可方便地進(jìn)行修改

;除了代碼,還有一套配置齊全的文檔。總體設(shè)計(jì)的概念和原理1、 結(jié)構(gòu)和過(guò)程結(jié)構(gòu):就是將一些功能模塊按照某種關(guān)系連接形成的結(jié)構(gòu)。樹(shù)狀結(jié)構(gòu)的特點(diǎn)是:整個(gè)結(jié)構(gòu)只有一個(gè)頂層模塊,而對(duì)于任何一個(gè)下層模塊,只有一個(gè)模塊,而且同一層模塊之間不發(fā)生聯(lián)系。網(wǎng)狀結(jié)構(gòu)的特點(diǎn)是:任意兩個(gè)模塊間都可以有雙向的關(guān)系。由于模塊間不存在上下的關(guān)系,任何兩個(gè)模塊都是平等的,因此分不出層次來(lái)。網(wǎng)狀結(jié)構(gòu)處理起來(lái)麻煩,故

系統(tǒng)用層次結(jié)構(gòu)表示??傮w設(shè)計(jì)的概念和原理1

結(jié)構(gòu)和過(guò)程過(guò)程:過(guò)程集中考慮每個(gè)模塊各自的處理細(xì)節(jié)。過(guò)程必須提供一個(gè)精確的處理規(guī)格說(shuō)明,包括事件順序,精確的判定位置、重復(fù)的操作,以及數(shù)據(jù)組織和結(jié)構(gòu)等。結(jié)構(gòu)和過(guò)程之間是有關(guān)系的:描述一個(gè)模塊的實(shí)現(xiàn),必須包括所有從屬于該模塊的所有模塊的,而從屬于該模塊的所有模塊是通過(guò)結(jié)構(gòu)體現(xiàn)的??傮w設(shè)計(jì)的概念和原理2、模塊化“模塊”,又稱(chēng)“構(gòu)件”,一般指用一個(gè)名字可調(diào)用的一段程序。類(lèi)似于高級(jí)語(yǔ)言中的procedure(過(guò)程)、function(函數(shù))、subroutine(子程序)、section(節(jié))、block(塊)等。設(shè)計(jì)中可以選擇其它程序已編寫(xiě)好的模塊,其本身也可供其它程序使用。它一般具有如下四個(gè)基本屬性:①接口:指模塊的輸入與輸出。②功能:指模塊實(shí)現(xiàn)的功能。注意這里所說(shuō)的模塊功能,應(yīng)該是模塊本身的功能加上它所調(diào)用的所有子模塊的功能。③邏輯:描述 如何實(shí)現(xiàn)要求的功能及所需的數(shù)據(jù)。④狀態(tài):該模塊的運(yùn)行環(huán)境,即模塊的調(diào)用與被調(diào)用關(guān)系。模塊化:就是對(duì)一個(gè)復(fù)雜的問(wèn)題,自頂向下、逐層把系統(tǒng)劃分成若干模塊的過(guò)程。每個(gè)模塊完成一個(gè)子功能,再按某種方法把這些模塊組裝起來(lái),成為一個(gè)整體,即可完成指定的系統(tǒng)功能,滿(mǎn)足問(wèn)題要求的過(guò)程??傮w設(shè)計(jì)的概念和原理模塊化原理為了證明模塊化在

開(kāi)發(fā)中的作用,可通過(guò)下面方法來(lái)論證這一點(diǎn)。設(shè)有問(wèn)題P1和問(wèn)題P2,其復(fù)雜度分別為C(P1)和C(P2),工作量分別為E(P1)和E(P2)。如果C(P1)>C(P2),即P1的復(fù)雜度大于P2的復(fù)雜度,則E(P1)>E(P2),即P1的工作量大于P2的工作量。而一般解決問(wèn)題的經(jīng)驗(yàn)表明有這樣的規(guī)律:C(P1+P2)>C(P1)+C(P2),即多個(gè)問(wèn)題的組合的復(fù)雜度將大于每個(gè)問(wèn)題復(fù)雜度之和。于是,由這個(gè)規(guī)律即可推出如下結(jié)果:E(P1+P2)>E(P1)+E(P2),即多個(gè)問(wèn)題的組合的工作量將大于每個(gè)問(wèn)題工作量之和,也就是說(shuō)對(duì)問(wèn)題模塊化之后,解決問(wèn)題的工作量減小了。通過(guò)對(duì) 系統(tǒng)的不斷細(xì)分可以將系統(tǒng)開(kāi)發(fā)的工作量不斷減小,工作量的大小將隨著模塊化程度的加大而不斷減小,但并不是說(shuō)把系統(tǒng)劃分的越細(xì),開(kāi)發(fā)的工作量就越小,因?yàn)檫€有一些因素不容

忽視,那就是接口的開(kāi)發(fā)成本模塊化原理圖4-1

模塊化程度與成本的關(guān)系最小成本區(qū)域成本/模塊成本模塊數(shù)量總成本接口成本模塊化原理從圖4-1

可以看出,隨著模塊數(shù)量的增加, 總成本一開(kāi)始成下降趨勢(shì),但與此同時(shí),模塊之間接口的設(shè)計(jì)所帶來(lái)的成本也不斷增加,模塊細(xì)分的越多,模塊之間接口的設(shè)計(jì)工作量就越大,由此會(huì)使得

開(kāi)發(fā)的增加一些成本

。模塊化原理所以在進(jìn)行模塊化設(shè)計(jì)時(shí),既要盡量的細(xì)分模塊,又要考慮設(shè)計(jì)接口所帶來(lái)的成本,設(shè)計(jì)中盡量使模塊化程度接近于圖中的最小成本區(qū)域。雖然目前還不能精確地決定最小成本的數(shù)值,但是在考慮模塊化的時(shí)候總成本曲線(xiàn)確實(shí)是有用的指南。模塊化原理模塊化的特征:抽象使得人們可用層次的方式構(gòu)造和分析復(fù)雜系統(tǒng),實(shí)踐證明這是處理復(fù)雜系統(tǒng)的唯一有效的方法。逐步求精:能幫助開(kāi)發(fā)把精力集中在與當(dāng)前開(kāi)發(fā)階段最相關(guān)的那些問(wèn)題上,而忽略那些對(duì)整體解決方案來(lái)說(shuō)雖然是必要的,然而目前還不需要考慮的細(xì)節(jié),而這些細(xì)節(jié)將留到以后再考慮。信息隱蔽原理,應(yīng)該這樣設(shè)計(jì)和確定模塊:使得一個(gè)模塊內(nèi)包含的信息(過(guò)程和數(shù)據(jù)),如果它不允許外部的模塊的話(huà),其它模塊是不能對(duì)它們局部化是指把一些關(guān)系密切的的。元素物理地放得彼此靠近,顯然,局部化有助于實(shí)現(xiàn)信息隱蔽??傮w設(shè)計(jì)的概念和原理結(jié)構(gòu)化設(shè)計(jì)的一個(gè)重要的組成部分就是一系列對(duì)模塊的評(píng)價(jià)方法。提出了設(shè)計(jì)質(zhì)量標(biāo)準(zhǔn)。為評(píng)價(jià) 設(shè)計(jì)提供了兩種有效的方法:一種是評(píng)價(jià)模塊本身質(zhì)量,一種是評(píng)價(jià)模塊間的關(guān)系。模塊的獨(dú)立性:所謂模塊的獨(dú)立性,是指系統(tǒng)中每個(gè)模塊只涉及要求的具體的子功能,而合系統(tǒng)中其它的模塊的接口盡可能簡(jiǎn)單。例如,若一個(gè)模塊只具有單一的功能且與其它模塊沒(méi)有太多的聯(lián)系,那么,模塊的獨(dú)立性是稱(chēng)此模塊具有模塊獨(dú)立性。質(zhì)量好的關(guān)鍵,具有獨(dú)立模塊的

容易開(kāi)發(fā),這是由于能夠?qū)Φ墓δ芗右苑指睿嗷ソ涌诓粡?fù)雜,可有一組同時(shí)開(kāi)發(fā),由于模塊相互獨(dú)立,在各自設(shè)計(jì)合修改代碼時(shí)所引起的二次影響不大,錯(cuò)誤少。總體設(shè)計(jì)的概念和原理模塊獨(dú)立性的度量:一般采用兩個(gè)準(zhǔn)則度量模塊獨(dú)立性。即模塊間的耦合性和模塊的內(nèi)聚性。耦合性是模塊之間互相連接的緊密程度的度量。模塊之間的連接越緊密,聯(lián)系越多,耦合性就越高,而其獨(dú)立性就越弱。內(nèi)聚性是一個(gè)模塊合的緊密程度的度量。一個(gè)模塊

各個(gè)元各個(gè)元素彼此結(jié)間的聯(lián)系越緊密,則它的內(nèi)聚性就越高,相對(duì)地,它與其它模塊之間的耦合性就會(huì)減低,而模塊獨(dú)立性就越強(qiáng)。因此,模塊獨(dú)立性比較強(qiáng)的模塊應(yīng)是高內(nèi)聚低耦合的模塊??傮w設(shè)計(jì)的概念和原理內(nèi)聚標(biāo)志一個(gè)模塊內(nèi)各個(gè)元素被此結(jié)合的緊密程度,它是信息隱蔽和局部化概念的自然擴(kuò)展。內(nèi)聚性就越高,其獨(dú)立性也就越強(qiáng)。行簡(jiǎn)單地說(shuō),理想內(nèi)聚的模塊只做一件事情。也是

進(jìn)設(shè)計(jì)所追求的目標(biāo)。一般模塊的內(nèi)聚性有7種:功能內(nèi)聚、信息內(nèi)聚、通信內(nèi)聚、過(guò)程內(nèi)聚、時(shí)間內(nèi)聚、邏輯內(nèi)聚和巧合內(nèi)聚。設(shè)計(jì)時(shí)應(yīng)該力求做到高內(nèi)聚,通常中等程度的內(nèi)聚也是

可以采用的,而且效果和高內(nèi)聚相差不多;但是,低內(nèi)聚很壞,不要使用。內(nèi)聚低級(jí)內(nèi)聚度(3個(gè))也叫巧合內(nèi)聚,一個(gè)模塊內(nèi)各成分為完成一組功能而組合在一起,模塊各元間沒(méi)用直接聯(lián)系,即使有關(guān)系,也很松散。1偶然有時(shí)在寫(xiě)完一個(gè)程序之后,發(fā)現(xiàn)一組語(yǔ)句在兩處或多處出現(xiàn),于是把這些語(yǔ)句作為一個(gè)模塊以節(jié)省內(nèi)存,這樣就出現(xiàn)了偶然內(nèi)聚的模塊一個(gè)模塊完成的諸任務(wù)邏輯上相關(guān),即如果一個(gè)模塊所完成的任務(wù)在邏輯上屬于相似或相同的一類(lèi),則稱(chēng)這種內(nèi)聚為邏輯內(nèi)聚。2邏輯讀入分?jǐn)?shù)平均/最高?計(jì)算平均分計(jì)算最高分輸出結(jié)果例如一個(gè)計(jì)算全部同學(xué)平均分和最高分的模塊。無(wú)論計(jì)算哪種分?jǐn)?shù),都要經(jīng)過(guò)讀入全班學(xué)生分?jǐn)?shù),進(jìn)行計(jì)算,輸出計(jì)算結(jié)果等步驟。實(shí)際上除中間的一步須按不同的方法計(jì)算外,前、后這兩步都是相同的。把這兩種在邏輯上相似的功能放在一個(gè)模塊中,就可以省去程序中的重復(fù)部分。缺點(diǎn)是執(zhí)行中要從模塊外引入用作判斷的開(kāi)關(guān)鍵,從而增加了塊間的耦合如果一個(gè)模塊包含的諸任務(wù)必須在同一時(shí)間段內(nèi)執(zhí)行。例如一個(gè)初始化模塊3時(shí)間緊急意外故障處理關(guān)閉文件保留現(xiàn)場(chǎng)。。。。在偶然內(nèi)聚的模塊中,各種元

間沒(méi)有實(shí)質(zhì)性聯(lián)系,很可能在一種應(yīng)用場(chǎng)合需要修改這個(gè)模塊,在另一種應(yīng)用場(chǎng)合又不允許這種修改,從而陷入困境。事實(shí)上,偶然內(nèi)聚的模塊出現(xiàn)修改錯(cuò)誤的概率比其他類(lèi)型的模塊高得多。在邏輯內(nèi)聚的模塊中,不同功能混在一起,合用部分程序代碼,即使局部功能的修改有時(shí)也會(huì)影響全局。因此.這類(lèi)模塊的修改也比較。時(shí)間關(guān)系在一定程度上反映了程序的某些實(shí)質(zhì),所以時(shí)間內(nèi)聚比邏輯內(nèi)聚好一些。這三種內(nèi)聚為低內(nèi)聚。中級(jí)內(nèi)聚度(2個(gè))模塊內(nèi)成分彼此相關(guān),并且必須按特定的次序執(zhí)行4過(guò)程enter

dheckdatamanipulate

data循環(huán)體計(jì)算累積事務(wù)記錄累積銷(xiāo)售額累積訂貨量循環(huán)傳送事務(wù)記錄給計(jì)算累積模塊,得到累積訂貨量之后,也得到了累積銷(xiāo)售量。模塊中各成分都將對(duì)數(shù)據(jù)結(jié)構(gòu)的同一區(qū)域進(jìn)行操作,即如果模塊中所有元素都使用同一個(gè)輸入數(shù)據(jù)和(或)產(chǎn)生同一個(gè)輸出數(shù)據(jù),則稱(chēng)為通信內(nèi)聚。5通信模塊A從文件FILE讀出數(shù)據(jù)由數(shù)據(jù)產(chǎn)生報(bào)表一由數(shù)據(jù)產(chǎn)生報(bào)表二開(kāi)領(lǐng)書(shū)單登記售書(shū)售書(shū)登記表領(lǐng)書(shū)單修改刪除文件高級(jí)級(jí)內(nèi)聚度(2個(gè))模塊內(nèi)的各處理成分均與同 能相關(guān),且這些處理必須順序執(zhí)行6順序這類(lèi)模塊中的各組成部分是順序執(zhí)行的。在通常情況下,上一個(gè)處理框的輸出就是下一個(gè)處理框的輸入。AB輸入統(tǒng)計(jì)計(jì)算打印如果一個(gè)模塊各元素集中于同一整體,共同完成某一單一的功能,則稱(chēng)該內(nèi)聚為功能內(nèi)聚。7功能輸入系數(shù)求方程的根打印方程的根求一元二次方程根的模塊耦合是對(duì)一個(gè)

結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。耦合強(qiáng)弱取決于模塊間接口的復(fù)雜程度,進(jìn)入或

一個(gè)模塊的點(diǎn),以及通過(guò)接口的數(shù)據(jù)。在

設(shè)計(jì)中應(yīng)該追求盡可能松散耦合的系統(tǒng)。在這樣的系統(tǒng)中可以研究、測(cè)試或任何一個(gè)模塊,而不需要對(duì)系統(tǒng)的其他模塊有很多了解。此外,由于模塊間聯(lián)系簡(jiǎn)單,發(fā)生在一處的錯(cuò)誤到整個(gè)系統(tǒng)的可能性就很小。因此,模塊間的耦合程度強(qiáng)烈影響系統(tǒng)的可理解性、可測(cè)試性、可靠性和可性。兩個(gè)模塊中任一個(gè),都不依賴(lài)于對(duì)方能獨(dú)立工作。如果兩個(gè)模塊中的每一個(gè)都能獨(dú)立地工作而不需要另一個(gè)模塊的存在,那么它們彼此完全獨(dú)立,這意味著模塊間無(wú)任何連接,耦合程度最低,模塊的獨(dú)立性最高。見(jiàn)圖中的模塊1和模塊2的關(guān)系。它們之間是同級(jí)模塊,互相之間沒(méi)有信息的傳統(tǒng)。但是,在一個(gè)

系統(tǒng)中不可能所有模塊之間都沒(méi)有任何連接。1.非直接耦合模塊1模塊2非直接耦合模塊32.數(shù)據(jù)耦合兩個(gè)模塊間通過(guò)參數(shù)交換信息,而信息僅限于數(shù)據(jù)計(jì)算金額開(kāi)發(fā)貨單單價(jià)數(shù)量金額3.標(biāo)記耦合計(jì)算水量和電費(fèi)計(jì)算水費(fèi)計(jì)算電費(fèi)本月用水量本月用電量電費(fèi)水費(fèi)住戶(hù)詳情數(shù)據(jù)結(jié)構(gòu)中包括:“本月用水量”、“本月用電量”。

“特征耦合”圖可改進(jìn)“數(shù)據(jù)耦合”圖如果兩個(gè)模塊都與同一個(gè)數(shù)據(jù)結(jié)構(gòu)有關(guān),則為標(biāo)記耦合。當(dāng)模塊A向模塊B所傳遞的信息控制了B的

邏輯。4.控制耦合讀入分?jǐn)?shù)平均/最高?計(jì)算平均分計(jì)算最高分輸出結(jié)果當(dāng)調(diào)用這一模塊時(shí),調(diào)用模塊必須先把一個(gè)控制信號(hào)(平均分/最高分)傳遞給它,以便選擇所需操作。因此必須知道被控模塊的的結(jié)構(gòu),從而增加了模塊間的相互依賴(lài)。5.外部耦合若干模塊均與同一個(gè)外部環(huán)境關(guān)聯(lián)。如:I/O、格式、通信協(xié)議。一組模塊都同一全局變量而不是同一全局?jǐn)?shù)據(jù)結(jié)構(gòu)就是外部耦合。6.公共耦合如果兩個(gè)模塊都和同一個(gè)公共數(shù)據(jù)域有關(guān),即一組模塊都

同一全局?jǐn)?shù)據(jù)結(jié)構(gòu)就是公共耦合ABC公用數(shù)據(jù)一個(gè)模塊和另一個(gè)模塊的內(nèi)部屬性有關(guān)(運(yùn)行程序和內(nèi)部數(shù)據(jù))。如:一個(gè)模塊使用另一個(gè)模塊的數(shù)據(jù)或控制信息;一個(gè)模塊直接轉(zhuǎn)移到另一個(gè)模塊。模塊A中TRC:模塊B中GO

TOTRC7.

內(nèi)容耦合總體設(shè)計(jì)的概念和原理模塊耦合性:非直接耦合數(shù)據(jù)耦合標(biāo)記耦合控制耦合外部耦合公共耦合內(nèi)容耦合低高耦合性強(qiáng)弱模塊獨(dú)立性模塊內(nèi)聚性:高功能內(nèi)聚信息內(nèi)聚通信內(nèi)聚過(guò)程內(nèi)聚時(shí)間內(nèi)聚邏輯內(nèi)聚巧合內(nèi)聚低內(nèi)聚性強(qiáng)弱模塊獨(dú)立性?xún)?nèi)聚實(shí)例MOVREADMOVACTOCardTOBfile

TDPQRS巧合性?xún)?nèi)聚此例中A、B、C、D、T

之間各不相干,只因?yàn)镻、Q、

R、S都要用到它們,為了節(jié)省一些 空間,將它們放在一個(gè)模塊中。問(wèn)題:這種模塊不易取名,模塊含義不易理解,難以測(cè)試,不易修改。當(dāng)P、Q有不同要求(如P要求MOVE

A

TO

E)時(shí)T的修改會(huì)很復(fù)雜。因?yàn)樗鼈儽緛?lái)互不相關(guān),所以變動(dòng)的可能性很大。當(dāng) 空間不是很緊張時(shí),應(yīng)盡量避免巧合性?xún)?nèi)聚。內(nèi)聚實(shí)例模塊內(nèi)各處理單元相關(guān),按特定次序執(zhí)行,采用數(shù)據(jù)流圖時(shí)往往會(huì)出現(xiàn)此種內(nèi)聚。如圖:讀入的數(shù)據(jù)供編輯單元處理,讀入和編輯這兩個(gè)處理單元在一個(gè)過(guò)程中相關(guān)。讀入編輯數(shù)據(jù)過(guò)程性?xún)?nèi)聚內(nèi)聚實(shí)例模塊中的成分需要用同樣的數(shù)據(jù)時(shí)稱(chēng)為通信性?xún)?nèi)聚。如圖:修改和刪除均需要利用某個(gè)文件進(jìn)行操作。問(wèn)題隨意性強(qiáng),會(huì)割斷功能關(guān)系。修改文件刪除通信性?xún)?nèi)聚內(nèi)聚實(shí)例模塊中的各成分利用相

同的輸入產(chǎn)生相同的輸出。對(duì)數(shù)據(jù)來(lái)說(shuō),其先后次序都依賴(lài)于前一成分的執(zhí)行情況,耦合度較高,但由于它可能包含幾個(gè)功能或只是某個(gè)功能的一部分,內(nèi)聚度也是高的。打印報(bào)表A信息內(nèi)聚打印報(bào)表B打印報(bào)表C報(bào)表數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)優(yōu)化準(zhǔn)則:1、劃分模塊時(shí),盡量做到高內(nèi)聚、低耦合,保持模塊相對(duì)獨(dú)立性。模塊劃分的準(zhǔn)則:“將相關(guān)的各部分放在一起,無(wú)關(guān)的東西不要放在一起?!?、模塊的大小要適中。3、模塊的接口要簡(jiǎn)單、清晰、含義明確,便于理解,易于實(shí)現(xiàn)、易于測(cè)試和

。4、一個(gè)模塊的作用范圍應(yīng)在其控制范圍之內(nèi),且判定所在的模塊,應(yīng)與受其影響的模塊在層次上盡量靠近。設(shè)計(jì)準(zhǔn)則作用域在控制域內(nèi)MACB模塊控制域:模塊本身和其下級(jí)模塊(即可供它調(diào)用的模塊)模塊作用域:受這個(gè)模塊中判定所影響的模塊。例如:M的控制域?yàn)閧M,A,B,C}本規(guī)則的含義是:(1)作用域不要超出控制域的范圍(2)

系統(tǒng)的判定,其位置離受它控制的模塊越近越好A:B:A:C:…………………………………………if

………………if

………………then

goto

L1L1:then

goto

L1L1:……………………………………………………………………………………作用域在控制域內(nèi)作用域超出了控制域上例右邊中A的作用超出了控制域。改進(jìn)方法之一,可以把A中的if移到M中;方法之二,可以把C移到A下面。5、 結(jié)構(gòu)的深度、寬度、扇入、扇出應(yīng)適當(dāng)。6、力求設(shè)計(jì)單合。7、設(shè)計(jì)功能可和單出口的模塊,避免“

連接”,以防止內(nèi)容耦模塊的模塊,但應(yīng)防止模塊功能過(guò)分局限。設(shè)計(jì)準(zhǔn)則

扇出

=一個(gè)模塊直接調(diào)用、控制的模塊數(shù)。3

fan-out

9AA的扇出AA的扇入

扇入=直接調(diào)用該模塊的模塊數(shù)在不破壞獨(dú)立性的前提下,fan-in

大的比較好。

深度=分層的層數(shù)。過(guò)大表示分工過(guò)細(xì)。

寬度=同一層上模塊數(shù)的最大值。過(guò)大表示系統(tǒng)復(fù)雜度大。1、面向數(shù)據(jù)流的設(shè)計(jì)方法面向數(shù)據(jù)流的設(shè)計(jì)方法,又稱(chēng)結(jié)構(gòu)化設(shè)計(jì)即SD(StructuredDesign)

。結(jié)構(gòu)化設(shè)計(jì)(SD)結(jié)構(gòu)化設(shè)計(jì)包括一組概念、標(biāo)準(zhǔn)和指導(dǎo)思想。其目的是降低軟件開(kāi)發(fā)費(fèi)用及 費(fèi)用,有利于更正修正 及實(shí)現(xiàn)新的 需求。其最大好處是極大地增加了

復(fù)用能力。SD為 工程提供了一種高效地、可

的系統(tǒng)。結(jié)構(gòu)化設(shè)計(jì)的目標(biāo):將

設(shè)計(jì)為結(jié)構(gòu)相互、功能單一的模塊,建立系統(tǒng)的模塊結(jié)構(gòu)圖。它的主要表示方法是一種分層次的結(jié)構(gòu)圖。總體設(shè)計(jì)的常用方法及工具總體設(shè)計(jì)的常用方法及工具SD設(shè)計(jì)方法的主要思想:認(rèn)為一個(gè)程序、一組程序或一個(gè)系統(tǒng),無(wú)非是由一組功能操作來(lái)構(gòu)成的,并進(jìn)而吸取了結(jié)構(gòu)化分析的“黑盒子”的概念。設(shè)計(jì)者首先必須無(wú)視程序、模塊或過(guò)程的情況,而只對(duì)它們之間的關(guān)系進(jìn)行分析。將系統(tǒng)看作是,邏輯功能的抽象集合——功能模塊的集合。這樣設(shè)計(jì)者能夠有最大的度設(shè)計(jì)系統(tǒng)結(jié)構(gòu)??傮w設(shè)計(jì)的常用方法及工具結(jié)構(gòu)化設(shè)計(jì)的優(yōu)點(diǎn):減少設(shè)計(jì)復(fù)雜性。將對(duì)大目標(biāo)的實(shí)現(xiàn)轉(zhuǎn)化為一些小目標(biāo)來(lái)實(shí)現(xiàn)。結(jié)構(gòu)化設(shè)計(jì)是一種減少設(shè)計(jì)復(fù)雜性的技術(shù)。結(jié)構(gòu)獨(dú)立。結(jié)構(gòu)化設(shè)計(jì)將功能性程序劃分成多個(gè)相對(duì)獨(dú)立的程序模塊。單一的功能模塊,可以使

設(shè)計(jì)獲得最大的益處。易于進(jìn)行易于開(kāi)發(fā)和修改。。(6)加強(qiáng)了代碼的可重用性。總體設(shè)計(jì)的常用方法及工具描述工具:結(jié)構(gòu)化設(shè)計(jì)方法提出了一種圖形工具——結(jié)構(gòu)圖,進(jìn)行結(jié)構(gòu)設(shè)計(jì)。結(jié)構(gòu)圖是精確表達(dá)程序結(jié)構(gòu)的圖形表示方法。它作為文檔的一部分,清楚地反映出程序中模塊之間的層次調(diào)用關(guān)系和聯(lián)系。它不僅嚴(yán)格地定義了各個(gè)模塊的名字、功能和接口,而且還集中地反映了設(shè)計(jì)思想。總體設(shè)計(jì)的常用方法及工具結(jié)構(gòu)圖的主要內(nèi)容:1、模塊:方框表示,并用名字標(biāo)識(shí)該模塊。2、模塊的控制關(guān)系:用單向箭頭或直線(xiàn)連接模塊間的控制關(guān)系。3、模塊間的信息傳遞:用帶注釋的短箭頭表示模塊間傳遞的信息。通常箭頭尾部帶空心圓,表示傳遞的是數(shù)據(jù),箭頭尾部帶實(shí)心圓,表示傳遞的是控制信息。4、兩個(gè)附加符號(hào):弧形線(xiàn)表示循環(huán)調(diào)用,菱形表示選擇調(diào)用。總體設(shè)計(jì)的常用方法及工具查詢(xún)成績(jī)學(xué)生記錄學(xué)號(hào)查

記詢(xún)

錄標(biāo)

地志

址ABCMT1T3T2模塊間的控制關(guān)系及信息傳遞模塊間選擇調(diào)用模塊間循環(huán)調(diào)用總體設(shè)計(jì)的常用方法及工具結(jié)構(gòu)圖的形態(tài)特征:深度表示控制的層數(shù)。

寬度表示控制的總分布。扇出是對(duì)由某一模塊直接控制的模塊數(shù)目的度量。扇入

有多少個(gè)模塊直接控制一個(gè)給定的模塊。如果一模塊控制另一個(gè)模塊便稱(chēng)前者“統(tǒng)帥”后者;反之,稱(chēng)后者“從屬”于前者??傮w設(shè)計(jì)的常用方法及工具畫(huà)結(jié)構(gòu)圖應(yīng)注意的事項(xiàng):1、同一名字的模塊在結(jié)構(gòu)圖中僅出現(xiàn)一次。2、調(diào)用關(guān)系只能從上到下。3、扇出:一個(gè)模塊直接下屬模塊的個(gè)數(shù)。4、結(jié)構(gòu)圖不嚴(yán)格表示模塊的調(diào)用次序,

上從左到右。有時(shí)為了減少連線(xiàn)的交叉,適當(dāng)?shù)卣{(diào)整同一層模塊的左右位置,以保持結(jié)構(gòu)圖的清晰。總體設(shè)計(jì)的常用方法及工具數(shù)據(jù)流圖的類(lèi)型SD方法是以數(shù)據(jù)流圖為基礎(chǔ)設(shè)計(jì)系統(tǒng)的模塊結(jié)構(gòu)的。不同類(lèi)型的數(shù)據(jù)流圖設(shè)計(jì)的過(guò)程以及所導(dǎo)出的初始的結(jié)構(gòu)不同。不管系統(tǒng)的數(shù)據(jù)流圖如何龐大和復(fù)雜,一般均可分為變換型、事務(wù)型和變換/事務(wù)混合型。⑴變換型變換型的數(shù)據(jù)流圖是一個(gè)線(xiàn)性結(jié)構(gòu),由輸入、變換和輸出三部分組成。信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變換成 形式。進(jìn)入系統(tǒng)的信息通過(guò)變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開(kāi)

系統(tǒng)??傮w設(shè)計(jì)的常用方法及工具物理輸入物理輸出輸入流變換中心輸出流邏輯輸出邏輯輸入變換型DFD圖總體設(shè)計(jì)的常用方法及工具⑵事務(wù)型事務(wù)型的數(shù)據(jù)流圖中,數(shù)據(jù)沿輸入通路到達(dá)一個(gè)處理(如圖4-27中的C),這個(gè)處理將輸入分為許多相互平行的加工路徑,并根據(jù)輸入數(shù)據(jù)的類(lèi)型,選擇某一加工路徑。其中C為事務(wù)處理中心,其任務(wù)是輸入數(shù)據(jù)(輸入數(shù)據(jù)又稱(chēng)為事務(wù))、分析每個(gè)事務(wù)以確定它的類(lèi)型、據(jù)事務(wù)類(lèi)型選取一條活動(dòng)通路??傮w設(shè)計(jì)的常用方法及工具加工路徑C輸入流事務(wù)處理中心事務(wù)型DFD圖總體設(shè)計(jì)的常用方法及工具面向數(shù)據(jù)流設(shè)計(jì)方法的過(guò)程:1、精化DFD。2、確定DFD類(lèi)型,和邏輯輸入、邏輯輸出的界限,出變換結(jié)構(gòu)的頂層合第一層;如果為事務(wù)型,確定事務(wù)中心和加工路徑,出事務(wù)結(jié)構(gòu)的頂層合第一層。3、分解上層模塊,設(shè)計(jì)中下層模塊結(jié)構(gòu)。4、根據(jù)優(yōu)化準(zhǔn)則對(duì) 結(jié)構(gòu)求精。5、描述模塊功能、接口及全局?jǐn)?shù)據(jù)結(jié)構(gòu)。6、復(fù)查,

錯(cuò)轉(zhuǎn)向2、修改完善,否則進(jìn)入詳細(xì)設(shè)計(jì)。總體設(shè)計(jì)的常用方法及工具TOP模塊的判定作用范圍:菱形符號(hào)表示模塊內(nèi)有判定功能,陰影表示模塊的作用范圍。ABCDEFTOPABCDEFTOPABCDEF總體設(shè)計(jì)的常用方法及工具系統(tǒng)結(jié)構(gòu)圖中有4種類(lèi)型的模塊:傳入模塊AA傳出模塊DD變換模塊B

C協(xié)調(diào)模塊XXYY總體設(shè)計(jì)的常用方法及工具變換分析設(shè)計(jì):1、確定DFD中的變換中心,邏輯輸入、邏輯輸出。通常幾股數(shù)據(jù)流的匯合處就是系統(tǒng)的加工中心,也可用以下方法確定加工中心:從物理輸入(出)端開(kāi)始,沿(逆)數(shù)據(jù)流方向向系統(tǒng)中心尋找,直到有這樣的數(shù)據(jù)流,它不能再被看作是系統(tǒng)的輸入(出)時(shí),則它的前一數(shù)據(jù)流就是系統(tǒng)的邏輯輸入(出)。介于邏輯輸入和邏輯輸出間的加工就是中心。2、設(shè)計(jì) 結(jié)構(gòu)的頂層和一層——變換結(jié)構(gòu)。頂層就是主模塊的位置,其功能是完成對(duì)所有模塊的控制,其名稱(chēng)就是系統(tǒng)名稱(chēng);第一層一般

至少有輸入、變換、輸出三種功能模塊。3、設(shè)計(jì)中、下層模塊。對(duì)第一層模塊自頂向下逐層分解。⑴輸入模塊下屬模塊的設(shè)計(jì):為每個(gè)輸入模塊設(shè)計(jì)兩個(gè)下屬模塊,一個(gè)接受數(shù)據(jù),一個(gè)將數(shù)據(jù)轉(zhuǎn)換成調(diào)用模塊所需的信息。用類(lèi)似的方法一直分解下去,直至物理輸入端??傮w設(shè)計(jì)的常用方法及工具⑵輸出模塊下屬模塊的設(shè)計(jì):為每個(gè)輸出模塊設(shè)計(jì)兩個(gè)下屬模塊,一個(gè)將數(shù)據(jù)轉(zhuǎn)換成下屬模塊所需的信息,一個(gè)發(fā)送數(shù)據(jù)。用類(lèi)似的方法一直分解下去,直至物理輸出端。⑶變換模塊下屬模塊的設(shè)計(jì):根據(jù)變換中心的組成情況,按照模塊獨(dú)立性原則,為每個(gè)基本加工建立一個(gè)功能模塊。4、設(shè)計(jì)優(yōu)化:根據(jù)優(yōu)化準(zhǔn)則對(duì)初始結(jié)構(gòu)進(jìn)行細(xì)化和改進(jìn)。根據(jù)設(shè)計(jì)準(zhǔn)則,對(duì)模塊進(jìn)行合并和調(diào)整,為每個(gè)物理輸入和物理輸出設(shè)計(jì)專(zhuān)門(mén)模塊,以體現(xiàn)系統(tǒng)的外部接口。總體設(shè)計(jì)的常用方法及工具BD物理輸出G變換中心邏輯輸出邏輯輸入物理輸入Af1f2f3EFHf4Cf5f6f7f8f9f10

f11變換型分析設(shè)計(jì)總體設(shè)計(jì)的常用方法及工具變換型分析設(shè)計(jì)主模塊Get

f3將f3變換成f7和f8Put

f8f3f3f8f7f8f7Put

f7Get

f2BGet

f1AFPut

f9GPut

f8H Put

f8CDEf3 f4

f7f5

f4

f6

f8f5f6f2f2f1f1f2f8f10f10f11f10f11f3總體設(shè)計(jì)的常用方法及工具事務(wù)分析設(shè)計(jì):1、確定DFD中的事物中心和加工路徑。通常當(dāng)DFD中的某個(gè)加工具有明顯的將一個(gè)輸入數(shù)據(jù)流分解成多個(gè)發(fā)散的輸出數(shù)據(jù)流時(shí),該加工就是系統(tǒng)的事務(wù)中心,從事務(wù)中心輻射出去的數(shù)據(jù)流就是各個(gè)加工路徑。2、設(shè)計(jì) 結(jié)構(gòu)的頂層和一層——事務(wù)結(jié)構(gòu)。頂層就是主模塊的位置,有兩個(gè)功能,一是接收數(shù)據(jù),二是根據(jù)事務(wù)類(lèi)型調(diào)度相應(yīng)的處理模塊。因此事務(wù)型 結(jié)構(gòu)應(yīng)包括兩個(gè)部分,接收分支和發(fā)送分支。⑴接收分支:負(fù)責(zé)接收數(shù)據(jù),其設(shè)計(jì)方法與變換型DFD的輸入部分相同。⑵發(fā)送分支:通常包含一個(gè)調(diào)度模塊,控制管理所有的下層事務(wù)處理模塊。3、設(shè)計(jì)中、下層模塊并優(yōu)化。具體過(guò)程同變換結(jié)構(gòu)設(shè)計(jì)??傮w設(shè)計(jì)的常用方法及工具AB加工路徑輸入流事務(wù)處理中心事務(wù)分析設(shè)計(jì)CDf1總體設(shè)計(jì)的常用

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論