軟件工程04結(jié)構(gòu)化設(shè)計(jì)_第1頁(yè)
軟件工程04結(jié)構(gòu)化設(shè)計(jì)_第2頁(yè)
軟件工程04結(jié)構(gòu)化設(shè)計(jì)_第3頁(yè)
軟件工程04結(jié)構(gòu)化設(shè)計(jì)_第4頁(yè)
軟件工程04結(jié)構(gòu)化設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩94頁(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)介

第4章結(jié)構(gòu)化設(shè)計(jì)本章要點(diǎn)結(jié)構(gòu)化設(shè)計(jì)任務(wù)、工作內(nèi)容及步驟總體設(shè)計(jì)的過(guò)程設(shè)計(jì)原則、啟發(fā)規(guī)則面向數(shù)據(jù)流的設(shè)計(jì)方法詳細(xì)設(shè)計(jì)任務(wù)及原則代碼及用戶界面設(shè)計(jì)基于組件的設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)說(shuō)明書結(jié)構(gòu)結(jié)構(gòu)化設(shè)計(jì)概述結(jié)構(gòu)化設(shè)計(jì)是面向數(shù)據(jù)流的傳統(tǒng)軟件開(kāi)發(fā)方法,以數(shù)據(jù)流為中心構(gòu)建軟件的分析和設(shè)計(jì)模型。其工具:結(jié)構(gòu)圖---通過(guò)使用矩形和連接線來(lái)表示系統(tǒng)的不同模塊以及其活動(dòng)和子活動(dòng)的工具。適用于變換型結(jié)構(gòu)和事務(wù)性結(jié)構(gòu)的目標(biāo)系統(tǒng)。偽代碼—自然語(yǔ)言和程序設(shè)計(jì)語(yǔ)言共同表示程序結(jié)構(gòu)。結(jié)構(gòu)化設(shè)計(jì)的任務(wù)任務(wù):在設(shè)計(jì)階段,主要是將需求分析階段得到的DFD轉(zhuǎn)換為軟件結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。目標(biāo):劃分子系統(tǒng)并使子系統(tǒng)之間是高內(nèi)聚低耦合的,從而提高軟件的可理解性和可維護(hù)性。根據(jù)用信息域表示的軟件需求,以及功能和性能需求,進(jìn)行數(shù)據(jù)設(shè)計(jì)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)過(guò)程設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)側(cè)重于數(shù)據(jù)結(jié)構(gòu)的定義。系統(tǒng)結(jié)構(gòu)設(shè)計(jì)定義軟件系統(tǒng)各主要成份之間的關(guān)系。過(guò)程設(shè)計(jì)則是把結(jié)構(gòu)成份轉(zhuǎn)換成軟件的過(guò)程性描述。在編碼步驟,根據(jù)這種過(guò)程性描述,生成源程序代碼,然后通過(guò)測(cè)試最終得到完整有效的軟件。開(kāi)發(fā)階段的信息流從工程管理的角度來(lái)看,軟件設(shè)計(jì)分兩步完成。

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

詳細(xì)設(shè)計(jì),即過(guò)程設(shè)計(jì)。通過(guò)對(duì)結(jié)構(gòu)表示進(jìn)行細(xì)化,得到軟件的詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和算法。詳細(xì)設(shè)計(jì)階段概要設(shè)計(jì)階段體系結(jié)構(gòu)設(shè)計(jì)模塊設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)用戶界面設(shè)計(jì)需求開(kāi)發(fā)實(shí)現(xiàn)與測(cè)試數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)系統(tǒng)設(shè)計(jì)過(guò)程示意圖結(jié)構(gòu)化設(shè)計(jì)的工作內(nèi)容及步驟結(jié)構(gòu)化設(shè)計(jì)的工作內(nèi)容:結(jié)構(gòu)化設(shè)計(jì)首先是根據(jù)數(shù)據(jù)流圖類型將問(wèn)題分析劃分為事務(wù)型問(wèn)題和(或)變換型問(wèn)題,分別將它們映射成事務(wù)型或變換型結(jié)構(gòu)圖;然后對(duì)映射得到的結(jié)構(gòu)圖進(jìn)行綜合和評(píng)價(jià)改進(jìn);最后按照有關(guān)規(guī)范編寫總體設(shè)計(jì)說(shuō)明書進(jìn)行復(fù)審。結(jié)構(gòu)化設(shè)計(jì)的工作步驟圖4-1所示結(jié)構(gòu)化總體設(shè)計(jì)準(zhǔn)則:模塊化抽象與逐步求精信息隱蔽和局部化模塊獨(dú)立性目標(biāo):概括地回答系統(tǒng)應(yīng)該如何實(shí)現(xiàn)。總體設(shè)計(jì)過(guò)程1.設(shè)計(jì)系統(tǒng)方案2.選取一組合理的方案3.推薦最佳實(shí)施方案4.功能分解5.軟件結(jié)構(gòu)設(shè)計(jì)6.數(shù)據(jù)庫(kù)設(shè)計(jì)、文件結(jié)構(gòu)的設(shè)計(jì)7.制定測(cè)試計(jì)劃8.編寫概要設(shè)計(jì)文檔

(1)用戶手冊(cè)(2)測(cè)試計(jì)劃(3)詳細(xì)項(xiàng)目開(kāi)發(fā)實(shí)現(xiàn)計(jì)劃(4)數(shù)據(jù)庫(kù)設(shè)計(jì)結(jié)果9.審查與復(fù)審概要設(shè)計(jì)文檔設(shè)計(jì)原則軟件系統(tǒng)的模塊化是指整個(gè)軟件被劃分成若干單獨(dú)命名和可編址的部分,稱之為模塊。這些模塊可以被組裝起來(lái)以滿足整個(gè)問(wèn)題的需求。抽象軟件系統(tǒng)進(jìn)行模塊設(shè)計(jì)時(shí),可有不同的抽象層次。在最高的抽象層次上,可以使用問(wèn)題所處環(huán)境的語(yǔ)言概括地描述問(wèn)題的解法。在較低的抽象層次上,則采用過(guò)程化的方法。信息隱蔽由parnas方法提倡的信息隱蔽是指,每個(gè)模塊的實(shí)現(xiàn)細(xì)節(jié)對(duì)于其它模塊來(lái)說(shuō)是隱蔽的。也就是說(shuō),模塊中所包含的信息(包括數(shù)據(jù)和過(guò)程)不允許其它不需要這些信息的模塊使用。一致性整個(gè)軟件系統(tǒng)(文檔和程序)的各個(gè)模塊均應(yīng)使用一致的概念、符號(hào)、術(shù)語(yǔ);接口一致;規(guī)格說(shuō)明與系統(tǒng)行為一致;設(shè)計(jì)工具、方法和編碼風(fēng)格一致等??傮w設(shè)計(jì)的啟發(fā)規(guī)則將軟件的體系結(jié)構(gòu)按自頂向下方式,對(duì)各個(gè)層次的過(guò)程細(xì)節(jié)和數(shù)據(jù)細(xì)節(jié)逐層細(xì)化,直到用程序設(shè)計(jì)語(yǔ)言的語(yǔ)句能夠?qū)崿F(xiàn)為止,從而最后確立整個(gè)的體系結(jié)構(gòu)。軟件結(jié)構(gòu)包括兩部分。程序的模塊結(jié)構(gòu)和數(shù)據(jù)的結(jié)構(gòu)軟件的體系結(jié)構(gòu)通過(guò)一個(gè)劃分過(guò)程來(lái)完成。該劃分過(guò)程從需求分析確立的目標(biāo)系統(tǒng)的模型出發(fā),對(duì)整個(gè)問(wèn)題進(jìn)行分割,使其每個(gè)部分用一個(gè)或幾個(gè)軟件成份加以解決,整個(gè)問(wèn)題就解決了程序結(jié)構(gòu)程序結(jié)構(gòu)表明了程序各個(gè)部件(模塊)的組織情況,是軟件的過(guò)程表示。

結(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。面向數(shù)據(jù)流的設(shè)計(jì)方法系統(tǒng)結(jié)構(gòu)的兩種典型形式:系統(tǒng)數(shù)據(jù)流的兩種形式:變換型結(jié)構(gòu)事務(wù)型結(jié)構(gòu)變換型數(shù)據(jù)流事務(wù)型數(shù)據(jù)流變換中心輸入輸出變換型結(jié)構(gòu)事務(wù)中心接受路徑動(dòng)作路徑基本模型特征事務(wù)型結(jié)構(gòu)由輸入、變換中心和輸出三部分組成具有在多種事務(wù)中選擇執(zhí)行某類事物的能力T

事務(wù)中心傳入變換傳出

大型系統(tǒng)DFD中,變換型和事務(wù)型結(jié)構(gòu)往往共存變換流示意圖信息流輸入流輸出流交換流外部表示內(nèi)部表示系統(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)和管理的模塊。ACBX,YZZACB21ACBDA根據(jù)內(nèi)部判斷決定是否調(diào)用BA按另一判定結(jié)果選擇調(diào)用C或DABCA根據(jù)內(nèi)在的循環(huán)重復(fù)調(diào)用B、C等模塊27初始的SC主模塊輸入模塊主加工模塊輸入模塊事務(wù)控制模塊接受模塊動(dòng)作發(fā)送模塊動(dòng)作1模塊動(dòng)作2模塊動(dòng)作3模塊由變換分析產(chǎn)生由事務(wù)分析產(chǎn)生變換分析設(shè)計(jì)方法步驟:(1)區(qū)分傳入、變換中心、傳出部分,在DFD上標(biāo)明分界線。BCADEQPRWUVabcedrpuwv變換中心傳入部分傳出部分(2)第一級(jí)分解(建立初始SC框架)

設(shè)計(jì)頂層和第一層模塊。第一級(jí)分解的方法MCMTMAMEMCMTMAME第一層頂層c,ec,eu,wu,w傳出模塊中心變換模塊事務(wù)分析任何情況下都可使用變換分析方法設(shè)計(jì)軟件結(jié)構(gòu),但如數(shù)據(jù)流具有明顯的事務(wù)特點(diǎn)時(shí)(有一個(gè)明顯的事務(wù)中心),以采用事務(wù)分析方法為宜。步驟:(1)在DFD上確定事務(wù)中心、接收部分和發(fā)送部分。(2)畫出SC框架,把DFD上的三部分分別映射為事務(wù)控制模塊、接收模塊和動(dòng)作發(fā)送模塊。(3)分解細(xì)化接收分支和發(fā)送分支,完成初始SC。32初始的SC主模塊輸入模塊主加工模塊輸入模塊事務(wù)控制模塊接受模塊動(dòng)作發(fā)送模塊動(dòng)作1模塊動(dòng)作2模塊動(dòng)作3模塊由變換分析產(chǎn)生由事務(wù)分析產(chǎn)生33事務(wù)分析的映射方法總控調(diào)度C路徑B路徑A路徑A路徑B路徑C路徑接收路徑混合型分析在實(shí)際應(yīng)用中,一些大型問(wèn)題往往是兩種混合在一起的混合型問(wèn)題。對(duì)于混合型問(wèn)題,一般以變換型問(wèn)題為主,首先找出變換中心,設(shè)計(jì)出結(jié)構(gòu)圖的上層;然后根據(jù)數(shù)據(jù)流圖的各部分具體類型分別映射得到它們的結(jié)構(gòu)圖。一般在設(shè)計(jì)階段對(duì)軟件結(jié)構(gòu)進(jìn)行優(yōu)化。結(jié)構(gòu)化總體設(shè)計(jì)的工具系統(tǒng)流程圖表4-1HIPO圖圖4-19系統(tǒng)流程圖符號(hào):系統(tǒng)流程圖的作用制作系統(tǒng)流程圖的過(guò)程是系統(tǒng)分析員全面了解系統(tǒng)業(yè)務(wù)處理概況的過(guò)程,是分析員作進(jìn)一步分析的依據(jù)。系統(tǒng)流程圖是系統(tǒng)分析員、管理人員、業(yè)務(wù)操作人員相互交流的工具。系統(tǒng)分析員可直接再系統(tǒng)流程圖上擬出可以實(shí)現(xiàn)計(jì)算機(jī)處理的部分??衫孟到y(tǒng)流程圖來(lái)分析業(yè)務(wù)流程的合理性。繪制注意事項(xiàng)物理部件的名稱寫在圖形符號(hào)內(nèi),用以說(shuō)明該部件的含義;系統(tǒng)流程圖中不能出現(xiàn)控制流;用以表示信息流的箭頭符號(hào)不需要標(biāo)注名稱。對(duì)于復(fù)雜的系統(tǒng)一般采用分層的方式進(jìn)行描繪。39層次方框圖層次方框圖是用樹(shù)形結(jié)構(gòu)的一系列多層次的矩形框描述數(shù)據(jù)的層次結(jié)構(gòu)。樹(shù)形結(jié)構(gòu)的頂層是一個(gè)單獨(dú)的矩形框,代表完整的數(shù)據(jù)結(jié)構(gòu),下面的各層矩形框代表這個(gè)數(shù)據(jù)的子集,最底層的各個(gè)框代表組成這個(gè)數(shù)據(jù)的實(shí)際數(shù)據(jù)元素(不能再分隔的元素)。40某計(jì)算機(jī)公司全部產(chǎn)品的數(shù)據(jù)結(jié)構(gòu)產(chǎn)品軟件服務(wù)硬件系統(tǒng)軟件處理設(shè)備應(yīng)用軟件軟件服務(wù)硬件維修培訓(xùn)存儲(chǔ)器處理機(jī)操作系統(tǒng)編譯程序軟件工具IPO表層次方框圖值說(shuō)明了軟件由哪些模塊組成及其控制層次結(jié)構(gòu),并未說(shuō)明模塊間的信息傳遞及模塊內(nèi)部的處理。因此需要借助IPO表。見(jiàn)p105表4-2。模塊的結(jié)構(gòu)設(shè)計(jì)模塊包含的4種屬性輸入/出邏輯功能-表明模塊能做什么事運(yùn)行程序-如何用程序?qū)崿F(xiàn)其邏輯功能內(nèi)部數(shù)據(jù)-模塊自己的數(shù)據(jù)理想模塊的特點(diǎn)每個(gè)理想模塊只解決一個(gè)問(wèn)題;每個(gè)理想模塊的功能都應(yīng)該明確,易理解;理想模塊之間的連接關(guān)系簡(jiǎn)單,具有獨(dú)立性;由理想模塊構(gòu)成的系統(tǒng),易理解、編程、測(cè)試、修改和維護(hù)。假設(shè)C(x)為描述問(wèn)題x的復(fù)雜度的函數(shù),E(x)為解決問(wèn)題x的代價(jià)函數(shù)。根據(jù)經(jīng)驗(yàn),對(duì)于兩個(gè)問(wèn)題p1和p2,如果C(p1)>C(p2),那么E(p1)>E(p2)。進(jìn)一步得出如下推論:

C(p1+p2)>C(p1)+C(p2)E(p1+p2)>E(p1)+E(p2)

因此推斷,如果問(wèn)題P能夠分解為n個(gè)子問(wèn)題,那么解決n個(gè)子問(wèn)題的總代價(jià)肯定低于直接解決P的代價(jià),因?yàn)镻太復(fù)雜了,簡(jiǎn)直讓人無(wú)從下手!44模塊化與軟件成本成本或工作量模塊數(shù)量軟件總成本接口成本成本/模塊M最小成本區(qū)域模塊獨(dú)立性模塊的獨(dú)立性模塊獨(dú)立性,是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其它的模塊的接口是簡(jiǎn)單的一般采用兩個(gè)準(zhǔn)則度量模塊獨(dú)立性。即模塊間耦合性和模塊內(nèi)聚性具有獨(dú)立的模塊的軟件比較容易開(kāi)發(fā)出來(lái)獨(dú)立的模塊比較容易測(cè)試和維護(hù)耦合是模塊之間的互相連接的緊密程度的度量。

內(nèi)聚是模塊功能強(qiáng)度(一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度)的度量。模塊獨(dú)立性比較強(qiáng)的模塊應(yīng)是高內(nèi)聚低耦合的模塊。48

非直接耦合(NondirectCoupling)

兩個(gè)模塊之間沒(méi)有直接關(guān)系,它們之間的聯(lián)系完全是通過(guò)主模塊的控制和調(diào)用來(lái)實(shí)現(xiàn)的。非直接耦合的模塊獨(dú)立性最強(qiáng)。49數(shù)據(jù)耦合(DataCoupling)

一個(gè)模塊訪問(wèn)另一個(gè)模塊時(shí),彼此之間是通過(guò)簡(jiǎn)單數(shù)據(jù)參數(shù)

(不是控制參數(shù)、公共數(shù)據(jù)結(jié)構(gòu)或外部變量)來(lái)交換輸入、輸出信息的。標(biāo)記耦合(StampCoupling)

一組模塊通過(guò)參數(shù)表傳遞記錄信息,就是標(biāo)記耦合。這個(gè)記錄是某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),而不是簡(jiǎn)單變量。50控制耦合(ControlCoupling)

如果一個(gè)模塊通過(guò)傳送開(kāi)關(guān)、標(biāo)志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合。控制耦合往往是多余的,通常可用數(shù)據(jù)耦合來(lái)代替。51外部耦合(ExternalCoupling)

一組模塊都訪問(wèn)同一全局簡(jiǎn)單變量而不是同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),而且不是通過(guò)參數(shù)表傳遞該全局變量的信息,則稱之為外部耦合。公共耦合(CommonCoupling)

若一組模塊都訪問(wèn)同一個(gè)公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局?jǐn)?shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。52公共耦合的復(fù)雜程度隨耦合模塊的個(gè)數(shù)增加而顯著增加。若只是兩模塊間有公共數(shù)據(jù)環(huán)境,則公共耦合有兩種情況。松散公共耦合和緊密公共耦合。53內(nèi)容耦合(ContentCoupling)

如果發(fā)生下列情形,兩個(gè)模塊之間就發(fā)生了內(nèi)容耦合

(1)一個(gè)模塊直接訪問(wèn)另一個(gè)模塊的內(nèi)部數(shù)據(jù);

(2)一個(gè)模塊不通過(guò)正常入口轉(zhuǎn)到另一模塊內(nèi)部;

(3)兩個(gè)模塊有一部分程序代碼重迭(只可能出現(xiàn)在匯編語(yǔ)言中);

(4)一個(gè)模塊有多個(gè)入口。54

c

內(nèi)容耦合是最高程度的耦合,應(yīng)該堅(jiān)決避免使用內(nèi)容耦合(c)多入口模塊55功能內(nèi)聚

(FunctionalCohesion)

一個(gè)模塊中各個(gè)部分都是完成某一具體功能必不可少的組成部分,或者說(shuō)該模塊中所有部分都是為了完成一項(xiàng)具體功能而協(xié)同工作,緊密聯(lián)系,不可分割的。則稱該模塊為功能內(nèi)聚模塊。56信息內(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)聚的模塊。5758信息內(nèi)聚模塊可以看成是多個(gè)功能內(nèi)聚模塊的組合,并且達(dá)到信息的隱蔽。即把某個(gè)數(shù)據(jù)結(jié)構(gòu)、資源或設(shè)備隱蔽在一個(gè)模塊內(nèi),不為別的模塊所知曉。59通信內(nèi)聚

(CommunicationCohesion)

如果模塊中所有元素都使用同一個(gè)輸入數(shù)據(jù)和(或)產(chǎn)生同一個(gè)輸出數(shù)據(jù),則稱之為通信內(nèi)聚模塊。通常,通信內(nèi)聚模塊是通過(guò)數(shù)據(jù)流圖來(lái)定義的。6061過(guò)程內(nèi)聚(ProceduralCohesion)

使用流程圖做為工具設(shè)計(jì)程序時(shí),把流程圖中的某一部分劃出組成模塊,就得到過(guò)程內(nèi)聚模塊。例如,把流程圖中的循環(huán)部分、判定部分、計(jì)算部分分成三個(gè)模塊,這三個(gè)模塊都是過(guò)程內(nèi)聚模塊。62時(shí)間內(nèi)聚(ClassicalCohesion)

時(shí)間內(nèi)聚又稱為經(jīng)典內(nèi)聚。這種模塊大多為多功能模塊,但模塊的各個(gè)功能的執(zhí)行與時(shí)間有關(guān),通常要求所有功能必須在同一時(shí)間段內(nèi)執(zhí)行。例如初始化模塊和終止模塊。63邏輯內(nèi)聚(LogicalCohesion)

這種模塊把幾種相關(guān)的功能組合在一起,每次被調(diào)用時(shí),由傳送給模塊的判定參數(shù)來(lái)確定該模塊應(yīng)執(zhí)行哪一種功能。64偶然內(nèi)聚(CoincidentalCohesion)

當(dāng)模塊內(nèi)各部分之間沒(méi)有聯(lián)系,或者即使有聯(lián)系,這種聯(lián)系也很松散,則稱這種模塊為偶然內(nèi)聚模塊,它是內(nèi)聚程度最低的模塊。數(shù)據(jù)存儲(chǔ)設(shè)計(jì)常用三種數(shù)據(jù)存儲(chǔ)管理:數(shù)據(jù)文件:由操作系統(tǒng)提供的存儲(chǔ)形式,應(yīng)用系統(tǒng)將數(shù)據(jù)按字節(jié)順序存儲(chǔ),并定義如何以及何時(shí)檢索數(shù)據(jù)。關(guān)系數(shù)據(jù)庫(kù):數(shù)據(jù)以表的形式存儲(chǔ)在預(yù)先定義好的稱為Schema的類型中。面向?qū)ο髷?shù)據(jù)庫(kù):將對(duì)象和關(guān)系一起進(jìn)行存儲(chǔ)。數(shù)據(jù)存儲(chǔ)文件設(shè)計(jì)過(guò)程文件的邏輯設(shè)計(jì)—總體設(shè)計(jì)階段整理必需的數(shù)據(jù)元素分析數(shù)據(jù)間的關(guān)系確定文件的邏輯設(shè)計(jì)數(shù)據(jù)存儲(chǔ)的物理設(shè)計(jì)—詳細(xì)設(shè)計(jì)階段理解數(shù)據(jù)存儲(chǔ)文件的特性確定數(shù)據(jù)的存儲(chǔ)媒體確定文件的組織形式確定文件的記錄格式結(jié)構(gòu)化詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)目標(biāo):確定具體地實(shí)現(xiàn)所要求的系統(tǒng),從而在編碼階段可以把這個(gè)描述直接翻譯成某種程序設(shè)計(jì)語(yǔ)言書寫的程序。算法設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)物理設(shè)計(jì)其他設(shè)計(jì)編寫詳細(xì)說(shuō)明書68算法設(shè)計(jì)用圖形、表格、語(yǔ)言等工具將每個(gè)模塊處理過(guò)程的詳細(xì)算法描述出來(lái)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)對(duì)需求分析、概要設(shè)計(jì)確定的概念性數(shù)據(jù)類型進(jìn)行確切的定義。物理設(shè)計(jì)對(duì)數(shù)據(jù)庫(kù)進(jìn)行物理設(shè)計(jì),即確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)其他設(shè)計(jì)根據(jù)軟件系統(tǒng)的類型,進(jìn)行如下設(shè)計(jì):代碼設(shè)計(jì)輸入/出設(shè)計(jì)人機(jī)對(duì)話設(shè)計(jì)詳細(xì)設(shè)計(jì)文檔評(píng)審詳細(xì)設(shè)計(jì)原則模塊邏輯描述清晰易讀、正確可靠采用結(jié)構(gòu)化設(shè)計(jì)方法,改善系統(tǒng)的控制結(jié)構(gòu),降低程序的復(fù)雜度。少使用goto語(yǔ)句;使用單入口但單出口控制結(jié)構(gòu)盡量使用三種控制結(jié)構(gòu)利用信息隱蔽,確保模塊的獨(dú)立性

除非對(duì)效率有特殊的要求,程序編寫要做到清晰第一,效率第二。不要為了追求效率而喪失了清晰性。事實(shí)上,程序效率的提高主要應(yīng)通過(guò)選擇高效的算法來(lái)實(shí)現(xiàn)結(jié)構(gòu)化詳細(xì)設(shè)計(jì)工具在過(guò)程設(shè)計(jì)階段,要決定各個(gè)模塊的實(shí)現(xiàn)算法,并精確地表達(dá)這些算法。表達(dá)過(guò)程規(guī)格說(shuō)明的工具叫做詳細(xì)設(shè)計(jì)工具,它可以分為以下三類:

圖形工具表格工具語(yǔ)言工具程序流程圖程序流程圖也稱為程序框圖,是使用比較廣泛的一種描述程序邏輯結(jié)構(gòu)的工具,程序流程圖使用五種基本控制結(jié)構(gòu)是:程序流程圖標(biāo)準(zhǔn)符號(hào)73N-S圖N-S圖也叫做盒圖。五種基本控制結(jié)構(gòu)由五種圖形構(gòu)件表示。74

PAD也設(shè)置了五種基本控制結(jié)構(gòu)的圖式,并允許遞歸使用。問(wèn)題分析圖(PAD)75判定表判定表用于表示程序的靜態(tài)邏輯在判定表中的條件部分給出所有的兩分支判斷的列表,動(dòng)作部分給出相應(yīng)的處理要求將程序流程圖中的多分支判斷都改成兩分支判斷76建立判定表的步驟列出與一個(gè)具體過(guò)程(或模塊)有關(guān)的所有處理。列出過(guò)程執(zhí)行期間的所有條件(或所有判斷)。將特定條件取值組合與特定的處理相匹配,消去不可能發(fā)生的條件取值組合。將右部每一縱列規(guī)定為一個(gè)處理規(guī)則,即對(duì)于某一條件取值組合將有什么動(dòng)作。

77判定樹(shù)(Decision決策樹(shù))

條件1

條件2

結(jié)果計(jì)

7-9,

訂票量>20:

15%算

12月

訂票量≤20:

5%折扣

1-6,

訂票量>20:

30%量

10,11月

訂票量≤20:

5%78PDL(ProgramDesignLanguage)PDL是一種用于描述功能模塊的算法設(shè)計(jì)和加工細(xì)節(jié)的語(yǔ)言。稱為設(shè)計(jì)程序用語(yǔ)言。它是一種偽碼。偽碼的語(yǔ)法規(guī)則分為“外語(yǔ)法”和“內(nèi)語(yǔ)法”。PDL具有嚴(yán)格的關(guān)鍵字外語(yǔ)法,用于定義控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),同時(shí)它的表示實(shí)際操作和條件的內(nèi)語(yǔ)法可使用自然語(yǔ)言的詞匯。79

PDL的特點(diǎn)提供全部結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說(shuō)明和模塊特征。能對(duì)PDL正文進(jìn)行結(jié)構(gòu)分割,使之變得易于理解。為了區(qū)別關(guān)鍵字,規(guī)定關(guān)鍵字一律大寫,其它單詞一律小寫?;蛘咭?guī)定關(guān)鍵字加下劃線,或者規(guī)定它們?yōu)楹隗w字。內(nèi)語(yǔ)法使用自然語(yǔ)言來(lái)描述處理特性。內(nèi)語(yǔ)法比較靈活,只要寫清楚就可以,不必考慮語(yǔ)法錯(cuò),以利于人們可把主要精力放在描述算法的邏輯上。有數(shù)據(jù)說(shuō)明機(jī)制,包括簡(jiǎn)單的(如標(biāo)量和數(shù)組)與復(fù)雜的(如鏈表和層次結(jié)構(gòu))的數(shù)據(jù)結(jié)構(gòu)。有子程序定義與調(diào)用機(jī)制,用以表達(dá)各種方式的接口說(shuō)明。80詳細(xì)設(shè)計(jì)工具的選擇衡量準(zhǔn)則是看其所產(chǎn)生的過(guò)程描述是否易于理解、復(fù)審和維護(hù),過(guò)程描述能否自然地轉(zhuǎn)換為代碼,并保證設(shè)計(jì)與代碼完全一致,其選擇工具具有屬性:模塊化間接性易編輯可讀性可維護(hù)性強(qiáng)制結(jié)構(gòu)化自動(dòng)產(chǎn)生報(bào)告數(shù)據(jù)表示邏輯驗(yàn)證可編碼能力81數(shù)據(jù)代碼設(shè)計(jì)代碼的定義和作用數(shù)據(jù)代碼是為了對(duì)數(shù)據(jù)進(jìn)行識(shí)別、分類、排序等操作所使用的數(shù)字、文字或符號(hào)。其具有識(shí)別、分類和排序三項(xiàng)功能。代碼的特性間接性保密性可擴(kuò)充性持久性82數(shù)據(jù)代碼設(shè)計(jì)的原則標(biāo)準(zhǔn)化唯一性可擴(kuò)充性簡(jiǎn)單性規(guī)范性適應(yīng)性另如果有兩特征值則可選用邏輯值代碼、數(shù)字、字母混用時(shí)注意區(qū)分相似的符號(hào)等用戶界面設(shè)計(jì)-特性可使用性使用的簡(jiǎn)單性用戶界面中的術(shù)語(yǔ)標(biāo)準(zhǔn)化和一致性擁有HELP幫助功能快速的系統(tǒng)響應(yīng)和低的系統(tǒng)成本用戶界面應(yīng)具有容錯(cuò)能力靈活性算法的可隱可顯性用戶可以根據(jù)需要制定和修改界面方式能夠按照用戶的希望和需要,提供不同詳細(xì)程度的系統(tǒng)響應(yīng)信息與其它軟件系統(tǒng)應(yīng)有標(biāo)準(zhǔn)的界面為使用戶界面具有一定的靈活性,需要付出代價(jià),而且有可能降低軟件系統(tǒng)的運(yùn)行效率。復(fù)雜性和可靠性用戶界面的規(guī)模和組織的復(fù)雜程度就是界面的復(fù)雜性。在完成預(yù)定功能的前提下,應(yīng)使用戶界面越簡(jiǎn)單越好。用戶界面的可靠性是指無(wú)故障使用的間隔時(shí)間。用戶界面應(yīng)能保證用戶正確、可靠地使用系統(tǒng),保證有關(guān)程序和數(shù)據(jù)的安全性。85用戶界面設(shè)計(jì)的任務(wù)分析這一部分工作應(yīng)與軟件系統(tǒng)的需求分析同步進(jìn)行。它主要包括用戶特性分析-外行、初學(xué)、熟練、專家用戶工作分析記錄有關(guān)系統(tǒng)的概念和術(shù)語(yǔ)確定界面類型等4個(gè)步驟。86用戶界面設(shè)計(jì)原則用戶控制界面一致性界面容錯(cuò)性界面美觀性界面可適應(yīng)性用戶交互方式直接操作菜單選擇命令表格填寫自然語(yǔ)言信息顯示及用戶支持信息表示文本方式圖形方式用戶支持錯(cuò)誤信息幫助系統(tǒng)89Jackson系統(tǒng)開(kāi)發(fā)方法早期的Jackson方法用于小系統(tǒng)的設(shè)計(jì),稱之為Jackson結(jié)構(gòu)程序設(shè)計(jì)方法,簡(jiǎn)稱JSP方法。JSP方法的的三步曲是信息→數(shù)據(jù)結(jié)構(gòu)→程序結(jié)構(gòu)但是,當(dāng)把JSP方法用于大系統(tǒng)設(shè)計(jì)時(shí),就會(huì)出現(xiàn)大量復(fù)雜的難以對(duì)付的結(jié)構(gòu)沖突。因此,促使M.J.Jackson提出了JSD方法,即Jackson系統(tǒng)開(kāi)發(fā)方法。JSD方法對(duì)輸入、輸出數(shù)據(jù)結(jié)構(gòu)明確的中小型系統(tǒng)特別有效,如商業(yè)應(yīng)用中的文件表格處理。該方法也可與其它方法結(jié)合,用于模塊的詳細(xì)設(shè)計(jì)。90Jackson圖

Jackson提出的數(shù)據(jù)結(jié)構(gòu)表示有三種基本的構(gòu)造類型

順序結(jié)構(gòu)選擇結(jié)構(gòu)重復(fù)結(jié)構(gòu)

使用JSD方法的步驟如下:①實(shí)體動(dòng)作分析:從問(wèn)題的簡(jiǎn)單描述中,選出軟件系統(tǒng)要產(chǎn)生和運(yùn)用的實(shí)體(人、物或組織),以及現(xiàn)實(shí)世界作用于實(shí)體上的動(dòng)作(事件)。實(shí)體從名詞中選出,動(dòng)作從動(dòng)詞中選出。當(dāng)然,只有與問(wèn)題求解直接有關(guān)的實(shí)體和動(dòng)作才能被選出做進(jìn)一步的分析。②實(shí)體結(jié)構(gòu)分析:把作用于實(shí)體的動(dòng)作或由實(shí)體執(zhí)行的動(dòng)作,按時(shí)間發(fā)生的先后次序排序,并用一個(gè)層狀的Jackson結(jié)構(gòu)圖表示。

③定義初始模型:把實(shí)體和動(dòng)作表示成一個(gè)過(guò)程性的模型,定義模型與現(xiàn)實(shí)世界的聯(lián)系。模型系統(tǒng)的規(guī)格說(shuō)明可用系統(tǒng)規(guī)格說(shuō)明圖SSD來(lái)表示。

④功能描述:詳細(xì)說(shuō)明與已定義的動(dòng)作相對(duì)應(yīng)的功能。

⑤決定系統(tǒng)時(shí)間特性:對(duì)進(jìn)程調(diào)度特性進(jìn)行評(píng)價(jià)和說(shuō)明。

⑥實(shí)現(xiàn):設(shè)計(jì)組成系統(tǒng)的硬件和軟件。

JSD方法的前三步屬于需求分析階段,后三步屬于軟件設(shè)計(jì)階段。92Warnier方法Warnier方法又稱為邏輯地構(gòu)造程序的方法,簡(jiǎn)稱LCP(logicalconstructionofprograms)方法。Warnier方法的原理和Jackson方法類似,也是從數(shù)據(jù)結(jié)構(gòu)出發(fā)設(shè)計(jì)程序,但是這種方法的邏輯更嚴(yán)格。J.D.Warnier提出的軟件開(kāi)發(fā)方法與Jackson方法類似。差別有三點(diǎn):一是它們使用的圖形工具不同,分別使用Warnier圖和Jackson圖;另一個(gè)差別是使用的偽碼不同;最主要的差別是在構(gòu)造程序框架時(shí),Wa

溫馨提示

  • 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)論