計(jì)算機(jī)軟件技術(shù)基礎(chǔ)-課件 20ch12(2)-SE_第1頁
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)-課件 20ch12(2)-SE_第2頁
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)-課件 20ch12(2)-SE_第3頁
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)-課件 20ch12(2)-SE_第4頁
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)-課件 20ch12(2)-SE_第5頁
已閱讀5頁,還剩71頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

需求分析問題定義可性行研究計(jì)劃時期概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼測試開發(fā)時期運(yùn)行與維護(hù)運(yùn)行時期當(dāng)前位置:軟件的生存周期第12章需求分析和軟件設(shè)計(jì)12.2軟件設(shè)計(jì)12.2.1

概要設(shè)計(jì)12.2.2軟件設(shè)計(jì)概念與原則12.2.3結(jié)構(gòu)化設(shè)計(jì)方法12.2.4詳細(xì)設(shè)計(jì)概述12.2.1軟件概要設(shè)計(jì)學(xué)習(xí)目標(biāo):

1.掌握:軟件設(shè)計(jì)的概念與原則,概要設(shè)計(jì)的任務(wù)、步驟和方法。

2.了解:概要設(shè)計(jì)文檔與評審。

學(xué)習(xí)要點(diǎn):

軟件設(shè)計(jì)的概念與原則、概要設(shè)計(jì)的任務(wù)、步驟和方法、面向數(shù)據(jù)流的設(shè)計(jì)方法

概述軟件設(shè)計(jì)的總體目標(biāo):將需求分析階段得到的目標(biāo)系統(tǒng)的邏輯模型,變換為目標(biāo)系統(tǒng)的物理模型。(根據(jù)需求分析的“做什么”,確定系統(tǒng)應(yīng)該“怎么做”)軟件設(shè)計(jì)的任務(wù):把分析階段產(chǎn)生的軟件需求規(guī)格說明轉(zhuǎn)換為用適當(dāng)手段表示的軟件設(shè)計(jì)(包括能實(shí)現(xiàn)軟件功能、性能要求集合的最合理的軟件系統(tǒng)結(jié)構(gòu)、設(shè)計(jì)實(shí)現(xiàn)的算法和數(shù)據(jù)結(jié)構(gòu)),并形成軟件設(shè)計(jì)文檔。概述從工程管理的角度來看,軟件設(shè)計(jì)階段的工作分成兩步:

概要(總體/初步)設(shè)計(jì):

將軟件需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件的系統(tǒng)結(jié)構(gòu)(結(jié)構(gòu)設(shè)計(jì)、接口設(shè)計(jì)),形成概要設(shè)計(jì)文檔。

詳細(xì)(過程/構(gòu)件)設(shè)計(jì):通過對結(jié)構(gòu)表示進(jìn)行細(xì)化,得到軟件詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和算法,產(chǎn)生描述各軟件構(gòu)件的詳細(xì)設(shè)計(jì)文檔。12.2.1軟件概要設(shè)計(jì)基本過程:

軟件體系結(jié)構(gòu)設(shè)計(jì)系統(tǒng)架構(gòu)設(shè)計(jì):定義組成系統(tǒng)的子系統(tǒng)以及對子系統(tǒng)的控制、子系統(tǒng)之間的通信和數(shù)據(jù)環(huán)境等;(倉庫模型、分布式結(jié)構(gòu)(多處理器、客戶-服務(wù)器等))軟件結(jié)構(gòu)設(shè)計(jì):定義構(gòu)造子系統(tǒng)的功能模塊、模塊接口、模塊之間的調(diào)用與返回關(guān)系;數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)庫)設(shè)計(jì):12.2.1軟件概要設(shè)計(jì)基本過程:

軟件體系結(jié)構(gòu)設(shè)計(jì):系統(tǒng)架構(gòu)設(shè)計(jì)、軟件結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)庫)設(shè)計(jì):

設(shè)計(jì)構(gòu)造子系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫等。數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì):根據(jù)需求分析階段對系統(tǒng)數(shù)據(jù)的組成、操作約束、和數(shù)據(jù)之間的關(guān)系(E-R圖)的描述,確定數(shù)據(jù)結(jié)構(gòu)的特性。數(shù)據(jù)庫設(shè)計(jì):一般的軟件系統(tǒng)往往會借助數(shù)據(jù)庫技術(shù)進(jìn)行數(shù)據(jù)的存儲和管理。數(shù)據(jù)庫設(shè)計(jì)指數(shù)據(jù)存儲文件/數(shù)據(jù)庫系統(tǒng)的設(shè)計(jì),包括概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)。說明:概要設(shè)計(jì)獲得軟件系統(tǒng)的基本結(jié)構(gòu),它從從全局來把握系統(tǒng)的實(shí)施方案和策略。軟件內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),在詳細(xì)設(shè)計(jì)階段解決。12.2.1軟件概要設(shè)計(jì)*概要設(shè)計(jì)的內(nèi)容(了解)內(nèi)容:1.制定規(guī)范2.系統(tǒng)架構(gòu)設(shè)計(jì)3.軟件結(jié)構(gòu)設(shè)計(jì)4.公共數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)5.安全性設(shè)計(jì)6.故障處理設(shè)計(jì)7.可維護(hù)性設(shè)計(jì)8.文檔設(shè)計(jì)9.概要設(shè)計(jì)復(fù)審12.2.2軟件設(shè)計(jì)概念與原則

軟件設(shè)計(jì)原則在20世紀(jì)60年代后陸續(xù)被提出,指導(dǎo)軟件設(shè)計(jì)決策以開發(fā)高質(zhì)量的軟件系統(tǒng)。1.模塊與模塊化2.抽象與逐步求精3.信息隱蔽和局部化4.模塊獨(dú)立性5.軟件程序結(jié)構(gòu)的設(shè)計(jì)原則1.模塊化背景:軟件的體系結(jié)構(gòu)一旦確立以后,需要做的工作就是進(jìn)行系統(tǒng)的模塊分解。模塊—是相對獨(dú)立的,由數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο髽?gòu)成的集合?!澳K“可單獨(dú)被命名的而且可通過名字來訪問。

如:過程、函數(shù)、子程序、宏等等都可作為模塊。模塊化—把軟件系統(tǒng)劃分成若干個模塊,每個模塊完成一個子功能,把這些模塊組合起來,滿足問題的需求。(說明:模塊化是好的軟件設(shè)計(jì)的一個基本準(zhǔn)則。)模塊化的目的:將系統(tǒng)“分而治之”,以降低問題的復(fù)雜性,使軟件結(jié)構(gòu)清晰,易于閱讀、易于理解、易于測試和調(diào)試,因而有助于提高軟件的可靠性。復(fù)雜問題較小問題分解1.模塊化是不是模塊劃分得越多越好呢?影響軟件的總的工作量的因素有兩個:模塊復(fù)雜性成本,模塊接口成本。模塊化與軟件成本如右圖:模塊化的目的—是減少程序復(fù)雜性。2.抽象與逐步求精什么是抽象?抽象是在認(rèn)識復(fù)雜現(xiàn)象過程中使用的思維工具,即抽出事物本質(zhì)的共同特性而暫不考慮它的細(xì)節(jié),忽略那些與當(dāng)前研究目標(biāo)不相關(guān)因素。軟件開發(fā)實(shí)際上就是一個從高層次抽象到低層次抽象逐步過渡的過程在抽象的最高層次,可以使用問題環(huán)境的語言,以概括的方式敘述問題的解。在抽象的較低層,采用更過程化的方法,描述問題時,面向問題的術(shù)語和面向?qū)崿F(xiàn)的術(shù)語相結(jié)合。抽象的最底層,可以用直接實(shí)現(xiàn)的方式來說明。

什么是逐步求精思想(細(xì)化)?逐步求精是一種自頂向下的設(shè)計(jì)策略,是先總體后局部的原則。對一個問題的解決,自頂向下、逐步細(xì)化。軟件開發(fā)過程中的層次結(jié)構(gòu)上層是下一層的抽象,下層是上一層的求精(具體)軟件結(jié)構(gòu)的頂層:全局;軟件結(jié)構(gòu)的底層:具體處理;2.抽象與逐步求精3.信息隱蔽和局部化

信息隱蔽原理:每一個模塊的實(shí)現(xiàn)細(xì)節(jié)對于其他模塊來說是隱蔽的。獨(dú)立的模塊僅交換為了完成系統(tǒng)功能而必須交換的信息。一個模塊中所包含的信息(數(shù)據(jù)和過程等)不允許其他不需要這些信息的模塊使用。局部化:是指把一些關(guān)系密切的軟件元素物理地放得彼此靠近。好處:有助于信息屏蔽。說明:信息隱蔽的目的:主要是為了提高模塊的獨(dú)立性,減少將一個模塊中的錯誤擴(kuò)散到其他模塊的機(jī)會。模塊之間的信息傳遞只能通過合法的調(diào)用接口來實(shí)現(xiàn)。

一般模塊具有的屬性接口:模塊的輸入輸出;功能:指模塊實(shí)現(xiàn)什么功能,做什么事情(包括模塊本身的功能加上它所調(diào)用的所有子模塊的功能);邏輯:描述模塊內(nèi)部如何實(shí)現(xiàn)需求及所需數(shù)據(jù);狀態(tài):該模塊使用時的環(huán)境和條件(模塊間調(diào)用與被調(diào)用關(guān)系)。把軟件劃分成模塊后,怎樣評價模塊結(jié)構(gòu)的好壞?模塊獨(dú)立性4.模塊獨(dú)立性

模塊獨(dú)立性--模塊的獨(dú)立性是指軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他模塊的接口是簡單的(具有單一功能且與其它模塊沒有過多相互作用的特性)。模塊獨(dú)立性的重要性*有效模塊化的(具有獨(dú)立模塊的)軟件比較容易開發(fā)。*獨(dú)立的模塊比較容易測試和維護(hù)。4.模塊獨(dú)立性

模塊的獨(dú)立程度可以由兩個定性標(biāo)準(zhǔn)度量:

·耦合性--塊間聯(lián)系

·內(nèi)聚性--塊內(nèi)聯(lián)系

理想的情況是:高內(nèi)聚、低耦合:塊間聯(lián)系盡可能少,塊內(nèi)聯(lián)系盡可能大。(1)

耦合

耦合是對一個軟件結(jié)構(gòu)內(nèi)各個模塊之間相互連接緊密程度的度量。具體區(qū)分模塊間耦合程度的強(qiáng)弱的標(biāo)準(zhǔn)如右圖:

耦合強(qiáng)弱取決于:數(shù)量:模塊間接口的復(fù)雜程度;方式:調(diào)用模塊的方式;作用:通過接口的信息類型。(1)

耦合①非直接耦合

--兩個模塊之間沒有直接關(guān)系,它們直接的聯(lián)系完全是通過主程序的控制和調(diào)用來實(shí)現(xiàn)的。圖非直接耦合(1)

耦合②數(shù)據(jù)耦合--例:如圖所示如果一個模塊訪問另一個模塊時,彼此之間是通過簡單數(shù)據(jù)參數(shù)(不是控制參數(shù)、公共數(shù)據(jù)結(jié)構(gòu)或外部變量)來交換輸入/輸出信息的,則稱這種耦合為數(shù)據(jù)耦合。圖數(shù)據(jù)耦合(1)

耦合③標(biāo)記耦合

--通過模塊接口傳遞的是整個數(shù)據(jù)結(jié)構(gòu)而不是簡單的參量。例:如圖

標(biāo)記耦合“房租水電”是一個數(shù)據(jù)結(jié)構(gòu)房租水電=房租+用水量+用電量(1)

耦合

④控制耦合

--如果一個模塊通過傳送開關(guān)、標(biāo)志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合。控制耦合示例:控制耦合示例:去除模塊間控制耦合的方法:將被調(diào)用模塊內(nèi)的判定上移到調(diào)用模塊中進(jìn)行被調(diào)用模塊分解成若干單一功能模塊⑤外部耦合

一組模塊都訪問同一全局簡單變量而不是同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),而且不是通過參數(shù)表傳遞該全局變量的信息。

⑥公共耦合一組模塊都訪問同一個公共數(shù)據(jù)環(huán)境。公共的數(shù)據(jù)環(huán)境可以是全局?jǐn)?shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等Acommon公共數(shù)據(jù)區(qū)BAcommon公共數(shù)據(jù)區(qū)B松散的公共耦合緊密的公共耦合⑦內(nèi)容耦合一個模塊直接訪問另一模塊的內(nèi)部信息。出現(xiàn)下列情況之一,即出現(xiàn)了內(nèi)容耦合:一個模塊直接訪問另一模塊的內(nèi)部數(shù)據(jù);一個模塊不通過正常入口轉(zhuǎn)到另一個模塊;兩個模塊有一部分程序代碼重疊(匯編程序中);一個模塊有多個入口。最不好的耦合形式!!!(1)

耦合耦合是影響軟件復(fù)雜程度的一個重要因素。應(yīng)該采取的原則:

盡量使用數(shù)據(jù)耦合;少用控制耦合;限制公共耦合;完全不用內(nèi)容耦合。模塊間的耦合與獨(dú)立性程度(2)內(nèi)聚性

--內(nèi)聚性(cohesion),對一個模塊內(nèi)部各個成分(各種數(shù)據(jù)和各種處理)之間相互關(guān)聯(lián)程度的度量。(2)內(nèi)聚性①偶然內(nèi)聚(coincidentalcohesion)--模塊內(nèi)各部分之間沒有意義上的聯(lián)系(完全不相關(guān))。圖偶然內(nèi)聚缺點(diǎn):可維護(hù)性差、不可重用(2)內(nèi)聚性②邏輯內(nèi)聚(logicalcohesion)

--一個模塊由若干個邏輯功能相似的成分/操作組成(由調(diào)用模塊選擇)。

缺點(diǎn):1、接口難以理解;2、增大了模塊之間的耦合;完成多個操作的代碼糾纏在一起,導(dǎo)致維護(hù)問題。(2)內(nèi)聚性③時間內(nèi)聚(temporalcohesion)

--模塊執(zhí)行一系列與及時性有關(guān)的操作(一個模塊內(nèi)所包含的多個任務(wù)必須在同一“時間”內(nèi)執(zhí)行)。因時間因素而相關(guān)聯(lián)。例如:初始化系統(tǒng)模塊、系統(tǒng)結(jié)束模塊、緊急故障處理模塊等均是時間性聚合模塊。特點(diǎn):1)模塊內(nèi)的操作之間關(guān)聯(lián)很弱,但與其他模塊的操作卻有很強(qiáng)的關(guān)聯(lián),增加了模塊的耦合性;2)不可重用。(2)內(nèi)聚性④過程內(nèi)聚(proceduralcohesion)--模塊執(zhí)行一系列與產(chǎn)品需要遵循的步驟順序有關(guān)的操作(一個模塊內(nèi)的一組任務(wù)是相關(guān)的,且必須按某一特定的次序執(zhí)行。)圖過程內(nèi)聚特點(diǎn):操作之間是弱聯(lián)系;不可重用。(2)內(nèi)聚性⑤通信內(nèi)聚(communicationalcohesion)--一個模塊內(nèi)各功能部分/操作在相同的數(shù)據(jù)上進(jìn)行(都使用了同一個輸入數(shù)據(jù)或產(chǎn)生了同一個輸出數(shù)據(jù))。它們靠公共數(shù)據(jù)而聯(lián)系在一起。產(chǎn)生職工工資報(bào)表并計(jì)算平均工資模塊特點(diǎn):各操作緊密相連,優(yōu)于過程內(nèi)聚;不可重用。(2)內(nèi)聚性⑥順序內(nèi)聚(sequentialcohesion)--一個模塊的各個成分都與同一個功能密切相關(guān),各成分需要順序執(zhí)行(一個成分的輸出是下一個成分的輸入)。(2)內(nèi)聚性⑦功能內(nèi)聚(functionalcohesion)--一個模塊只完成一個單一功能(所有部分屬于一個整體)。說明:模塊中各個部分都是完成某一具體功能必不可少的組成部分,或者說該模塊中所有部分都是為了完成一項(xiàng)具體功能而協(xié)同工作,緊密聯(lián)系,不可分割的。

模塊內(nèi)聚與獨(dú)立性程度提高模塊獨(dú)立性的準(zhǔn)則:高內(nèi)聚、低耦合5.軟件模塊結(jié)構(gòu)的設(shè)計(jì)原則優(yōu)化軟件程序結(jié)構(gòu)設(shè)計(jì)的指導(dǎo)規(guī)則:

1)提高模塊獨(dú)立性

2)模塊規(guī)模應(yīng)該適中

3)適當(dāng)?shù)纳瘸龊蜕热?/p>

4)模塊的作用域應(yīng)該在控制域之內(nèi)

5)力爭降低模塊接口的復(fù)雜程度

6)設(shè)計(jì)單入口單出口的模塊

7)模塊功能應(yīng)該可以預(yù)測幾個有關(guān)的術(shù)語:①下屬和上屬關(guān)系--在軟件結(jié)構(gòu)的層次中,上層模塊調(diào)用下層模塊,同一層模塊之間不發(fā)生關(guān)系;②深度--表示控制層數(shù),即軟件結(jié)構(gòu)中從頂層模塊到最低層模塊的層數(shù);③寬度--表示控制的總分布,即結(jié)構(gòu)圖中同一層模塊的最大模塊數(shù);④扇出數(shù)--指一個模塊直接控制的下屬模塊個數(shù);⑤扇入數(shù)--指一個模塊的直接上屬模塊個數(shù);軟件結(jié)構(gòu)圖深度寬度扇出扇入頂層1層2層3層5.軟件模塊結(jié)構(gòu)的設(shè)計(jì)原則準(zhǔn)則1:改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性。

一個模塊保持一個獨(dú)立的功能。設(shè)計(jì)目標(biāo):高內(nèi)聚、低耦合通過分解和合并如果若干模塊之間耦合強(qiáng)度過高,每個模塊功能不復(fù)雜,可將它們合并,以減少信息的傳遞和公共區(qū)的引用分解合并對相關(guān)模塊進(jìn)行分解,消除重復(fù)功能5.軟件模塊結(jié)構(gòu)的設(shè)計(jì)原則

準(zhǔn)則2:深度、寬度、扇入和扇出都應(yīng)適當(dāng)。平均扇出數(shù):3或4

上限:5-7多扇出及其改造多扇入及其改造5.軟件模塊結(jié)構(gòu)的設(shè)計(jì)原則準(zhǔn)則3:模塊的作用域應(yīng)保持在該模塊的控制域內(nèi)。

模塊的作用域——受該模塊內(nèi)一個判定影響所有的模塊集合。模塊的控制域——這個模塊本身及所有直接或間接從屬于它的模塊集合。

軟件結(jié)構(gòu)準(zhǔn)則3圖例改進(jìn)結(jié)構(gòu)的方法:

①把判定上移到足夠高的位置。②將受判定影響的模塊下移到控制范圍內(nèi)。準(zhǔn)則3:模塊的作用域應(yīng)保持在該模塊的控制域內(nèi)。模塊的作用域和控制域5.軟件模塊結(jié)構(gòu)的設(shè)計(jì)原則準(zhǔn)則4:模塊的規(guī)模應(yīng)適中。規(guī)模:

一個模塊的語句數(shù)量:30-50行左右,一頁紙。準(zhǔn)則5:力爭降低模塊接口的復(fù)雜度。

如果在幾個模塊中發(fā)現(xiàn)共有的子功能,一般應(yīng)該將該子功能分解出來作為一個模塊,以提高模塊的內(nèi)聚度和獨(dú)立性。

合并那些具有較多的控制信息傳遞的模塊,以降低模塊之間的耦合度5.軟件模塊結(jié)構(gòu)的設(shè)計(jì)原則準(zhǔn)則6:追求單入口單出口的模塊。準(zhǔn)則7:設(shè)計(jì)功能可預(yù)測的模塊。

12.2.3結(jié)構(gòu)化設(shè)計(jì)方法(SD)回顧:結(jié)構(gòu)化分析方法--是一種面向數(shù)據(jù)流進(jìn)行需求分析(SA)的方法。

SA方法的基本思想

SA--是用抽象模型的概念,按照軟件內(nèi)部數(shù)據(jù)傳遞、變換關(guān)系,自頂向下逐層分解,直到找到滿足功能需要的所有可實(shí)現(xiàn)的軟件元素為止。

采用的基本手段:

·分解·抽象SA使用的描述工具:

·數(shù)據(jù)流圖:表示了軟件中的信息流向和信息的加工

·數(shù)據(jù)字典:對這些信息和加工進(jìn)行更詳細(xì)的描述;

特點(diǎn):①自頂向下逐層分解;②采用簡明易懂、直觀的描述方式12.2.3結(jié)構(gòu)化設(shè)計(jì)方法(SD)結(jié)構(gòu)化設(shè)計(jì)方法(StructedDesign):是在模塊化、自頂向下逐層求精、結(jié)構(gòu)化程序設(shè)計(jì)等基礎(chǔ)上發(fā)展起來的。屬于面向數(shù)據(jù)流的軟件設(shè)計(jì)方法,與需求分析階段的SA方法相銜接。SD方法以數(shù)據(jù)流圖DFD為基礎(chǔ),它定義了把DFD變換成軟件結(jié)構(gòu)圖的不同映射方法。SD方法的基本思想--模塊化、自頂向下,逐步求精1.軟件結(jié)構(gòu)圖(SC圖)(1)結(jié)構(gòu)圖(SC圖)SC圖是SD方法在概要設(shè)計(jì)中使用的主要描述工具。

用來描述軟件的模塊結(jié)構(gòu),反映了軟件的模塊組成及其調(diào)用關(guān)系。1)SC圖的組成符號矩形框表示模塊,反映模塊功能矩形框之間的箭頭表示模塊之間的調(diào)用關(guān)系調(diào)用線旁的注釋箭頭表示調(diào)用中來回傳遞信息的方向模塊符號從下屬模塊取得數(shù)據(jù),經(jīng)過某些處理,再將其傳送給上級模塊。它傳送的數(shù)據(jù)流叫做邏輯傳入數(shù)據(jù)流。從上級模塊獲得數(shù)據(jù),進(jìn)行某些處理,再將其傳送給下屬模塊。它傳送的數(shù)據(jù)流叫做邏輯傳出數(shù)據(jù)流。模塊符號它從上級模塊取得數(shù)據(jù),進(jìn)行特定的處理,轉(zhuǎn)換成其它形式,再傳送回上級模塊。它加工的數(shù)據(jù)流叫做變換數(shù)據(jù)流。對所有下屬模塊進(jìn)行協(xié)調(diào)和管理的模塊。模塊符號源模塊是不調(diào)用其它模塊的傳入模塊,只用于傳入部分的始端。漏模塊是不調(diào)用其它模塊的傳出模塊,僅用于傳出部分的末端。2)SC圖中的模塊調(diào)用①

簡單調(diào)用模塊符號②選擇調(diào)用菱形——選擇③循環(huán)調(diào)用

用疊加在調(diào)用線始端的環(huán)形箭頭表示

2.數(shù)據(jù)流圖的類型與SD方法的步驟面向數(shù)據(jù)流圖的設(shè)計(jì)過程概要設(shè)計(jì)的過程:

(1)復(fù)查并精化數(shù)據(jù)流圖

(2)確定數(shù)據(jù)流圖的類型(轉(zhuǎn)換/事務(wù)型)

(3)從數(shù)據(jù)流圖導(dǎo)出系統(tǒng)的初始軟件結(jié)構(gòu)圖

(4)改進(jìn)初始軟件結(jié)構(gòu)圖,得到更合理的軟件結(jié)構(gòu)

(5)復(fù)查(1)數(shù)據(jù)流圖的類型

通常把數(shù)據(jù)流圖分為兩大類型:

·轉(zhuǎn)換處理型(變換型)

·事務(wù)處理型

1)變換型結(jié)構(gòu)組成:傳入路徑變換中心傳出路徑數(shù)據(jù)流——傳入流——變換流——傳出流圖變換型結(jié)構(gòu)的系統(tǒng)變換型數(shù)據(jù)流圖在傳入流中:外部數(shù)據(jù)(物理輸入)→內(nèi)部形式(邏輯輸入)在變換流中:邏輯輸入→邏輯輸出在傳出流中:邏輯輸出→物理輸出傳入流變換流傳出流特點(diǎn): 數(shù)據(jù)流圖基本上呈線性形狀的結(jié)構(gòu),可以比較明顯地分為輸入、中心加工和輸出三個部分。例:變換型數(shù)據(jù)流圖2)事務(wù)處理型

組成:

·至少一條接收路徑——事務(wù)流

·一個事務(wù)中心

·若干個動作路徑——事務(wù)路徑特點(diǎn):呈輻射狀,即一個加工將它的輸入分離成許多平行的數(shù)據(jù)流,然后選擇執(zhí)行后面的某一個加工。

圖事務(wù)型結(jié)構(gòu)的系統(tǒng)基本模型關(guān)于數(shù)據(jù)流分類的討論實(shí)際上所有的數(shù)據(jù)流都是變換流,事務(wù)流是變換流的一種特殊形式為什么要將事務(wù)型的數(shù)據(jù)流獨(dú)立出來考慮?對于事務(wù)型的數(shù)據(jù)流,有更適當(dāng)?shù)慕Y(jié)構(gòu)設(shè)計(jì)大多數(shù)系統(tǒng)的數(shù)據(jù)流圖中,事務(wù)流和變換流往往交織在一起。如右圖:圖同時存在兩類結(jié)構(gòu)的系統(tǒng)軟件結(jié)構(gòu)的描述方式軟件:一個軟件有層次性和過程性兩個特點(diǎn):“層次性”——反映整體性質(zhì),用軟件結(jié)構(gòu)圖描述“過程性”——反映局部性質(zhì),用程序流程圖描述軟件結(jié)構(gòu)圖--描述軟件的模塊結(jié)構(gòu),反映了軟件的組成及其調(diào)用關(guān)系。對于兩種不同類型的數(shù)據(jù)流圖,其映射方法不同:

3.變換映射(分析)

變換映射步驟:

(1)確定數(shù)據(jù)流圖的類型:變換處理型。(2)在DFD圖上標(biāo)明流界

--確定輸入流和輸出流的邊界,孤立出中心加工,即要找出邏輯輸入、邏輯輸出和中心加工①首先要找出輸入流的終點(diǎn),即邏輯輸入;②找出輸出流的起點(diǎn),即邏輯輸出;③找出中心加工。說明:中心加工的任務(wù),就是通過計(jì)算或者處理,把系統(tǒng)的邏輯輸入變換成系統(tǒng)的邏輯輸出。轉(zhuǎn)換型DFD轉(zhuǎn)換映射初始的軟件結(jié)構(gòu)圖根據(jù)各種準(zhǔn)則修改完善最終的軟件結(jié)構(gòu)圖變換映射(3)進(jìn)行一級分解,設(shè)計(jì)上層模塊

主要是畫出頂層和第一層,任何系統(tǒng)的頂層都只有一個用于控制的主模塊。它的下一層一般包括輸入、輸出和中心變換三個模塊。

①在中心加工位置設(shè)計(jì)一個主模塊M(頂層模塊)

主模塊M:其功能是控制整個軟件結(jié)構(gòu),完成系統(tǒng)所要做的各項(xiàng)工作。②為輸入流設(shè)計(jì)一個輸入控制模塊CI

輸入控制模塊CI:功能是為主模塊提供邏輯輸入信息

主模塊MCI輸入C變換映射③為輸出流設(shè)計(jì)一個輸出控制模塊CO

輸出控制模塊CO:功能是為主模塊提供數(shù)據(jù)輸出

④為中心加工設(shè)計(jì)一個轉(zhuǎn)換控制模塊CT

轉(zhuǎn)換控制模塊CT:功能是控制所有內(nèi)部數(shù)據(jù)的操作,將邏輯輸入轉(zhuǎn)換成邏輯輸出

主模塊MCI輸入CO輸出CDCCT處理D變換映射(4)進(jìn)行二級分解,設(shè)計(jì)中下層模塊對上一步的結(jié)果繼續(xù)進(jìn)行自頂向下的分解,直到畫出每個分支所需要的全部模塊。

①輸入模塊的從屬模塊設(shè)計(jì)兩個從屬模塊:·輸入模塊 ·變換模塊

②輸出模塊的從屬模塊設(shè)計(jì) 兩個從屬模塊:·變換模塊·輸出模塊

③變換模塊的從屬模塊設(shè)計(jì)主模塊MCI輸入CO輸出CDCCT處理D(5)進(jìn)一步細(xì)化變換映射AABBBCCCDD4.事務(wù)映射(分析)事務(wù)型數(shù)據(jù)流圖由至少一條接收路徑、一個事務(wù)中心與若干條動作路徑組成。與變換分析一樣,事務(wù)分析也是從分析數(shù)據(jù)流圖開始,自頂向下,逐步分解,建立系統(tǒng)的結(jié)構(gòu)圖。(1)確定數(shù)據(jù)流圖類型:事務(wù)處理型。(2)在DFD圖上確定流界

溫馨提示

  • 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

提交評論