第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è)
已閱讀5頁(yè),還剩67頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第四章總體設(shè)計(jì)第4章總體設(shè)計(jì)

可行性分析

--Why?Who?

需求分析

--What?

設(shè)計(jì)

--Howdo?

總體設(shè)計(jì)(概要設(shè)計(jì))確定軟件的結(jié)構(gòu)以及各組成成分(子系統(tǒng)或模塊)之間的相互關(guān)系

設(shè)計(jì)詳細(xì)設(shè)計(jì)確定模塊內(nèi)部的算法和數(shù)據(jù)結(jié)構(gòu),產(chǎn)生描述各模塊程序過(guò)程的詳細(xì)文檔。

總體設(shè)計(jì)的任務(wù)劃分出組成系統(tǒng)的物理元素—程序、文件、數(shù)據(jù)庫(kù)、人工過(guò)程和文檔等,但是每個(gè)物理元素仍然處于黑盒子級(jí),這些黑盒子里的具體內(nèi)容將在以后仔細(xì)設(shè)計(jì)。設(shè)計(jì)軟件的結(jié)構(gòu),也就是要確定系統(tǒng)中每個(gè)程序是由哪些模塊組成的,以及這些模塊相互間的關(guān)系。4.1設(shè)計(jì)過(guò)程總體設(shè)計(jì)過(guò)程通常由兩個(gè)主要階段組成:

--系統(tǒng)設(shè)計(jì)階段,確定系統(tǒng)的具體實(shí)現(xiàn)方案;

--結(jié)構(gòu)設(shè)計(jì)階段,確定軟件結(jié)構(gòu)。典型的總體設(shè)計(jì)過(guò)程包括下述9個(gè)步驟:1.設(shè)想供選擇的方案2.選取合理的方案3.推薦最佳方案4.功能分解5.設(shè)計(jì)軟件結(jié)構(gòu)6.設(shè)計(jì)數(shù)據(jù)庫(kù)7.制定測(cè)試計(jì)劃8.書(shū)寫(xiě)文檔9.審查和復(fù)審總體設(shè)計(jì)所書(shū)寫(xiě)的文檔(1)總體設(shè)計(jì)說(shuō)明主要內(nèi)容包括用系統(tǒng)流程圖描繪的系統(tǒng)構(gòu)成方案,組成系統(tǒng)的物理元素清單,成本/效益分析;對(duì)最佳方案的概括描述,精化的數(shù)據(jù)流圖,用層次圖或結(jié)構(gòu)圖描繪的軟件結(jié)構(gòu),用IPO圖或其他工具簡(jiǎn)要描述的各個(gè)模塊的算法,模塊間的接口關(guān)系,以及需求、功能和模塊三者之間的交叉參照關(guān)系等等。(2)用戶手冊(cè)根據(jù)總體設(shè)計(jì)階段的結(jié)果,修改更正在需求分析階段產(chǎn)生的初步的用戶手冊(cè)。(3)測(cè)試計(jì)劃包括測(cè)試策略,測(cè)試方案,預(yù)期的測(cè)試結(jié)果,測(cè)試進(jìn)度計(jì)劃等等。(4)詳細(xì)的實(shí)現(xiàn)計(jì)劃(5)數(shù)據(jù)庫(kù)設(shè)計(jì)結(jié)果概要設(shè)計(jì)說(shuō)明書(shū)(GB8567—88)4.2設(shè)計(jì)原理模塊化抽象逐步求精信息隱藏和局部化模塊獨(dú)立4.2.1模塊化模塊是由邊界元素限定的相鄰程序元素(例如,數(shù)據(jù)說(shuō)明,可執(zhí)行的語(yǔ)句)的序列,而且有一個(gè)總體標(biāo)識(shí)符代表它。

--如:過(guò)程、函數(shù)、子程序、宏、對(duì)象等,都可作為模塊。模塊化就是把程序劃分成獨(dú)立命名且可獨(dú)立訪問(wèn)的模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集成起來(lái)構(gòu)成一個(gè)整體,可以完成指定的功能滿足用戶的需求。問(wèn)題:模塊該如何劃分?設(shè):C(x)為復(fù)雜程度函數(shù)E(x)為決定解決問(wèn)題x所需的

工作量(時(shí)間)函數(shù)對(duì)于兩個(gè)問(wèn)題P1和P2,如果C(P1)>C(P2)則:E(P1)>E(P2)

如果C(P1+P2)>C(P1)+C(P2)則:E(P1+P2)>E(P1)+E(P2)這個(gè)不等式導(dǎo)致“各個(gè)擊破”的結(jié)論—把復(fù)雜的問(wèn)題分解成許多容易解決的小問(wèn)題,原來(lái)的問(wèn)題也就容易解決了。這就是模塊化的根據(jù)。最小成本區(qū)M模塊成本接口成本總成本軟件開(kāi)發(fā)工作量

模塊數(shù)4.2.2抽象人類在認(rèn)識(shí)復(fù)雜現(xiàn)象的過(guò)程中使用的最強(qiáng)有力的思維工具是抽象。--就是抽出事物的本質(zhì)特性(共性),而暫時(shí)不考慮它們的細(xì)節(jié)。處理復(fù)雜系統(tǒng)的惟一有效的方法是用層次的方式構(gòu)造和分析它。--在抽象的最高層次使用問(wèn)題環(huán)境的語(yǔ)言,以概括的方式敘述問(wèn)題的解法;在較低抽象層次采用更過(guò)程化的方法,把面向問(wèn)題的術(shù)語(yǔ)和面向?qū)崿F(xiàn)的術(shù)語(yǔ)結(jié)合起來(lái)敘述問(wèn)題的解法;最后在最低的抽象層次用可直接實(shí)現(xiàn)的方式敘述問(wèn)題的解法。軟件工程過(guò)程的每一步都是對(duì)軟件解法的抽象層次的一次精化。

在可行性研究階段,軟件作為系統(tǒng)的一個(gè)完整部件;在需求分析期間,軟件解法是使用在問(wèn)題環(huán)境內(nèi)熟悉的方式描述的;當(dāng)由總體設(shè)計(jì)向詳細(xì)設(shè)計(jì)過(guò)渡時(shí),抽象的程度也就隨之減少了;最后,當(dāng)源程序?qū)懗鰜?lái)以后,也就達(dá)到了抽象的最低層。4.2.3逐步求精逐步求精是人類解決復(fù)雜問(wèn)題時(shí)采用的基本方法,也是許多軟件工程技術(shù)(例如,規(guī)格說(shuō)明技術(shù),設(shè)計(jì)和實(shí)現(xiàn)技術(shù))的基礎(chǔ)。逐步求精定義為:“為了能集中精力解決主要問(wèn)題而盡量推遲對(duì)問(wèn)題細(xì)節(jié)的考慮?!盡agicalNumberSeven,PlusorMinusTwo,SomeLimitsonOurCapacityforProcessingInformation

ThePsychologicalReview,1956

G.A.Miller奇妙的數(shù)字7+2,人類信息處理能力的限度逐步求精最初是由NiklausWirth提出的一種自頂向下的設(shè)計(jì)策略。他本人的概括說(shuō)明如下:我們對(duì)付復(fù)雜問(wèn)題的最重要的辦法是抽象,因此,對(duì)一個(gè)復(fù)雜的問(wèn)題不應(yīng)該立刻用計(jì)算機(jī)指令、數(shù)字和邏輯符號(hào)來(lái)表示,而應(yīng)該用較自然的抽象語(yǔ)句來(lái)表示,從而得出抽象程序。抽象程序?qū)Τ橄蟮臄?shù)據(jù)進(jìn)行某些特定的運(yùn)算并用某些合適的記號(hào)(可能是自然語(yǔ)言)來(lái)表示。對(duì)抽象程序做進(jìn)一步的分解,并進(jìn)入下一個(gè)抽象層次,這樣的精細(xì)化過(guò)程一直進(jìn)行下去,直到程序能被計(jì)算機(jī)接受為止。這時(shí)的程序可能是用某種高級(jí)語(yǔ)言或機(jī)器指令書(shū)寫(xiě)的。抽象與求精是一對(duì)互補(bǔ)的概念。抽象使得設(shè)計(jì)者能夠說(shuō)明過(guò)程和數(shù)據(jù),同時(shí)卻忽略低層細(xì)節(jié)。事實(shí)上,可以把抽象看作是一種通過(guò)忽略多余的細(xì)節(jié)同時(shí)強(qiáng)調(diào)有關(guān)的細(xì)節(jié),而實(shí)現(xiàn)逐步求精的方法。求精則幫助設(shè)計(jì)者在設(shè)計(jì)過(guò)程中逐步揭示出低層細(xì)節(jié)。這兩個(gè)概念都有助于設(shè)計(jì)者在設(shè)計(jì)演化過(guò)程中創(chuàng)造出完整的設(shè)計(jì)模型。4.2.4信息隱藏和局部化信息隱藏原理指出:設(shè)計(jì)和確定模塊,使得一個(gè)模塊內(nèi)包含的信息(過(guò)程和數(shù)據(jù))對(duì)于不需要這些信息的模塊來(lái)說(shuō),是不能訪問(wèn)的。局部化的概念和信息隱藏概念是密切相關(guān)的。所謂局部化:是指把一些關(guān)系密切的軟件元素物理地放得彼此靠近。

--在模塊中使用局部數(shù)據(jù)元素是局部化的一個(gè)例子。顯然,局部化有助于實(shí)現(xiàn)信息隱藏。如果在測(cè)試期間和以后的軟件維護(hù)期間需要修改軟件,那么使用信息隱藏原理作為模塊化系統(tǒng)設(shè)計(jì)的標(biāo)準(zhǔn)就會(huì)帶來(lái)極大好處。4.2.5模塊獨(dú)立

模塊的獨(dú)立性是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他模塊的接口是簡(jiǎn)單的。----方便開(kāi)發(fā)與維護(hù)耦合

模塊之間的相對(duì)獨(dú)立性的度量?jī)?nèi)聚

模塊功能強(qiáng)度的度量模塊的獨(dú)立程度可以由兩個(gè)定性標(biāo)準(zhǔn)度量1.耦合

耦合性是程序結(jié)構(gòu)中各個(gè)模塊之間相互關(guān)聯(lián)的度量它取決于各個(gè)模塊之間接口的復(fù)雜程度、調(diào)用模塊的方式以及那些信息通過(guò)接口。低非直接耦合數(shù)據(jù)耦合標(biāo)記耦合控制耦合外部耦合公共耦合內(nèi)容耦合

高弱強(qiáng)耦合性模塊獨(dú)立性(1)非直接耦合兩個(gè)模塊沒(méi)有直接關(guān)系(模塊1和模塊2),模塊獨(dú)立性最強(qiáng)。模塊1模塊2模塊3模塊4(2)數(shù)據(jù)耦合

一模塊調(diào)用另一模塊時(shí),被調(diào)用模塊的輸入、輸出都是簡(jiǎn)單的數(shù)據(jù)(若干參數(shù))。屬松散耦合。

開(kāi)發(fā)票計(jì)算水費(fèi)單價(jià)數(shù)量金額(3)標(biāo)記耦合(特征耦合)

如兩個(gè)模塊通過(guò)傳遞數(shù)據(jù)結(jié)構(gòu)(不是簡(jiǎn)單數(shù)據(jù),而是記錄、數(shù)組等)加以聯(lián)系,或都與一個(gè)數(shù)據(jù)結(jié)構(gòu)有關(guān)系,則稱這兩個(gè)模塊間存在標(biāo)記偶合。計(jì)算電費(fèi)計(jì)算水費(fèi)計(jì)算住戶水電費(fèi)住戶情況水費(fèi)電費(fèi)住戶情況“住戶情況”是一個(gè)數(shù)據(jù)結(jié)構(gòu),圖中模塊都與此數(shù)據(jù)結(jié)構(gòu)有關(guān).“計(jì)算水費(fèi)”和“計(jì)算電費(fèi)”本無(wú)關(guān),由于引用了此數(shù)據(jù)結(jié)構(gòu)產(chǎn)生依賴關(guān)系,它們之間也是標(biāo)記偶合.(4)控制耦合

A模塊flagf1Bf2fn……如果一個(gè)模塊通過(guò)傳送開(kāi)關(guān)、標(biāo)志、名字等控制信息,明顯地控制選擇另一模塊的功能就是控制耦合。(5)外部耦合一組模塊均與同一外部環(huán)境關(guān)聯(lián)(例如,I/O模塊與特定的設(shè)備、格式和通信協(xié)議相關(guān)聯(lián)),它們之間便存在外部耦合。外部偶合必不可少,但這種模塊數(shù)目應(yīng)盡量少。(6)公共環(huán)境耦合(公共數(shù)據(jù)區(qū)耦合)

一組模塊引用同一個(gè)公用數(shù)據(jù)區(qū)(也稱全局?jǐn)?shù)據(jù)區(qū)、公共數(shù)據(jù)環(huán)境,如:數(shù)據(jù)池、軍事隔離區(qū)等)。公共數(shù)據(jù)區(qū)指:全局?jǐn)?shù)據(jù)結(jié)構(gòu)共享通訊區(qū)內(nèi)存公共覆蓋區(qū)等

ABC公共數(shù)據(jù)區(qū)公共耦合存在的問(wèn)題:(1)軟件可理解性降低(2)診斷錯(cuò)誤困難(3)軟件可維護(hù)性差,(4)軟件可靠性差(公共數(shù)據(jù)區(qū)及全程變量無(wú)保護(hù)措施)慎用公共數(shù)據(jù)區(qū)和全程變量!!!(7)內(nèi)容耦合AB一模塊直接訪問(wèn)另一模塊的內(nèi)部信息(程序代碼或數(shù)據(jù))AB模塊代碼重疊Entry1……Entry2

……多入口模塊不正常轉(zhuǎn)入另一模塊最不好的耦合形式!以上給出了7種耦合類型,這只是從耦合的機(jī)制上所做的分類,按耦合的強(qiáng)弱程度的排列只是相對(duì)的關(guān)系。但它給設(shè)計(jì)人員在設(shè)計(jì)程序結(jié)構(gòu)時(shí)提供了一決策準(zhǔn)則。實(shí)際上,開(kāi)始時(shí)兩個(gè)模塊之間的耦合不只是一種類型,而是多種類型的混合。這就要求設(shè)計(jì)人員按照實(shí)際情況進(jìn)行分析、比較和分析,逐步加以改進(jìn),以提高模塊的獨(dú)立性??傊?,耦合是影響軟件復(fù)雜程度的一個(gè)重要因素。應(yīng)該采取下述設(shè)計(jì)原則:盡量使用數(shù)據(jù)耦合,少用控制耦合和標(biāo)記耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。2.內(nèi)聚一個(gè)模塊內(nèi)部元素在功能上相互關(guān)聯(lián)的強(qiáng)度設(shè)計(jì)目標(biāo):高內(nèi)聚,模塊在軟件過(guò)程中完成單一的任務(wù)(1)功能內(nèi)聚(FunctionalCohesion)一個(gè)模塊中各個(gè)部分都是完成某一具體功能必不可少的組成部分,或者說(shuō)該模塊中所有部分都是為了完成一項(xiàng)具體功能而協(xié)同工作,緊密聯(lián)系,不可分割的。則稱該模塊為功能內(nèi)聚模塊。內(nèi)聚性最強(qiáng)如果一個(gè)模塊內(nèi)的處理元素和同一個(gè)功能密切相關(guān),而且這些處理必須順序執(zhí)行(通常一個(gè)處理元素的輸出數(shù)據(jù)作為下一個(gè)處理元素的輸入數(shù)據(jù)),則稱為順序內(nèi)聚。(2)信息內(nèi)聚(InformationalCohesion)這種模塊完成多個(gè)功能,各個(gè)功能都在同一數(shù)據(jù)結(jié)構(gòu)上操作,每一項(xiàng)功能有一個(gè)唯一的入口點(diǎn)。這個(gè)模塊將根據(jù)不同的要求,確定該執(zhí)行哪一個(gè)功能。由于這個(gè)模塊的所有功能都是基于同一個(gè)數(shù)據(jù)結(jié)構(gòu)(符號(hào)表),因此,它是一個(gè)信息內(nèi)聚的模塊。信息內(nèi)聚模塊可以看成是多個(gè)功能內(nèi)聚模塊的組合,并且達(dá)到信息的隱蔽。即把某個(gè)數(shù)據(jù)結(jié)構(gòu)、資源或設(shè)備隱蔽在一個(gè)模塊內(nèi),不為別的模塊所知曉(3)通信內(nèi)聚(CommunicationCohesion)如果一個(gè)模塊內(nèi)各功能部分都使用了相同的輸入數(shù)據(jù),或產(chǎn)生了相同的輸出數(shù)據(jù),則稱之為通信內(nèi)聚模塊。通常,通信內(nèi)聚模塊是通過(guò)數(shù)據(jù)流圖來(lái)定義的。(4)過(guò)程內(nèi)聚(ProceduralCohesion)模塊內(nèi)各處理成分相關(guān),且必須以特定次序執(zhí)行讀入成績(jī)單審查成績(jī)單統(tǒng)計(jì)成績(jī)打印成績(jī)讀入并審查成績(jī)單統(tǒng)計(jì)并打印成績(jī)單(5)時(shí)間內(nèi)聚(ClassicalCohesion)

時(shí)間內(nèi)聚又稱為經(jīng)典內(nèi)聚。這種模塊大多為多功能模塊,但模塊的各個(gè)功能的執(zhí)行與時(shí)間有關(guān),通常要求所有功能必須在同一時(shí)間段內(nèi)執(zhí)行。例如初始化模塊和終止模塊,系統(tǒng)結(jié)束模塊、緊急故障處理模塊等均是時(shí)間性聚合模塊

。(6)邏輯內(nèi)聚(LogicalCohesion)把幾種相關(guān)功能(邏輯上相似的功能)組合在一模塊內(nèi),每次調(diào)用由傳給模塊的參數(shù)確定執(zhí)行哪種功能。SXYZWABCDSXYZWABCD(7)巧合內(nèi)聚(CoincidentalCohesion)當(dāng)模塊內(nèi)各部分之間沒(méi)有聯(lián)系,或者即使有聯(lián)系,這種聯(lián)也很松散,則稱這種模塊為巧合內(nèi)聚模塊,它是內(nèi)聚程度最低的模塊。模塊M中的三個(gè)語(yǔ)句沒(méi)有任何聯(lián)系缺點(diǎn):可理解性差,可修改性差內(nèi)聚與耦合密切相關(guān),同其它模塊強(qiáng)耦合的模塊意味者弱內(nèi)聚,強(qiáng)內(nèi)聚模塊意味著與其它模塊間松散耦合。

設(shè)計(jì)目標(biāo):

力爭(zhēng)強(qiáng)內(nèi)聚、弱耦合耦合、內(nèi)聚與模塊獨(dú)立性關(guān)系:耦合與內(nèi)聚都是模塊獨(dú)立性的定性標(biāo)準(zhǔn),都反映模塊獨(dú)立性的良好程度。但耦合是直接的主導(dǎo)因素,內(nèi)聚則輔助耦合共同對(duì)模塊獨(dú)立性進(jìn)行衡量。4.3改進(jìn)設(shè)計(jì)的啟發(fā)規(guī)則改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性。模塊規(guī)模應(yīng)該適中(30-60行語(yǔ)句)。深度、寬度、扇出和扇入都應(yīng)適當(dāng)。模塊的作用域應(yīng)該在控制域之內(nèi)。5.力爭(zhēng)降低模塊接口的復(fù)雜程度。6.設(shè)計(jì)單入口單出口的模塊。7.模塊功能應(yīng)該可以預(yù)測(cè)。4.4軟件設(shè)計(jì)過(guò)程1.制定規(guī)范在進(jìn)入軟件開(kāi)發(fā)階段之初,首先應(yīng)為軟件開(kāi)發(fā)組制定在設(shè)計(jì)時(shí)應(yīng)該共同遵守的標(biāo)準(zhǔn),以便協(xié)調(diào)組內(nèi)各成員的工作。包括:

--閱讀和理解軟件需求說(shuō)明書(shū),確認(rèn)用戶要求能否實(shí)現(xiàn),明確實(shí)現(xiàn)的條件,從而確定設(shè)計(jì)的目標(biāo),以及它們的優(yōu)先順序

--根據(jù)目標(biāo)確定最合適的設(shè)計(jì)方法

--規(guī)定設(shè)計(jì)文檔的編制標(biāo)準(zhǔn)

--規(guī)定編碼的信息形式,與硬件,操作系統(tǒng)的接口規(guī)約,命名規(guī)則2.軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì)基于功能層次結(jié)構(gòu)建立系統(tǒng)

--采用某種設(shè)計(jì)方法,將系統(tǒng)按功能劃分成模塊的層次結(jié)構(gòu)

--確定每個(gè)模塊的功能--建立與已確定的軟件需求的對(duì)應(yīng)關(guān)系

--確定模塊間的調(diào)用關(guān)系

--確定模塊間的接口

--評(píng)估模塊劃分的質(zhì)量4.4軟件設(shè)計(jì)過(guò)程3.處理方式設(shè)計(jì)確定為實(shí)現(xiàn)系統(tǒng)的功能需求所必需的算法,評(píng)估算法的性能確定為滿足系統(tǒng)的性能需求所必需的算法和模塊間的控制方式周轉(zhuǎn)時(shí)間響應(yīng)時(shí)間吞吐量精度確定外部信號(hào)的接收發(fā)送形式4.數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)確定軟件涉及的文件系統(tǒng)的結(jié)構(gòu)以及數(shù)據(jù)庫(kù)的模式、子模式,進(jìn)行數(shù)據(jù)完整性和安全性的設(shè)計(jì)確定輸入,輸出文件的詳細(xì)的數(shù)據(jù)結(jié)構(gòu)結(jié)合算法設(shè)計(jì),確定算法所必需的邏輯數(shù)據(jù)結(jié)構(gòu)及其操作確定對(duì)邏輯數(shù)據(jù)結(jié)構(gòu)所必需的那些操作的程序模塊(軟件包)4.4軟件設(shè)計(jì)過(guò)程4.數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)(續(xù))限制和確定各個(gè)數(shù)據(jù)設(shè)計(jì)決策的影響范圍若需要與操作系統(tǒng)或調(diào)度程序接口所必須的控制表等數(shù)據(jù)時(shí),確定其詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和使用規(guī)則數(shù)據(jù)的保護(hù)性設(shè)計(jì)防衛(wèi)性設(shè)計(jì):在軟件設(shè)計(jì)中就插入自動(dòng)檢錯(cuò),報(bào)錯(cuò)和糾錯(cuò)的功能一致性設(shè)計(jì):保證軟件運(yùn)行過(guò)程中所使用的數(shù)據(jù)的類型和取值范圍不變?cè)诓l(fā)處理過(guò)程中使用封鎖和解除封鎖機(jī)制保持?jǐn)?shù)據(jù)不被破壞冗余性設(shè)計(jì):針對(duì)同一問(wèn)題,由兩個(gè)開(kāi)發(fā)者采用不同的程序設(shè)計(jì)風(fēng)格不同的算法設(shè)計(jì)軟件,當(dāng)兩者運(yùn)行結(jié)果之差不在允許范圍內(nèi)時(shí),利用檢錯(cuò)系統(tǒng)予以糾正,或使用表決技術(shù)決定一個(gè)正確結(jié)果。4.4軟件設(shè)計(jì)過(guò)程5.可靠性設(shè)計(jì)可靠性設(shè)計(jì)也叫做質(zhì)量設(shè)計(jì)在運(yùn)行過(guò)程中,為了適應(yīng)環(huán)境的變化和用戶新的要求,需經(jīng)常對(duì)軟件進(jìn)行改造和修正。在軟件開(kāi)發(fā)的一開(kāi)始就要確定軟件可靠性和其它質(zhì)量指標(biāo),考慮相應(yīng)措施,以使得軟件易于修改和易于維護(hù)。6.編寫(xiě)概要設(shè)計(jì)階段的文檔概要設(shè)計(jì)階段完成時(shí)應(yīng)編寫(xiě)以下文檔:概要設(shè)計(jì)說(shuō)明書(shū)數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書(shū)用戶手冊(cè)制定初步的測(cè)試計(jì)劃4.4軟件設(shè)計(jì)過(guò)程7.概要設(shè)計(jì)評(píng)審可追溯性:確認(rèn)該設(shè)計(jì)是否復(fù)蓋了所有已確定的軟件需求,軟件每一成份是否可追溯到某一項(xiàng)需求接口:確認(rèn)該軟件的內(nèi)部接口與外部接口是否已經(jīng)明確定義。模塊是否滿足高內(nèi)聚和低耦合的要求。模塊作用范圍是否在其控制范圍之內(nèi)風(fēng)險(xiǎn):確認(rèn)該設(shè)計(jì)在現(xiàn)有技術(shù)條件下和預(yù)算范圍內(nèi)是否能按時(shí)實(shí)現(xiàn)實(shí)用性:確認(rèn)該設(shè)計(jì)對(duì)于需求的解決方案是否實(shí)用技術(shù)清晰度:確認(rèn)該設(shè)計(jì)是否以一種易于翻譯成代碼的形式表達(dá)可維護(hù)性:確認(rèn)該設(shè)計(jì)是否考慮了方便未來(lái)的維護(hù)質(zhì)量:確認(rèn)該設(shè)計(jì)是否表現(xiàn)出良好的質(zhì)量特征各種選擇方案:看是否考慮過(guò)其它方案,比較各種選擇方案的標(biāo)準(zhǔn)是什么限制:評(píng)估對(duì)該軟件的限制是否現(xiàn)實(shí),是否與需求一致其它具體問(wèn)題:對(duì)于文檔、可測(cè)試性、設(shè)計(jì)過(guò)程等進(jìn)行評(píng)估4.5描繪軟件結(jié)構(gòu)的圖形工具1、層次圖和HIPO圖IBM公司發(fā)明的HIPO圖:

層次圖

+輸入/處理/輸出圖

(H圖)(IPO圖)(HiberarchyInputProcessOutput)正文加工系統(tǒng)的層次圖2、結(jié)構(gòu)圖(SC--StructureChart)

Yourdon提出的結(jié)構(gòu)圖是進(jìn)行軟件結(jié)構(gòu)設(shè)計(jì)的另一個(gè)有力工具。結(jié)構(gòu)圖和層次圖類似,也是描繪軟件結(jié)構(gòu)的圖形工具。結(jié)構(gòu)圖反映程序中模塊之間的層次調(diào)用關(guān)系和聯(lián)系:它以特定的符號(hào)表示模塊、模塊間的調(diào)用關(guān)系和模塊間信息的傳遞。①

模塊:模塊用矩形框表示,并用模塊的名字標(biāo)記它。②

模塊的調(diào)用關(guān)系和接口:模塊之間用單向箭頭聯(lián)結(jié),箭頭從調(diào)用模塊指向被調(diào)用模塊③

模塊間的信息傳遞:當(dāng)一個(gè)模塊調(diào)用另一個(gè)模塊時(shí),調(diào)用模塊把數(shù)據(jù)或控制信息傳送給被調(diào)用模塊,以使被調(diào)用模塊能夠運(yùn)行。而被調(diào)用模塊在執(zhí)行過(guò)程中又把它產(chǎn)生的數(shù)據(jù)或控制信息回送給調(diào)用模塊。④

在模塊A的箭頭尾部標(biāo)以一個(gè)菱形符號(hào),表示模塊A有條件地調(diào)用另一個(gè)模塊B。當(dāng)一個(gè)在調(diào)用箭頭尾部標(biāo)以一個(gè)弧形符號(hào),表示模塊A反復(fù)調(diào)用模塊C和模塊D。程序的系統(tǒng)結(jié)構(gòu)圖4.6面向數(shù)據(jù)流的設(shè)計(jì)方法

---結(jié)構(gòu)化設(shè)計(jì)(SD-StructuredDesign)面向數(shù)據(jù)流的設(shè)計(jì)方法的目標(biāo)是給出設(shè)計(jì)軟件結(jié)構(gòu)的一個(gè)系統(tǒng)化的途徑。面向數(shù)據(jù)流的設(shè)計(jì)要解決的任務(wù),就是在需求分析的基礎(chǔ)上,將表示系統(tǒng)邏輯模型的DFD圖映射(Mapping)成軟件系統(tǒng)結(jié)構(gòu)的初始設(shè)計(jì)描述。目標(biāo)系統(tǒng)的DFDSD目標(biāo)系統(tǒng)的SC結(jié)構(gòu)化設(shè)計(jì)方法(SD)1)首先研究、分析和審查數(shù)據(jù)流圖。從軟件的需求規(guī)格說(shuō)明中弄清數(shù)據(jù)流加工的過(guò)程,對(duì)于發(fā)現(xiàn)的問(wèn)題及時(shí)解決。2)然后根據(jù)數(shù)據(jù)流圖決定問(wèn)題的類型。數(shù)據(jù)處理問(wèn)題典型的類型有兩種:變換型和事務(wù)型。針對(duì)兩種不同的類型分別進(jìn)行分析處理。3)由數(shù)據(jù)流圖推導(dǎo)出系統(tǒng)的初始結(jié)構(gòu)圖。4)利用一些啟發(fā)式原則來(lái)改進(jìn)系統(tǒng)的初始結(jié)構(gòu)圖,直到得到符合要求的結(jié)構(gòu)圖為止。5)修改和補(bǔ)充數(shù)據(jù)詞典6)制定測(cè)試計(jì)劃。在系統(tǒng)結(jié)構(gòu)圖中的模塊傳入模塊

─從下屬模塊取得數(shù)據(jù),經(jīng)過(guò)某些處理,再將其傳送給上級(jí)模塊。它傳送的數(shù)據(jù)流叫做邏輯輸入數(shù)據(jù)流。傳出模塊

─從上級(jí)模塊獲得數(shù)據(jù),進(jìn)行某些處理,再將其傳送給下屬模塊。它傳送的數(shù)據(jù)流叫做邏輯輸出數(shù)據(jù)流。變換模塊

─它從上級(jí)模塊取得數(shù)據(jù),進(jìn)行特定的處理,轉(zhuǎn)換成其它形式,再傳送回上級(jí)模塊。它加工的數(shù)據(jù)流叫做變換數(shù)據(jù)流。協(xié)調(diào)模塊

─對(duì)所有下屬模塊進(jìn)行協(xié)調(diào)和管理的模塊。變換型系統(tǒng)結(jié)構(gòu)圖變換型數(shù)據(jù)處理問(wèn)題的工作過(guò)程大致分為三步,即取得數(shù)據(jù),變換數(shù)據(jù)和給出數(shù)據(jù)。相應(yīng)于取得數(shù)據(jù)、變換數(shù)據(jù)、給出數(shù)據(jù),變換型系統(tǒng)結(jié)構(gòu)圖由輸入、中心變換和輸出等三部分組成。事務(wù)型系統(tǒng)結(jié)構(gòu)圖它接受一項(xiàng)事務(wù),根據(jù)事務(wù)處理的特點(diǎn)和性質(zhì),選擇分派一個(gè)適當(dāng)?shù)奶幚韱卧?,然后給出結(jié)果。在事務(wù)型系統(tǒng)結(jié)構(gòu)圖中,事務(wù)中心模塊按所接受的事務(wù)的類型,選擇某一事務(wù)處理模塊執(zhí)行。各事務(wù)處理模塊并列。每個(gè)事務(wù)處理模塊可能要調(diào)用若干個(gè)操作模塊,而操作模塊又可能調(diào)用若干個(gè)細(xì)節(jié)模塊。變換分析變換分析方法由以下四步組成:1)重畫(huà)數(shù)據(jù)流圖;2)區(qū)分有效(邏輯)輸入、有效(邏輯)輸出和中心變換部分;3)進(jìn)行一級(jí)分解,設(shè)計(jì)上層模塊;4)進(jìn)行二級(jí)分解,設(shè)計(jì)輸入、輸出和中心變換部分的中、下層模塊。(1)在DFD

圖上標(biāo)出邏輯輸入、邏輯輸出和變換中心的分界AeBaCbDcEdPQRwuvwuvrp變換中心c,e邏輯輸入w,u邏輯輸出--------具有變換型數(shù)據(jù)流圖(2)完成第一級(jí)分解AabcPwuvrpBCDdeEQRWUVMcMAMTMEC,eC,eU,wU,w變換中心頂層第一層第一級(jí)分解后的SC圖(含協(xié)調(diào)、傳入、變換、傳出模塊)第一級(jí)分解后的SC圖(另一種畫(huà)法)McMA1ME1C

eUMA2QPRME2e

c,p

pr

r

w,uwAabcPwuvrpBCDdeEQRWUV變換中心MA對(duì)邏輯輸入的分解CEBADabdecAabcPwuvrpBCDdeEQRWUV變換中心ME對(duì)輸出的分解WUVvuwMT

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論