版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第4章結(jié)構(gòu)化設(shè)計(jì)本章要點(diǎn)結(jié)構(gòu)化設(shè)計(jì)任務(wù)、工作內(nèi)容及步驟總體設(shè)計(jì)的過程設(shè)計(jì)原則、啟發(fā)規(guī)則面向數(shù)據(jù)流的設(shè)計(jì)方法詳細(xì)設(shè)計(jì)任務(wù)及原則代碼及用戶界面設(shè)計(jì)基于組件的設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)說明書結(jié)構(gòu)結(jié)構(gòu)化設(shè)計(jì)概述結(jié)構(gòu)化設(shè)計(jì)是面向數(shù)據(jù)流的傳統(tǒng)軟件開發(fā)方法,以數(shù)據(jù)流為中心構(gòu)建軟件的分析和設(shè)計(jì)模型。其工具:結(jié)構(gòu)圖---通過使用矩形和連接線來表示系統(tǒng)的不同模塊以及其活動(dòng)和子活動(dòng)的工具。適用于變換型結(jié)構(gòu)和事務(wù)性結(jié)構(gòu)的目標(biāo)系統(tǒng)。偽代碼—自然語言和程序設(shè)計(jì)語言共同表示程序結(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ì)過程設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)側(cè)重于數(shù)據(jù)結(jié)構(gòu)的定義。系統(tǒng)結(jié)構(gòu)設(shè)計(jì)定義軟件系統(tǒng)各主要成份之間的關(guān)系。過程設(shè)計(jì)則是把結(jié)構(gòu)成份轉(zhuǎn)換成軟件的過程性描述。在編碼步驟,根據(jù)這種過程性描述,生成源程序代碼,然后通過測試最終得到完整有效的軟件。開發(fā)階段的信息流從工程管理的角度來看,軟件設(shè)計(jì)分兩步完成。
概要設(shè)計(jì),將軟件需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件的系統(tǒng)結(jié)構(gòu)。
詳細(xì)設(shè)計(jì),即過程設(shè)計(jì)。通過對結(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ù)庫設(shè)計(jì)用戶界面設(shè)計(jì)需求開發(fā)實(shí)現(xiàn)與測試數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)系統(tǒng)設(shè)計(jì)過程示意圖結(jié)構(gòu)化設(shè)計(jì)的工作內(nèi)容及步驟結(jié)構(gòu)化設(shè)計(jì)的工作內(nèi)容:結(jié)構(gòu)化設(shè)計(jì)首先是根據(jù)數(shù)據(jù)流圖類型將問題分析劃分為事務(wù)型問題和(或)變換型問題,分別將它們映射成事務(wù)型或變換型結(jié)構(gòu)圖;然后對映射得到的結(jié)構(gòu)圖進(jìn)行綜合和評價(jià)改進(jìn);最后按照有關(guān)規(guī)范編寫總體設(shè)計(jì)說明書進(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)??傮w設(shè)計(jì)過程1.設(shè)計(jì)系統(tǒng)方案2.選取一組合理的方案3.推薦最佳實(shí)施方案4.功能分解5.軟件結(jié)構(gòu)設(shè)計(jì)6.數(shù)據(jù)庫設(shè)計(jì)、文件結(jié)構(gòu)的設(shè)計(jì)7.制定測試計(jì)劃8.編寫概要設(shè)計(jì)文檔
(1)用戶手冊(2)測試計(jì)劃(3)詳細(xì)項(xiàng)目開發(fā)實(shí)現(xiàn)計(jì)劃(4)數(shù)據(jù)庫設(shè)計(jì)結(jié)果9.審查與復(fù)審概要設(shè)計(jì)文檔設(shè)計(jì)原則軟件系統(tǒng)的模塊化是指整個(gè)軟件被劃分成若干單獨(dú)命名和可編址的部分,稱之為模塊。這些模塊可以被組裝起來以滿足整個(gè)問題的需求。抽象軟件系統(tǒng)進(jìn)行模塊設(shè)計(jì)時(shí),可有不同的抽象層次。在最高的抽象層次上,可以使用問題所處環(huán)境的語言概括地描述問題的解法。在較低的抽象層次上,則采用過程化的方法。信息隱蔽由parnas方法提倡的信息隱蔽是指,每個(gè)模塊的實(shí)現(xiàn)細(xì)節(jié)對于其它模塊來說是隱蔽的。也就是說,模塊中所包含的信息(包括數(shù)據(jù)和過程)不允許其它不需要這些信息的模塊使用。一致性整個(gè)軟件系統(tǒng)(文檔和程序)的各個(gè)模塊均應(yīng)使用一致的概念、符號、術(shù)語;接口一致;規(guī)格說明與系統(tǒng)行為一致;設(shè)計(jì)工具、方法和編碼風(fēng)格一致等??傮w設(shè)計(jì)的啟發(fā)規(guī)則將軟件的體系結(jié)構(gòu)按自頂向下方式,對各個(gè)層次的過程細(xì)節(jié)和數(shù)據(jù)細(xì)節(jié)逐層細(xì)化,直到用程序設(shè)計(jì)語言的語句能夠?qū)崿F(xiàn)為止,從而最后確立整個(gè)的體系結(jié)構(gòu)。軟件結(jié)構(gòu)包括兩部分。程序的模塊結(jié)構(gòu)和數(shù)據(jù)的結(jié)構(gòu)軟件的體系結(jié)構(gòu)通過一個(gè)劃分過程來完成。該劃分過程從需求分析確立的目標(biāo)系統(tǒng)的模型出發(fā),對整個(gè)問題進(jìn)行分割,使其每個(gè)部分用一個(gè)或幾個(gè)軟件成份加以解決,整個(gè)問題就解決了程序結(jié)構(gòu)程序結(jié)構(gòu)表明了程序各個(gè)部件(模塊)的組織情況,是軟件的過程表示。
結(jié)構(gòu)圖反映程序中模塊之間的層次調(diào)用關(guān)系和聯(lián)系:它以特定的符號表示模塊、模塊間的調(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í)行過程中又把它產(chǎn)生的數(shù)據(jù)或控制信息回送給調(diào)用模塊。④
在模塊A的箭頭尾部標(biāo)以一個(gè)菱形符號,表示模塊A有條件地調(diào)用另一個(gè)模塊B。當(dāng)一個(gè)在調(diào)用箭頭尾部標(biāo)以一個(gè)弧形符號,表示模塊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)過某些處理,再將其傳送給上級模塊。它傳送的數(shù)據(jù)流叫做邏輯輸入數(shù)據(jù)流。傳出模塊─從上級模塊獲得數(shù)據(jù),進(jìn)行某些處理,再將其傳送給下屬模塊。它傳送的數(shù)據(jù)流叫做邏輯輸出數(shù)據(jù)流。變換模塊─它從上級模塊取得數(shù)據(jù),進(jìn)行特定的處理,轉(zhuǎn)換成其它形式,再傳送回上級模塊。它加工的數(shù)據(jù)流叫做變換數(shù)據(jù)流。協(xié)調(diào)模塊─對所有下屬模塊進(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)第一級分解(建立初始SC框架)
設(shè)計(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)用中,一些大型問題往往是兩種混合在一起的混合型問題。對于混合型問題,一般以變換型問題為主,首先找出變換中心,設(shè)計(jì)出結(jié)構(gòu)圖的上層;然后根據(jù)數(shù)據(jù)流圖的各部分具體類型分別映射得到它們的結(jié)構(gòu)圖。一般在設(shè)計(jì)階段對軟件結(jié)構(gòu)進(jìn)行優(yōu)化。結(jié)構(gòu)化總體設(shè)計(jì)的工具系統(tǒng)流程圖表4-1HIPO圖圖4-19系統(tǒng)流程圖符號:系統(tǒng)流程圖的作用制作系統(tǒng)流程圖的過程是系統(tǒng)分析員全面了解系統(tǒng)業(yè)務(wù)處理概況的過程,是分析員作進(jìn)一步分析的依據(jù)。系統(tǒng)流程圖是系統(tǒng)分析員、管理人員、業(yè)務(wù)操作人員相互交流的工具。系統(tǒng)分析員可直接再系統(tǒng)流程圖上擬出可以實(shí)現(xiàn)計(jì)算機(jī)處理的部分??衫孟到y(tǒng)流程圖來分析業(yè)務(wù)流程的合理性。繪制注意事項(xiàng)物理部件的名稱寫在圖形符號內(nèi),用以說明該部件的含義;系統(tǒng)流程圖中不能出現(xiàn)控制流;用以表示信息流的箭頭符號不需要標(biāo)注名稱。對于復(fù)雜的系統(tǒng)一般采用分層的方式進(jìn)行描繪。39層次方框圖層次方框圖是用樹形結(jié)構(gòu)的一系列多層次的矩形框描述數(shù)據(jù)的層次結(jié)構(gòu)。樹形結(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)存儲器處理機(jī)操作系統(tǒng)編譯程序軟件工具IPO表層次方框圖值說明了軟件由哪些模塊組成及其控制層次結(jié)構(gòu),并未說明模塊間的信息傳遞及模塊內(nèi)部的處理。因此需要借助IPO表。見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è)問題;每個(gè)理想模塊的功能都應(yīng)該明確,易理解;理想模塊之間的連接關(guān)系簡單,具有獨(dú)立性;由理想模塊構(gòu)成的系統(tǒng),易理解、編程、測試、修改和維護(hù)。假設(shè)C(x)為描述問題x的復(fù)雜度的函數(shù),E(x)為解決問題x的代價(jià)函數(shù)。根據(jù)經(jīng)驗(yàn),對于兩個(gè)問題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)
因此推斷,如果問題P能夠分解為n個(gè)子問題,那么解決n個(gè)子問題的總代價(jià)肯定低于直接解決P的代價(jià),因?yàn)镻太復(fù)雜了,簡直讓人無從下手!44模塊化與軟件成本成本或工作量模塊數(shù)量軟件總成本接口成本成本/模塊M最小成本區(qū)域模塊獨(dú)立性模塊的獨(dú)立性模塊獨(dú)立性,是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其它的模塊的接口是簡單的一般采用兩個(gè)準(zhǔn)則度量模塊獨(dú)立性。即模塊間耦合性和模塊內(nèi)聚性具有獨(dú)立的模塊的軟件比較容易開發(fā)出來獨(dú)立的模塊比較容易測試和維護(hù)耦合是模塊之間的互相連接的緊密程度的度量。
內(nèi)聚是模塊功能強(qiáng)度(一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度)的度量。模塊獨(dú)立性比較強(qiáng)的模塊應(yīng)是高內(nèi)聚低耦合的模塊。48
非直接耦合(NondirectCoupling)
兩個(gè)模塊之間沒有直接關(guān)系,它們之間的聯(lián)系完全是通過主模塊的控制和調(diào)用來實(shí)現(xiàn)的。非直接耦合的模塊獨(dú)立性最強(qiáng)。49數(shù)據(jù)耦合(DataCoupling)
一個(gè)模塊訪問另一個(gè)模塊時(shí),彼此之間是通過簡單數(shù)據(jù)參數(shù)
(不是控制參數(shù)、公共數(shù)據(jù)結(jié)構(gòu)或外部變量)來交換輸入、輸出信息的。標(biāo)記耦合(StampCoupling)
一組模塊通過參數(shù)表傳遞記錄信息,就是標(biāo)記耦合。這個(gè)記錄是某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),而不是簡單變量。50控制耦合(ControlCoupling)
如果一個(gè)模塊通過傳送開關(guān)、標(biāo)志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合??刂岂詈贤嵌嘤嗟?,通??捎脭?shù)據(jù)耦合來代替。51外部耦合(ExternalCoupling)
一組模塊都訪問同一全局簡單變量而不是同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),而且不是通過參數(shù)表傳遞該全局變量的信息,則稱之為外部耦合。公共耦合(CommonCoupling)
若一組模塊都訪問同一個(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è)模塊直接訪問另一個(gè)模塊的內(nèi)部數(shù)據(jù);
(2)一個(gè)模塊不通過正常入口轉(zhuǎn)到另一模塊內(nèi)部;
(3)兩個(gè)模塊有一部分程序代碼重迭(只可能出現(xiàn)在匯編語言中);
(4)一個(gè)模塊有多個(gè)入口。54
c
內(nèi)容耦合是最高程度的耦合,應(yīng)該堅(jiān)決避免使用內(nèi)容耦合(c)多入口模塊55功能內(nèi)聚
(FunctionalCohesion)
一個(gè)模塊中各個(gè)部分都是完成某一具體功能必不可少的組成部分,或者說該模塊中所有部分都是為了完成一項(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)(符號表),因此,它是一個(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)聚模塊是通過數(shù)據(jù)流圖來定義的。6061過程內(nèi)聚(ProceduralCohesion)
使用流程圖做為工具設(shè)計(jì)程序時(shí),把流程圖中的某一部分劃出組成模塊,就得到過程內(nèi)聚模塊。例如,把流程圖中的循環(huán)部分、判定部分、計(jì)算部分分成三個(gè)模塊,這三個(gè)模塊都是過程內(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ù)來確定該模塊應(yīng)執(zhí)行哪一種功能。64偶然內(nèi)聚(CoincidentalCohesion)
當(dāng)模塊內(nèi)各部分之間沒有聯(lián)系,或者即使有聯(lián)系,這種聯(lián)系也很松散,則稱這種模塊為偶然內(nèi)聚模塊,它是內(nèi)聚程度最低的模塊。數(shù)據(jù)存儲設(shè)計(jì)常用三種數(shù)據(jù)存儲管理:數(shù)據(jù)文件:由操作系統(tǒng)提供的存儲形式,應(yīng)用系統(tǒng)將數(shù)據(jù)按字節(jié)順序存儲,并定義如何以及何時(shí)檢索數(shù)據(jù)。關(guān)系數(shù)據(jù)庫:數(shù)據(jù)以表的形式存儲在預(yù)先定義好的稱為Schema的類型中。面向?qū)ο髷?shù)據(jù)庫:將對象和關(guān)系一起進(jìn)行存儲。數(shù)據(jù)存儲文件設(shè)計(jì)過程文件的邏輯設(shè)計(jì)—總體設(shè)計(jì)階段整理必需的數(shù)據(jù)元素分析數(shù)據(jù)間的關(guān)系確定文件的邏輯設(shè)計(jì)數(shù)據(jù)存儲的物理設(shè)計(jì)—詳細(xì)設(shè)計(jì)階段理解數(shù)據(jù)存儲文件的特性確定數(shù)據(jù)的存儲媒體確定文件的組織形式確定文件的記錄格式結(jié)構(gòu)化詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)目標(biāo):確定具體地實(shí)現(xiàn)所要求的系統(tǒng),從而在編碼階段可以把這個(gè)描述直接翻譯成某種程序設(shè)計(jì)語言書寫的程序。算法設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)物理設(shè)計(jì)其他設(shè)計(jì)編寫詳細(xì)說明書68算法設(shè)計(jì)用圖形、表格、語言等工具將每個(gè)模塊處理過程的詳細(xì)算法描述出來數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)對需求分析、概要設(shè)計(jì)確定的概念性數(shù)據(jù)類型進(jìn)行確切的定義。物理設(shè)計(jì)對數(shù)據(jù)庫進(jìn)行物理設(shè)計(jì),即確定數(shù)據(jù)庫的物理結(jié)構(gòu)其他設(shè)計(jì)根據(jù)軟件系統(tǒng)的類型,進(jìn)行如下設(shè)計(jì):代碼設(shè)計(jì)輸入/出設(shè)計(jì)人機(jī)對話設(shè)計(jì)詳細(xì)設(shè)計(jì)文檔評審詳細(xì)設(shè)計(jì)原則模塊邏輯描述清晰易讀、正確可靠采用結(jié)構(gòu)化設(shè)計(jì)方法,改善系統(tǒng)的控制結(jié)構(gòu),降低程序的復(fù)雜度。少使用goto語句;使用單入口但單出口控制結(jié)構(gòu)盡量使用三種控制結(jié)構(gòu)利用信息隱蔽,確保模塊的獨(dú)立性
除非對效率有特殊的要求,程序編寫要做到清晰第一,效率第二。不要為了追求效率而喪失了清晰性。事實(shí)上,程序效率的提高主要應(yīng)通過選擇高效的算法來實(shí)現(xiàn)結(jié)構(gòu)化詳細(xì)設(shè)計(jì)工具在過程設(shè)計(jì)階段,要決定各個(gè)模塊的實(shí)現(xiàn)算法,并精確地表達(dá)這些算法。表達(dá)過程規(guī)格說明的工具叫做詳細(xì)設(shè)計(jì)工具,它可以分為以下三類:
圖形工具表格工具語言工具程序流程圖程序流程圖也稱為程序框圖,是使用比較廣泛的一種描述程序邏輯結(jié)構(gòu)的工具,程序流程圖使用五種基本控制結(jié)構(gòu)是:程序流程圖標(biāo)準(zhǔn)符號73N-S圖N-S圖也叫做盒圖。五種基本控制結(jié)構(gòu)由五種圖形構(gòu)件表示。74
PAD也設(shè)置了五種基本控制結(jié)構(gòu)的圖式,并允許遞歸使用。問題分析圖(PAD)75判定表判定表用于表示程序的靜態(tài)邏輯在判定表中的條件部分給出所有的兩分支判斷的列表,動(dòng)作部分給出相應(yīng)的處理要求將程序流程圖中的多分支判斷都改成兩分支判斷76建立判定表的步驟列出與一個(gè)具體過程(或模塊)有關(guān)的所有處理。列出過程執(zhí)行期間的所有條件(或所有判斷)。將特定條件取值組合與特定的處理相匹配,消去不可能發(fā)生的條件取值組合。將右部每一縱列規(guī)定為一個(gè)處理規(guī)則,即對于某一條件取值組合將有什么動(dòng)作。
77判定樹(Decision決策樹)
條件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é)的語言。稱為設(shè)計(jì)程序用語言。它是一種偽碼。偽碼的語法規(guī)則分為“外語法”和“內(nèi)語法”。PDL具有嚴(yán)格的關(guān)鍵字外語法,用于定義控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),同時(shí)它的表示實(shí)際操作和條件的內(nèi)語法可使用自然語言的詞匯。79
PDL的特點(diǎn)提供全部結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說明和模塊特征。能對PDL正文進(jìn)行結(jié)構(gòu)分割,使之變得易于理解。為了區(qū)別關(guān)鍵字,規(guī)定關(guān)鍵字一律大寫,其它單詞一律小寫?;蛘咭?guī)定關(guān)鍵字加下劃線,或者規(guī)定它們?yōu)楹隗w字。內(nèi)語法使用自然語言來描述處理特性。內(nèi)語法比較靈活,只要寫清楚就可以,不必考慮語法錯(cuò),以利于人們可把主要精力放在描述算法的邏輯上。有數(shù)據(jù)說明機(jī)制,包括簡單的(如標(biāo)量和數(shù)組)與復(fù)雜的(如鏈表和層次結(jié)構(gòu))的數(shù)據(jù)結(jié)構(gòu)。有子程序定義與調(diào)用機(jī)制,用以表達(dá)各種方式的接口說明。80詳細(xì)設(shè)計(jì)工具的選擇衡量準(zhǔn)則是看其所產(chǎn)生的過程描述是否易于理解、復(fù)審和維護(hù),過程描述能否自然地轉(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ù)代碼是為了對數(shù)據(jù)進(jìn)行識別、分類、排序等操作所使用的數(shù)字、文字或符號。其具有識別、分類和排序三項(xiàng)功能。代碼的特性間接性保密性可擴(kuò)充性持久性82數(shù)據(jù)代碼設(shè)計(jì)的原則標(biāo)準(zhǔn)化唯一性可擴(kuò)充性簡單性規(guī)范性適應(yīng)性另如果有兩特征值則可選用邏輯值代碼、數(shù)字、字母混用時(shí)注意區(qū)分相似的符號等用戶界面設(shè)計(jì)-特性可使用性使用的簡單性用戶界面中的術(shù)語標(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)使用戶界面越簡單越好。用戶界面的可靠性是指無故障使用的間隔時(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ù)語確定界面類型等4個(gè)步驟。86用戶界面設(shè)計(jì)原則用戶控制界面一致性界面容錯(cuò)性界面美觀性界面可適應(yīng)性用戶交互方式直接操作菜單選擇命令表格填寫自然語言信息顯示及用戶支持信息表示文本方式圖形方式用戶支持錯(cuò)誤信息幫助系統(tǒng)89Jackson系統(tǒng)開發(fā)方法早期的Jackson方法用于小系統(tǒng)的設(shè)計(jì),稱之為Jackson結(jié)構(gòu)程序設(shè)計(jì)方法,簡稱JSP方法。JSP方法的的三步曲是信息→數(shù)據(jù)結(jié)構(gòu)→程序結(jié)構(gòu)但是,當(dāng)把JSP方法用于大系統(tǒng)設(shè)計(jì)時(shí),就會(huì)出現(xiàn)大量復(fù)雜的難以對付的結(jié)構(gòu)沖突。因此,促使M.J.Jackson提出了JSD方法,即Jackson系統(tǒng)開發(fā)方法。JSD方法對輸入、輸出數(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)作分析:從問題的簡單描述中,選出軟件系統(tǒng)要產(chǎn)生和運(yùn)用的實(shí)體(人、物或組織),以及現(xiàn)實(shí)世界作用于實(shí)體上的動(dòng)作(事件)。實(shí)體從名詞中選出,動(dòng)作從動(dòng)詞中選出。當(dāng)然,只有與問題求解直接有關(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è)過程性的模型,定義模型與現(xiàn)實(shí)世界的聯(lián)系。模型系統(tǒng)的規(guī)格說明可用系統(tǒng)規(guī)格說明圖SSD來表示。
④功能描述:詳細(xì)說明與已定義的動(dòng)作相對應(yīng)的功能。
⑤決定系統(tǒng)時(shí)間特性:對進(jìn)程調(diào)度特性進(jìn)行評價(jià)和說明。
⑥實(shí)現(xiàn):設(shè)計(jì)組成系統(tǒng)的硬件和軟件。
JSD方法的前三步屬于需求分析階段,后三步屬于軟件設(shè)計(jì)階段。92Warnier方法Warnier方法又稱為邏輯地構(gòu)造程序的方法,簡稱LCP(logicalconstructionofprograms)方法。Warnier方法的原理和Jackson方法類似,也是從數(shù)據(jù)結(jié)構(gòu)出發(fā)設(shè)計(jì)程序,但是這種方法的邏輯更嚴(yán)格。J.D.Warnier提出的軟件開發(fā)方法與Jackson方法類似。差別有三點(diǎn):一是它們使用的圖形工具不同,分別使用Warnier圖和Jackson圖;另一個(gè)差別是使用的偽碼不同;最主要的差別是在構(gòu)造程序框架時(shí),Wa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東理工學(xué)院《博弈論基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東科技學(xué)院《建筑工程識圖與構(gòu)造》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東江門幼兒師范高等??茖W(xué)?!禤rote軟件技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東機(jī)電職業(yè)技術(shù)學(xué)院《工程流體力學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東行政職業(yè)學(xué)院《擒拿防衛(wèi)術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工業(yè)大學(xué)《美術(shù)技法(一)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東財(cái)經(jīng)大學(xué)《醫(yī)藥人力資源管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 交通安全課件
- 《疾病預(yù)防與控制》課件
- 廣東財(cái)經(jīng)大學(xué)《工程地震與結(jié)構(gòu)抗震》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024-2030年中國輪轂電機(jī)行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報(bào)告
- 高中體育課程活動(dòng)方案
- 小學(xué)中高年段語文學(xué)科基于課程標(biāo)準(zhǔn)評價(jià)指南
- (完整版)獸醫(yī)臨床診斷學(xué)
- GB/T 23586-2022醬鹵肉制品質(zhì)量通則
- 和解協(xié)議裝修合同糾紛
- 抗震支架計(jì)算書
- 大學(xué)生如果提高自己安全意識
- 意識障礙的判斷及護(hù)理
- (高清版)JTGT 3650-01-2022 公路橋梁施工監(jiān)控技術(shù)規(guī)程
- 《尾礦庫安全監(jiān)測技術(shù)規(guī)范》
評論
0/150
提交評論