惠州學(xué)院軟件工程導(dǎo)論第五節(jié)-總體設(shè)計劉宇芳老師_第1頁
惠州學(xué)院軟件工程導(dǎo)論第五節(jié)-總體設(shè)計劉宇芳老師_第2頁
惠州學(xué)院軟件工程導(dǎo)論第五節(jié)-總體設(shè)計劉宇芳老師_第3頁
惠州學(xué)院軟件工程導(dǎo)論第五節(jié)-總體設(shè)計劉宇芳老師_第4頁
惠州學(xué)院軟件工程導(dǎo)論第五節(jié)-總體設(shè)計劉宇芳老師_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第五章 總體設(shè)計一、總體設(shè)計概述1、軟件設(shè)計概述一旦軟件需求確定之后,就進入開發(fā)階段。開發(fā)階段由三個互相關(guān)聯(lián)的步驟組成:設(shè)計、實現(xiàn)(編碼)和測試。每個步驟實際上都按某種方式進行信息變換,最后得到有效的計算機軟件。其中“設(shè)計”活動是獲取高質(zhì)量、低耗費、易維護軟件的一個最重要環(huán)節(jié)。可行性分析 - Why ? Do or not ? Who ?需求分析 - What ?設(shè)計 - How do ?在軟件需求分析階段已經(jīng)完全弄清楚了軟件的各種需求,較好地解決了目標(biāo)軟件系統(tǒng)要“做什么”的問題,并已在軟件需求規(guī)格說明中詳盡和充分地闡明了這些需求。下一步就要著手實現(xiàn)軟件的需求,即要著手解決“怎么做”這個軟件的

2、問題??傮w設(shè)計 (概要設(shè)計)-將軟件需求轉(zhuǎn)化為軟件的數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)結(jié)構(gòu),確定各組成成分(子系統(tǒng)或模塊)之間的相互關(guān)系設(shè)計詳細(xì)設(shè)計-確定每個模塊內(nèi)部的算法和數(shù)據(jù)結(jié)構(gòu),產(chǎn)生描述各模塊處理過程的詳細(xì)文檔。 在技術(shù)上,概要設(shè)計和詳細(xì)設(shè)計又由若干活動組成。除上述的軟件結(jié)構(gòu)設(shè)計、數(shù)據(jù)結(jié)構(gòu)設(shè)計和過程設(shè)計外,對現(xiàn)代應(yīng)用軟件,還應(yīng)該包括一個獨立的界面設(shè)計。2、總體設(shè)計的任務(wù)劃分出組成系統(tǒng)的物理元素-程序、文件、數(shù)據(jù)庫、人工過程和文檔等等。但是每個物理元素仍然處于黑盒子級,這些黑盒子里的具體內(nèi)容將在以后仔細(xì)設(shè)計。設(shè)計軟件的體系結(jié)構(gòu),也就是要確定系統(tǒng)是由哪些模塊組成的,以及這些模塊相互間的關(guān)系。3、總體設(shè)計的必要性

3、可以站在全局高度上,花較少成本,從較抽象的層次上分析對比多種可能的系統(tǒng)實現(xiàn)方案和軟件結(jié)構(gòu),從中選出最佳方案和最合理的軟件結(jié)構(gòu),從而用較低成本開發(fā)出較高質(zhì)量的軟件系統(tǒng)。二、總體設(shè)計的過程典型的總體設(shè)計過程包含以下兩個階段,共9個步驟:系統(tǒng)設(shè)計階段,確定系統(tǒng)的物理實現(xiàn)方案(1) 設(shè)想供選擇的方案在設(shè)想供選擇方案時,以需求分析得到的數(shù)據(jù)流圖為出發(fā)點,畫出自動化邊界,形成不同的實現(xiàn)的物理方案。P6-8(2) 選取合理的方案 P9(3) 推薦最佳方案 P10結(jié)構(gòu)設(shè)計階段,確定軟件的結(jié)構(gòu)(4) 功能分解,從實現(xiàn)的角度細(xì)化邏輯模型 P12(5) 設(shè)計軟件結(jié)構(gòu) P13(6) 設(shè)計數(shù)據(jù)庫 P14(7) 制定測試

4、計劃 P14(8) 書寫文檔 P1516(9) 審查和復(fù)審 P16三、模塊化設(shè)計原理是軟件設(shè)計過程中應(yīng)遵循的基本原理和相關(guān)概念。包括:模塊化、抽象、逐步求精、信息隱藏和局部化、模塊獨立。1、模塊與模塊化模塊是軟件中可獨立命名和編制的部件,每個部件稱為一個模塊,當(dāng)把所有模塊組裝到一起時,便可獲得滿足問題需要的一個解。按照模塊的定義,過程、函數(shù)、子程序和宏等,都可作為模塊。面向?qū)ο蠓椒▽W(xué)中的對象是模塊,對象內(nèi)的方法(或稱為服務(wù))也是模塊。模塊是構(gòu)成程序的基本構(gòu)件。模塊化就是把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構(gòu)成一個整體,可以完成指定的功能,滿足用戶的

5、需求。模塊化的依據(jù):C(P1+P2) C(P1)+C(P2); E(P1+P2) E(P1)+E(P2)C為問題的復(fù)雜度,E為解題需要的工作量。P18這個不等式導(dǎo)致“各個擊破”的結(jié)論-把復(fù)雜的問題分解成許多容易解決的小問題,原來的問題也就容易解決了。這就是模塊化的根據(jù)。模塊化與軟件成本: P20P21 導(dǎo)致一個結(jié)論:應(yīng)該模塊化,但不能過分模塊化。模塊化給軟件設(shè)計帶來益處: P22模塊間關(guān)系:層次關(guān)系、通信關(guān)系-軟件結(jié)構(gòu)是模塊化的和分層次的層次關(guān)系通信關(guān)系2、抽象與逐步求精抽象就是抽出事物的本質(zhì)特性(共性),而暫時不考慮它們的細(xì)節(jié)。抽象是人類認(rèn)識復(fù)雜現(xiàn)象和解決復(fù)雜問題時使用的思維方法,是控制復(fù)雜

6、性的基本策略。抽象要求人們將注意力集中在某一層次上考慮問題,而忽略那些低層次的細(xì)節(jié)。抽象的特點(1) 忽略細(xì)節(jié)和差異 (2) 分層理解問題 (3) 自頂向下分解模塊逐步求精最初是由Niklaus Wirth提出的一種自頂向下的設(shè)計策略。按照這種設(shè)計策略,程序的體系結(jié)構(gòu)是通過逐步精化處理過程的層次結(jié)構(gòu)而設(shè)計出來的。通過逐步分解對功能的宏觀陳述而開發(fā)出層次結(jié)構(gòu),直至最終得出用程序設(shè)計語言表達(dá)的程序。軟件工程過程的每一步都是對軟件解法的抽象層次的一次精化;P25隨著軟件開發(fā)工程的推進,在軟件結(jié)構(gòu)每一層中的模塊,表示了對軟件抽象層次的一次精化。抽象與求精是一對互補的概念。抽象代表有些細(xì)節(jié)放到更底的層次

7、去考慮;求精代表在設(shè)計過程中低層逐步揭示出其高層的細(xì)節(jié)。抽象使得設(shè)計者能夠簡要說明過程和數(shù)據(jù),同時忽略低層細(xì)節(jié);求精則幫助設(shè)計者在設(shè)計過程中逐步揭示出低層細(xì)節(jié)。-在軟件設(shè)計中,我們在一層的模塊中考慮軟件設(shè)計的一些細(xì)節(jié),而將另一部分軟件細(xì)節(jié)放到更底的層次去考慮3、信息隱藏與局部化信息隱藏(細(xì)節(jié)隱藏)(1) 信息隱藏原理指出:設(shè)計和劃定模塊時,應(yīng)使得一個模塊內(nèi)包含的信息(過程和數(shù)據(jù))對于不需要這些信息的模塊來說,是不能訪問的;(2) 模塊對其它模塊隱藏模塊內(nèi)部的數(shù)據(jù)和過程,獨立模塊間僅僅交換為合作完成系統(tǒng)功能而必須交換的信息;(3) 信息隱藏將提高模塊的獨立性,從而減少修改或維護時的影響面。局部化

8、是指把一些關(guān)系密切的軟件元素物理地放得彼此靠近。在模塊中使用局部數(shù)據(jù)元素是局部化的一個例子。顯然,局部化有助于實現(xiàn)信息隱藏。-軟件模塊設(shè)計時信息隱藏很重要。4、模塊的獨立性模塊的獨立性是指軟件系統(tǒng)中每個模塊完成一個相對獨立的子功能,并且與其他模塊之間關(guān)系很簡單。獨立的模塊(1)比較容易開發(fā),(2)比較容易維護。因此在設(shè)計軟件結(jié)構(gòu)時,應(yīng)充分考慮模塊的獨立性。模塊獨立性的衡量指標(biāo)是耦合和內(nèi)聚:耦合(Coupling):是對軟件結(jié)構(gòu)內(nèi)不同模塊之間相互關(guān)聯(lián)程度的強弱的度量。它取決于各個模塊之間接口的復(fù)雜程度、進入或訪問一個模塊的點以及哪些信息通過接口傳遞。模塊間的耦合程度直接影響系統(tǒng)的可理解性、可測試

9、性、可靠性和可維護性。在設(shè)計軟件時應(yīng)追求盡可能松散耦合的系統(tǒng)。如果模塊間聯(lián)系較少,錯誤在模塊間傳播的可能性也隨之變小。耦合度可以分為若干級別:(1) 非直接耦合-兩個模塊沒有直接關(guān)系(如模塊1和模塊2),每一個都能獨立地工作而不需要另一個模塊的存在。非直接耦合兩個模塊間的獨立性最強。非直接耦合(2) 數(shù)據(jù)耦合-兩個模塊彼此間通過參數(shù)交換信息,而且交換的信息僅僅是簡單的數(shù)據(jù)信息。這屬于松散耦合。(3) 標(biāo)記耦合-兩個模塊通過傳遞數(shù)據(jù)結(jié)構(gòu)參數(shù)加以聯(lián)系(不是簡單數(shù)據(jù),而是記錄、數(shù)組等),則稱這兩個模塊間存在標(biāo)記偶合。 數(shù)據(jù)耦合 標(biāo)記耦合(4) 特征耦合-屬于標(biāo)記耦合,把整個數(shù)據(jù)結(jié)構(gòu)作為參數(shù)傳遞,而被

10、調(diào)用的模塊只需要使用其中一部分?jǐn)?shù)據(jù)元素。P39控制耦合 公共環(huán)境耦合(5) 控制耦合-一個模塊通過傳送開關(guān)、標(biāo)志、名字等控制信息,明顯地控制選擇另一模塊的某部分功能??刂岂詈显黾恿死斫夂途幊痰膹?fù)雜性,調(diào)用模塊必須知道被調(diào)模塊的內(nèi)部邏輯,增加了相互依賴。去除模塊間控制耦合的方法:a.將被調(diào)用模塊內(nèi)的判定上移到調(diào)用模塊中進行b.被調(diào)用模塊分解成若干單一功能模塊(6) 外部耦合-一組模塊都訪問同一全局簡單變量,而且不是通過參數(shù)傳遞該全局變量的信息。(7) 公共環(huán)境耦合-兩個或多個模塊通過一個公共數(shù)據(jù)環(huán)境相互作用。公共環(huán)境可以是全程變量、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)、任何存儲介質(zhì)上的文件、物理設(shè)備等

11、等。P39-40公共環(huán)境偶合必不可少,但耦合模塊的數(shù)目應(yīng)盡量少。(8) 內(nèi)容耦合P41內(nèi)容耦合模塊化設(shè)計原則以上給出了幾種耦合類型,這只是從耦合的機制上所做的分類,按耦合的強弱程度的排列只是相對的關(guān)系。但它給設(shè)計人員在設(shè)計程序結(jié)構(gòu)時提供了一決策準(zhǔn)則。實際上,開始時兩個模塊之間的耦合不只是一種類型,而是多種類型的混合。這就要求設(shè)計人員按照實際情況進行分析、比較和分析,逐步加以改進,以提高模塊的獨立性。耦合是影響軟件復(fù)雜程度的一個重要因素。應(yīng)該采取下述設(shè)計原則:盡量使用數(shù)據(jù)耦合,少量使用控制耦合和特征耦合,限制公共環(huán)境耦合的范圍,完全不允許內(nèi)容耦合,最終降低模塊間接口的復(fù)雜性。內(nèi)聚(Cohesio

12、n):標(biāo)志同一個模塊內(nèi)各個元素彼此結(jié)合的緊密程度,它是信息隱藏和局部化概念的自然擴展。高內(nèi)聚:模塊內(nèi)部完成單一的處理;低內(nèi)聚:模塊內(nèi)部各部分關(guān)聯(lián)不緊密,完成分散的多個處理任務(wù);設(shè)計時應(yīng)該力爭做到高內(nèi)聚。內(nèi)聚度也可以分為若干級別:(1) 偶然內(nèi)聚-當(dāng)模塊內(nèi)各部分之間沒有聯(lián)系,或者即使有聯(lián)系,這種聯(lián)也很松散,則稱這種模塊為偶然內(nèi)聚模塊,它的內(nèi)聚程度最低。12(2) 邏輯內(nèi)聚-把幾種相關(guān)功能或邏輯上相似的功能組合在一個模塊內(nèi),每次調(diào)用由傳給模塊的參數(shù)確定執(zhí)行哪種功能。SXYZWABCD(3) 時間內(nèi)聚-一個模塊包含若干必須在同一段時間內(nèi)執(zhí)行的任務(wù)。例如系統(tǒng)初始化模塊、系統(tǒng)結(jié)束模塊、緊急故障處理模塊等

13、均是時間性聚合模塊。(4) 過程內(nèi)聚-一個模塊內(nèi)的處理元素是相關(guān)的且僅有控制聯(lián)系,各處理元素必須以特定次序執(zhí)行。ClearbufferInput FileReset signalCountCalculateClose File(5) 通信內(nèi)聚-模塊中所有元素都使用同一個輸入數(shù)據(jù)和(或)產(chǎn)生同一個輸出數(shù)據(jù)。(6) 順序內(nèi)聚-一個模塊內(nèi)的處理元素既包含數(shù)據(jù)聯(lián)系也包含控制聯(lián)系,而且這些處理必須順序執(zhí)行(通常一個處理元素的輸出數(shù)據(jù)作為下一個處理元素的輸入數(shù)據(jù))。(7) 功能內(nèi)聚-一個模塊中各個部分都是完成某單一功能必不可少的組成部分,或者說該模塊中所有部分都是為了完成同一項具體功能而協(xié)同工作,緊密聯(lián)系

14、,不可分割的,則稱該模塊為功能內(nèi)聚模塊。功能內(nèi)聚是最高程度的內(nèi)聚。信息內(nèi)聚-這種模塊完成多個功能,各個功能都在同一數(shù)據(jù)結(jié)構(gòu)上操作,每一項功能有一個唯一的入口點。這個模塊將根據(jù)不同的要求,確定該執(zhí)行哪一個功能。由于這個模塊的所有功能都是基于同一個數(shù)據(jù)結(jié)構(gòu),因此,它是一個信息內(nèi)聚的模塊。信息內(nèi)聚模塊可以看成是多個功能內(nèi)聚模塊的組合,并且達(dá)到信息的隱蔽。即把某個數(shù)據(jù)結(jié)構(gòu)、資源或設(shè)備隱蔽在一個模塊內(nèi),不為別的模塊所知曉。功能內(nèi)聚 信息內(nèi)聚設(shè)計原則:設(shè)計時應(yīng)該力求做到高內(nèi)聚,通常中等程度的內(nèi)聚也是可以采用的,而且效果和高內(nèi)聚相差不多;但是,低內(nèi)聚很壞,不要使用。耦合、內(nèi)聚、模塊獨立性間的關(guān)系:耦合,描述

15、兩個或多個模塊之間的相互關(guān)聯(lián)程度;內(nèi)聚,描述一個模塊內(nèi)部各處理元素之間的互關(guān)聯(lián)程度。耦合與內(nèi)聚都是模塊獨立性的定性標(biāo)準(zhǔn),都反映模塊獨立性的良好程度。內(nèi)聚與耦合密切相關(guān)。同其它模塊強耦合的模塊意味著它自己是弱內(nèi)聚的;強內(nèi)聚模塊意味著與其它模塊間松散耦合。所以設(shè)計的目標(biāo)應(yīng)該是力爭高內(nèi)聚、低耦合。四、啟發(fā)式規(guī)則(模塊化設(shè)計的經(jīng)驗) P4858五、描繪軟件結(jié)構(gòu)的圖形工具1、層次圖:是用來描繪軟件層次結(jié)構(gòu)的圖形工具。一個矩形框代表一個模塊,方框間的連線表示模塊間的調(diào)用關(guān)系。(注意它和其他類似工具的區(qū)別) 示例:P60特點:圖形清晰,能表明軟件系統(tǒng)組成的模塊關(guān)系,可粗略估算程序規(guī)模;但無法表明模塊間的接口

16、關(guān)系。2、HIPO圖:即層次圖 + 輸入/處理/輸出圖,由一張H圖和一組IPO圖組成。H圖,是給每個模塊加上編號的層次圖。 P62(關(guān)于1.0)、61IPO圖,一般采用圖3.8(教材P69)形式。要為H圖中的每個模塊畫一張IPO圖。通常將HIPO圖作為軟件結(jié)構(gòu)的描繪,列入設(shè)計文檔。3、結(jié)構(gòu)圖(SC):描述了軟件的模塊結(jié)構(gòu),表示了一個系統(tǒng)的層次分解關(guān)系;反映了模塊間的聯(lián)系以及塊內(nèi)聯(lián)系;反映了模塊間的信息傳遞。(1) 組成元素:A 方框,內(nèi)有名稱,表示模塊; 直線,表示上層模塊對下層模塊的調(diào)用; 尾部帶空心圓的箭頭,表示按方向傳遞的數(shù)據(jù)信息; 尾部帶實心圓的箭頭,表示按方向傳遞的控制信息;表示判定

17、 表示循環(huán)(2) 示例:P65(3) 注意:P68(4) 作用:描述模塊間參數(shù)交換情況、評價模塊間耦合情況、確定模塊間的接口。結(jié)構(gòu)圖一般可以不列入設(shè)計文檔,只用于接口設(shè)計、設(shè)計階段檢查模塊設(shè)計的正確性和模塊獨立性。六、結(jié)構(gòu)化設(shè)計(SD)方法(面向數(shù)據(jù)流的設(shè)計方法)1、概述SD是一種面向數(shù)據(jù)流的設(shè)計方法,是目前使用最廣泛的一種軟件設(shè)計方法,它可以和SA相銜接。它給出了設(shè)計軟件結(jié)構(gòu)的一種系統(tǒng)化途徑,它提出了“高內(nèi)聚、低偶合”的評價模塊結(jié)構(gòu)質(zhì)量的具體標(biāo)準(zhǔn)。結(jié)構(gòu)化設(shè)計是在模塊化、自頂向下逐步細(xì)化、結(jié)構(gòu)化程序設(shè)計等程序設(shè)計技術(shù)基礎(chǔ)上發(fā)展起來的。其基本思想是:將系統(tǒng)設(shè)計成由相對獨立、功能單一的模塊組成的軟

18、件結(jié)構(gòu)。該方法實施的要點是:(1) 首先研究、分析和審查數(shù)據(jù)流圖。 從軟件的需求規(guī)格說明中弄清數(shù)據(jù)流加工的過程,對于發(fā)現(xiàn)的問題及時解決。(2) 根據(jù)數(shù)據(jù)流圖確定數(shù)據(jù)處理的類型。典型的類型有兩種:變換型和事務(wù)型。針對兩種不同類型分別進行分析處理。(3) 由數(shù)據(jù)流圖推導(dǎo)出系統(tǒng)的初步的軟件結(jié)構(gòu)圖。(4) 根據(jù)結(jié)構(gòu)化設(shè)計的原則,利用一些啟發(fā)式規(guī)則改進初步的軟件結(jié)構(gòu)圖,直到得到符合要求的結(jié)構(gòu)圖為止。(5) 修改和補充數(shù)據(jù)字典。(6) 制定集成測試計劃。2、變換流與事物流 變換流 事物流SD方法把信息流(數(shù)據(jù)流圖)映射成軟件結(jié)構(gòu),信息流的類型決定了映射的方法。DFD中的數(shù)據(jù)流可分為兩類:變換型數(shù)據(jù)流、事務(wù)

19、型數(shù)據(jù)流;可轉(zhuǎn)換為相應(yīng)的軟件結(jié)構(gòu):變換型結(jié)構(gòu)、事務(wù)型結(jié)構(gòu)。變換流與變換型結(jié)構(gòu)(1) 變換流:信息沿輸入通路流入系統(tǒng)(輸入流),同時由外部形式變換成內(nèi)部形式;進入系統(tǒng)的信息通過變換中心,經(jīng)加工處理;處理后的數(shù)據(jù)再沿輸出通路變換成外部形式流出系統(tǒng)(輸出流)。(2) 變換型結(jié)構(gòu):變換流的數(shù)據(jù)流圖基本呈線性特征,明顯地分為輸入、變換(加工)和輸出三部分。事物流與事務(wù)型結(jié)構(gòu)(1) 事物流一個事務(wù)項(輸入的數(shù)據(jù)),經(jīng)事務(wù)中心(處理)觸發(fā)成一些處理分支。對于一個特定的事務(wù),只觸發(fā)一個分支。事物中心的任務(wù)是:接收輸入數(shù)據(jù);分析每個事務(wù)以確定它的類型;根據(jù)事務(wù)類型在若干條活動通路中選取一條。事物型結(jié)構(gòu) 混合結(jié)構(gòu)

20、(2) 事務(wù)型結(jié)構(gòu)事物流的數(shù)據(jù)流圖呈輻射狀特征,有一個輸入通路、一個事務(wù)中心和多個處理、輸出通路。在數(shù)據(jù)流圖中變換流和事務(wù)流兩種結(jié)構(gòu)往往是并存。3、SD的一般步驟4、在系統(tǒng)結(jié)構(gòu)圖中的模塊傳入模塊-從下屬模塊取得數(shù)據(jù),經(jīng)過某些處理,再將其傳送給上級模塊。它傳送的數(shù)據(jù)流叫做邏輯輸入數(shù)據(jù)流。傳出模塊-從上級模塊獲得數(shù)據(jù),進行某些處理,再將其傳送給下屬模塊。它傳送的數(shù)據(jù)流叫做邏輯輸出數(shù)據(jù)流。變換模塊-它從上級模塊取得數(shù)據(jù),進行特定的處理,轉(zhuǎn)換成其它形式,再傳送回上級模塊。它加工的數(shù)據(jù)流叫做變換數(shù)據(jù)流。協(xié)調(diào)模塊-對所有下屬模塊進行協(xié)調(diào)和管理的模塊。5、變換分析-從變換流到變換型結(jié)構(gòu)的映射過程(1)(3)

21、 P7879(4) 確定輸入流和輸出流的邊界,從而孤立出變換中心;(5) 完成第一級分解,輸入流映射成輸入模塊,變換部分映射成變換(處理)模塊,輸出流映射成輸出模塊;頂層增加主控協(xié)調(diào)模塊;(6) 完成第二級分解,從變換中心的邊界開始,沿輸入流外推,先遇到的為上級模塊;沿輸出流外推,先遇到的為上級模塊;變換部分變?yōu)樗侥K;第二級分解后的SC圖(7) 得到完整的SC圖和對應(yīng)的層次圖,變換完成后,對每個模塊進行簡要的說明。數(shù)據(jù)流圖對應(yīng)的層次圖稍復(fù)雜一點的映射例子:P108-110模塊的說明:P87-88(8) 根據(jù)模塊獨立性原則和啟發(fā)式規(guī)則,對得到的軟件結(jié)構(gòu)進一步優(yōu)化。對以上得到的軟件結(jié)構(gòu)進行模塊

22、分解或組合,讓模塊盡可能高的內(nèi)聚、盡可能松散的耦合,最重要的是,要得到一個易于實現(xiàn)、易于測試和易于維護的軟件結(jié)構(gòu)。P110111圖5.165.196、事物分析-從事物流到事物型結(jié)構(gòu)的映射過程基本步驟與變換分析相同(前三步相同),只是由數(shù)據(jù)流圖到軟件結(jié)構(gòu)的變換方法不同:第一級分解,輸入通路映射為接收模塊、事務(wù)中心直接變換為調(diào)度模塊、每個輸出通路映射成一個動作模塊,另加一個主控模塊;輸入分支的第二級分解與變換流的方法類似;對輸出分支進行第二級分解(每個分支進行下一級的變換分析或事物分析);第一級分解第二級分解書上的例子:P97注意:P98模塊說明:為每一個模塊寫一份處理說明(IPO圖)、為每一個模

23、塊提供一份接口說明、確定全局?jǐn)?shù)據(jù)結(jié)構(gòu)和局部數(shù)據(jù)結(jié)構(gòu)、指出所有的設(shè)計約束和限制。關(guān)于分層數(shù)據(jù)流圖轉(zhuǎn)換為軟件結(jié)構(gòu)圖的方法7、設(shè)計的優(yōu)化:我們努力追求的設(shè)計應(yīng)該是既滿足功能和性能的要求,又符合軟件設(shè)計原理和啟發(fā)式設(shè)計規(guī)則。對軟件結(jié)構(gòu)的修改越早越好。必要時,可以并行地開發(fā)若干個軟件結(jié)構(gòu),通過評比,求得“最佳”結(jié)果。結(jié)構(gòu)優(yōu)化是一個精益求精的過程。優(yōu)化過程可以在設(shè)計的早期,也還要延續(xù)到詳細(xì)設(shè)計乃至編碼階段。簡潔的程序結(jié)構(gòu)容易測試、容易維護,應(yīng)該使用盡可能少的模塊;只要滿足信息要求,應(yīng)該使用盡可能簡單的數(shù)據(jù)結(jié)構(gòu)。對時間有特殊要求的軟件,應(yīng)根據(jù)普遍存在的“百分之二十規(guī)則”(即20%的代碼占用80%的處理時間,

24、80%的錯誤出自20%的代碼)采用下述對策:(1) 在不考慮時、空耗費的情況下,設(shè)計并精化軟件結(jié)構(gòu);(2) 借用CASE工具模擬分析運行時的性能,定位出低效的部分,加以改進;(3) 詳細(xì)設(shè)計時對最耗時的模塊,認(rèn)真地設(shè)計它們的處理過程(算法),以便減少時間的開銷;(4) 盡量用高級語言編程以利于軟件的優(yōu)化;(5) 對大量占用計算機系統(tǒng)資源的模塊必要時用低級語言重新編碼,以提高效率。設(shè)計優(yōu)化的格言-“先讓它干起來,再讓它快起來”。七、總體設(shè)計需書寫的文檔1、總體設(shè)計說明主要內(nèi)容包括用系統(tǒng)流程圖描繪的系統(tǒng)構(gòu)成方案,組成系統(tǒng)的物理元素清單,成本/效益分析;對最佳方案的概括描述,精化的數(shù)據(jù)流圖,用層次圖

25、或結(jié)構(gòu)圖描繪的軟件結(jié)構(gòu),各模塊的模塊說明(用IPO圖或其他工具簡要描述的各個模塊的算法,模塊間的接口關(guān)系等,見上面),以及需求、功能和模塊三者之間的交叉參照關(guān)系等等。2、用戶手冊根據(jù)總體設(shè)計階段的結(jié)果,修改更正在需求分析階段產(chǎn)生的初步的用戶手冊。3、測試計劃包括測試策略,測試方案,預(yù)期的測試結(jié)果,測試進度計劃等等。4、詳細(xì)的實現(xiàn)計劃5、數(shù)據(jù)庫設(shè)計結(jié)果文檔書寫提示:1 引言1.1 簡介(對整個設(shè)計說明作綜述)1.2 編寫目的(本設(shè)計說明的編寫目的與閱讀對象)1.3 定義(提供正確理解本設(shè)計說明所必須的術(shù)語、縮寫詞和簡寫的定義)1.4 參考資料(列舉編寫本設(shè)計說明時所參考的資料或其它資源)2 系統(tǒng)概述2.1 軟件的功能概述在此說明本軟件包含哪些主要功能模塊,并對每個模塊的主要功能進行文字說明。在此引入分析精化的功能級數(shù)據(jù)流圖,作為設(shè)計的起點。2.2 系統(tǒng)總體的處理流程,例如:系統(tǒng)啟動時激活身份驗證模塊;通過身份驗證后進行相應(yīng)的系統(tǒng)初始化。根據(jù)系統(tǒng)配置文件將數(shù)據(jù)庫導(dǎo)入,并設(shè)置各全局變量;系統(tǒng)進入消息循環(huán)狀態(tài),通過

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論