




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、軟件工程案例開發(fā)與實踐軟件工程案例開發(fā)與實踐第5章 軟件概要設(shè)計5.1 概要設(shè)計綜述5.1.1 概要設(shè)計的任務(wù) 在需求分析階段,系統(tǒng)要解決的問題是:系統(tǒng)“做什么”。 在概要設(shè)計階段,系統(tǒng)要解決的問題是:系統(tǒng)“怎么做”。 即將軟件“做什么”的邏輯模型變換為“怎么做”的物理模型,其任務(wù)是根據(jù)需求分析階段得到的邏輯模型來設(shè)計系統(tǒng)的物理模型。2、概要設(shè)計過程中需完成的任務(wù)如下: (1)設(shè)計軟件系統(tǒng)結(jié)構(gòu) (2)提出候選的最佳推薦方案,用系統(tǒng)流程圖,組成系統(tǒng)物理元素清單,成本效益分析,系統(tǒng)的進(jìn)度計劃。 (3)編寫概要設(shè)計文檔 (4)專家評審結(jié)構(gòu)化概要設(shè)計的 過程:(1)確定體系結(jié)構(gòu);(2)軟件的總體結(jié)構(gòu)設(shè)
2、計(進(jìn)行模塊劃分);(3)確定系統(tǒng)接口(外部接口和內(nèi)部接口);(4)分析數(shù)據(jù)流圖;(5)對初識結(jié)構(gòu)圖進(jìn)行改進(jìn)完善;(6)確定系統(tǒng)包含哪些應(yīng)用服務(wù)系統(tǒng)、客戶端、數(shù)據(jù)庫管理系統(tǒng)(7)確定主要的算法;(8)異常處理設(shè)計;(9)制定設(shè)計規(guī)范;(10)編寫系統(tǒng)概要設(shè)計說明書;(1 1)模塊化。)模塊化。 (2 2)自頂向下逐步求精)自頂向下逐步求精(3 3)模塊的獨立性)模塊的獨立性(4 4)信息隱蔽)信息隱蔽5.1.3 概要設(shè)計原則1 1、模塊化設(shè)計把大型軟件按照規(guī)定的原則劃分為一個個較小的、相對獨立但又相關(guān)的模塊的設(shè)計方法,叫做模塊化設(shè)計(modular designmodular design)。
3、模塊(modulemodule)是數(shù)據(jù)說明和可執(zhí)行語句等程序?qū)ο蟮募?,每個模塊單獨命名并且可以通過名字對模塊進(jìn)行訪問。 模塊一般有一下三個屬性:模塊一般有一下三個屬性: (1 1)功能)功能 (2 2)邏輯)邏輯 (3 3)狀態(tài))狀態(tài)2 2、自頂向下逐步求精設(shè)“分解”和“抽象”是結(jié)構(gòu)化方法解決復(fù)雜問題的兩種基本手段, 分解是把大問題分解成若干個小問題,然后“分而治之”。 抽象是抽出事物本質(zhì)的公共的特性而暫不考慮它的細(xì)節(jié)。軟件工程過程中的每一步都可以看做是對軟件解決方法的抽象層次的一次細(xì)化,抓住主要問題忽略次要問題,集中精力先解決主要問題,這就是“抽象”。3 3、模塊獨立性模塊獨立性(modu
4、le independencemodule independence)概括了把軟件劃分為模塊時要遵守的準(zhǔn)則,也是判斷模塊構(gòu)造是否合理的標(biāo)準(zhǔn)。一般地,堅持模塊的獨立性是獲得良好設(shè)計的關(guān)鍵。模塊的獨立性可以由兩個定性標(biāo)準(zhǔn)度量,這兩個標(biāo)準(zhǔn)分別稱為內(nèi)聚和耦合。耦合用于衡量不同模塊彼此間互相依賴(連接)的緊密程度;內(nèi)聚用于衡量一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度。 1 1、耦合耦合是對一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互聯(lián)程度的度量。耦合強弱取決于模塊間接口的復(fù)雜程度、進(jìn)入或訪問一個模塊的點以及通過接口的數(shù)據(jù)。在軟件設(shè)計中應(yīng)該追求模塊間盡可能松散耦合的系統(tǒng)。在這樣的系統(tǒng)中可以研究、測試或維護(hù)任何一個模塊,而
5、不需要對系統(tǒng)中的其他模塊有很多的了解。此外,由于模塊間聯(lián)系簡單,發(fā)生在一處的錯誤傳播到整個系統(tǒng)的可能性就很小。耦合的七種類型應(yīng)該采取下述設(shè)計原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。2、內(nèi)聚 內(nèi)聚標(biāo)志著一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度。簡單地說,理想內(nèi)聚的模塊只做一件事情。設(shè)計時應(yīng)該力求做到高內(nèi)聚,通常中等程度的內(nèi)聚也是可以采用的,而且效果和高內(nèi)聚相差不多。但是,堅決不要使用低內(nèi)聚。內(nèi)聚和耦合是密切相關(guān)的,模塊內(nèi)的高內(nèi)聚往往意味著模塊間的低耦合。內(nèi)聚和耦合都是進(jìn)行模塊化設(shè)計的有力工具。實踐表明,內(nèi)聚更重要,應(yīng)該把更多注意力集中到提高模塊的內(nèi)聚程度上
6、。 內(nèi)聚的七種類型 設(shè)計時應(yīng)力爭做到高內(nèi)聚,并且能夠辨認(rèn)出低內(nèi)聚的模塊,并采取措施進(jìn)行修改,以提高模塊的內(nèi)聚程度、降低模塊間的耦合程度,從而獲得較高的模塊獨立性。4 4、信息隱藏 模塊內(nèi)部的數(shù)據(jù)與過程,應(yīng)該對不需要了解這些數(shù)據(jù)與過程的模塊隱藏起來。只有那些為了完成軟件的總體功能而必需在模塊間交換的信息,才允許在模塊間進(jìn)行傳遞。“隱蔽”意味著有效的模塊化可以通過定義一組獨立的模塊而實現(xiàn),這些獨立的模塊彼此間僅僅交換那些為了完成系統(tǒng)功能而必須交換的信息。這一指導(dǎo)思想的目的是為了提高模塊的獨立性,即當(dāng)修改或維護(hù)模塊時減少把一個模塊的錯誤擴(kuò)散到其他模塊中去的機會。 5.2.1 IPO 圖 IPO是輸入
7、/處理/輸出圖的簡稱5.2 結(jié)構(gòu)化設(shè)計工具輸入數(shù)據(jù)處理過程輸出結(jié)果輸入處理輸出 一個一個IPOIPO圖僅能夠描述單個處理功能的輸入數(shù)據(jù)、數(shù)據(jù)圖僅能夠描述單個處理功能的輸入數(shù)據(jù)、數(shù)據(jù)處理和輸出數(shù)據(jù)之間的關(guān)系,對于整個軟件系統(tǒng)的總體處理和輸出數(shù)據(jù)之間的關(guān)系,對于整個軟件系統(tǒng)的總體結(jié)構(gòu)不能進(jìn)行清晰的描述。因此在軟件設(shè)計中,我們通結(jié)構(gòu)不能進(jìn)行清晰的描述。因此在軟件設(shè)計中,我們通常將常將HIPOHIPO圖和圖和IPOIPO圖圖相結(jié)合,利用這兩個工具共相結(jié)合,利用這兩個工具共同同來表達(dá)來表達(dá)系統(tǒng)的總體結(jié)構(gòu)和模塊的處理功能。系統(tǒng)的總體結(jié)構(gòu)和模塊的處理功能。 HIPO HIPO圖稱為層次結(jié)構(gòu)圖,即分層的圖稱為
8、層次結(jié)構(gòu)圖,即分層的IPOIPO圖,是系統(tǒng)設(shè)圖,是系統(tǒng)設(shè)計的描述工具,是計的描述工具,是IBMIBM公司于公司于7070年代中期在層次結(jié)構(gòu)圖的年代中期在層次結(jié)構(gòu)圖的基礎(chǔ)上推出的一種描述系統(tǒng)結(jié)構(gòu)和模塊內(nèi)部處理功能的基礎(chǔ)上推出的一種描述系統(tǒng)結(jié)構(gòu)和模塊內(nèi)部處理功能的工具。工具。HIPOHIPO圖由以下兩部分組成:圖由以下兩部分組成:(1 1)層次結(jié)構(gòu)圖:描述整個系統(tǒng)的設(shè)計結(jié)以及各類模塊之)層次結(jié)構(gòu)圖:描述整個系統(tǒng)的設(shè)計結(jié)以及各類模塊之間的關(guān)系。間的關(guān)系。 (2 2)IPOIPO圖:描述某個特定模塊內(nèi)部的處理過程和輸入圖:描述某個特定模塊內(nèi)部的處理過程和輸入/ /輸輸出關(guān)系。出關(guān)系。檢 索2 題名檢索
9、1 ISBN號檢索3 作者檢索圖5-5 HIPO圖圖5-6 IPO圖 5.2.2模塊結(jié)構(gòu)圖 模塊結(jié)構(gòu)圖也稱控制結(jié)構(gòu)圖,它表示一個軟件系統(tǒng)的層次分解關(guān)系、模塊調(diào)用關(guān)系、模塊之間數(shù)據(jù)流和控制信息流的傳遞關(guān)系,是描述軟件系統(tǒng)物理模型、進(jìn)行概要設(shè)計的主要工具,也是軟件文檔的一部分。 模塊結(jié)構(gòu)圖可以反映系統(tǒng)整體結(jié)構(gòu),又能反映系統(tǒng)的細(xì)節(jié),且能準(zhǔn)確反映個模塊及他們之間的聯(lián)系。通過系統(tǒng)任務(wù)分解為若干個模塊,可以有不同設(shè)計人員分別承擔(dān)不同模塊的設(shè)計和實施任務(wù),便于管理和控制。5.2.2 模塊結(jié)構(gòu)圖1、模塊結(jié)構(gòu)圖的基本符號模塊名模塊結(jié)構(gòu)圖的三種基本結(jié)構(gòu) 模塊之間的調(diào)用關(guān)系主要有三種:直接調(diào)用、選擇調(diào)用和循環(huán)調(diào)用。
10、 4.4.1結(jié)構(gòu)圖(SC (SC Structure Chart) Structure Chart) SDSD方法在概要設(shè)計中的主要表達(dá)工具 約定:編輯學(xué)生記錄編輯學(xué)生記錄讀學(xué)生記錄讀學(xué)生記錄學(xué)生數(shù)據(jù)學(xué)生數(shù)據(jù)無此學(xué)生無此學(xué)生學(xué)號學(xué)號不加區(qū)分的數(shù)據(jù)不加區(qū)分的數(shù)據(jù)數(shù)據(jù)信息數(shù)據(jù)信息控制信息控制信息SC中的選擇調(diào)用ACBDA根據(jù)內(nèi)根據(jù)內(nèi)部判斷決定是部判斷決定是否調(diào)用否調(diào)用B BA按另一判按另一判定結(jié)果選擇調(diào)用定結(jié)果選擇調(diào)用C或或DSC中的循環(huán)調(diào)用ABCA根據(jù)內(nèi)在的循環(huán)重根據(jù)內(nèi)在的循環(huán)重復(fù)調(diào)用復(fù)調(diào)用B、C等模塊等模塊模塊結(jié)構(gòu)圖中的模塊類型(1) (1) 傳入模塊傳入模塊 傳入模塊從下屬模塊取得數(shù)據(jù)傳入模
11、塊從下屬模塊取得數(shù)據(jù), , 經(jīng)過某些處理經(jīng)過某些處理, , 再將其再將其傳送給上級模塊。見圖傳送給上級模塊。見圖6-146-14(a a)。變換型數(shù)據(jù)流程圖的)。變換型數(shù)據(jù)流程圖的輸入模塊以及事務(wù)型數(shù)據(jù)流圖中的接受事務(wù)模塊均屬于此輸入模塊以及事務(wù)型數(shù)據(jù)流圖中的接受事務(wù)模塊均屬于此類模塊。類模塊。(2) (2) 傳出模塊傳出模塊 傳出模塊從上級模塊中獲取數(shù)據(jù)傳出模塊從上級模塊中獲取數(shù)據(jù), , 進(jìn)行某些處理進(jìn)行某些處理, , 再將再將其傳送給下屬模塊。見圖其傳送給下屬模塊。見圖6-146-14(b b)。如變換型數(shù)據(jù)流圖)。如變換型數(shù)據(jù)流圖及事務(wù)型數(shù)據(jù)流圖中的輸出模塊均屬于此類模塊。及事務(wù)型數(shù)據(jù)流
12、圖中的輸出模塊均屬于此類模塊。(3) (3) 變換模塊變換模塊 也叫加工模塊也叫加工模塊, , 它從上級模塊取得數(shù)據(jù)它從上級模塊取得數(shù)據(jù), , 進(jìn)行特定的處進(jìn)行特定的處理理, , 轉(zhuǎn)換成其他形式轉(zhuǎn)換成其他形式, , 再傳送回上級模塊。見圖再傳送回上級模塊。見圖6.146.14(c c)。如事務(wù)型數(shù)據(jù)流圖中的調(diào)度模塊就屬于此類模塊。)。如事務(wù)型數(shù)據(jù)流圖中的調(diào)度模塊就屬于此類模塊。(4) (4) 協(xié)調(diào)模塊協(xié)調(diào)模塊 對所有的下屬模塊進(jìn)行協(xié)調(diào)和管理的模塊對所有的下屬模塊進(jìn)行協(xié)調(diào)和管理的模塊, , 在一個在一個較好的模塊結(jié)構(gòu)圖中較好的模塊結(jié)構(gòu)圖中, , 該模塊應(yīng)在較高層出現(xiàn)。見圖該模塊應(yīng)在較高層出現(xiàn)。見
13、圖6-6-1414(d d)。如變換型數(shù)據(jù)流圖的總控模塊以及事務(wù)型數(shù)據(jù))。如變換型數(shù)據(jù)流圖的總控模塊以及事務(wù)型數(shù)據(jù)流圖中的事務(wù)中心塊均屬于此類模塊。流圖中的事務(wù)中心塊均屬于此類模塊。 模塊結(jié)構(gòu)圖中的模塊結(jié)構(gòu)類型傳入模塊傳入模塊(a)(b)AA傳出模塊傳出模塊BB變換模塊變換模塊(c)CD協(xié)調(diào)模塊協(xié)調(diào)模塊E(d)EFF模塊間調(diào)用的規(guī)則(1 1)每個模塊有自身的任務(wù),只有接收到上級模塊)每個模塊有自身的任務(wù),只有接收到上級模塊的調(diào)用命令時才能執(zhí)行。的調(diào)用命令時才能執(zhí)行。(2 2)模塊之間的通信只限于其直接上、下級模塊,)模塊之間的通信只限于其直接上、下級模塊,任何模塊不能直接與其他上下級模塊或同級
14、模塊任何模塊不能直接與其他上下級模塊或同級模塊發(fā)生通信聯(lián)系。發(fā)生通信聯(lián)系。(3 3)若有某模塊要與非直接上、下級的其他模塊發(fā))若有某模塊要與非直接上、下級的其他模塊發(fā)生通信聯(lián)系,必須通過其上下級模塊進(jìn)行傳遞。生通信聯(lián)系,必須通過其上下級模塊進(jìn)行傳遞。(4 4)模塊調(diào)用順序為自上而下。)模塊調(diào)用順序為自上而下。 模塊結(jié)構(gòu)圖的示例 模塊結(jié)構(gòu)圖的改進(jìn) (1 1)完善模塊的功能)完善模塊的功能(2 2)提高模塊獨立性)提高模塊獨立性 (3) 3) 合理確定模塊結(jié)構(gòu)的規(guī)模,盡可能減少高扇出的結(jié)構(gòu)合理確定模塊結(jié)構(gòu)的規(guī)模,盡可能減少高扇出的結(jié)構(gòu),隨深度增加而增大扇入。,隨深度增加而增大扇入。 模塊的規(guī)模包括
15、兩個方面:模塊結(jié)構(gòu)的深度和模塊結(jié)構(gòu)模塊的規(guī)模包括兩個方面:模塊結(jié)構(gòu)的深度和模塊結(jié)構(gòu)的寬度。的寬度。 深度表示模塊結(jié)構(gòu)中的層數(shù)深度表示模塊結(jié)構(gòu)中的層數(shù), , 它往往能粗略地標(biāo)志一個系它往往能粗略地標(biāo)志一個系統(tǒng)的大小和復(fù)雜程度。模塊結(jié)構(gòu)圖一般不要超過統(tǒng)的大小和復(fù)雜程度。模塊結(jié)構(gòu)圖一般不要超過7 7層。層。 寬度是模塊結(jié)構(gòu)圖內(nèi)同一個層次上的模塊總數(shù)的最大值。寬度是模塊結(jié)構(gòu)圖內(nèi)同一個層次上的模塊總數(shù)的最大值。一般來說,寬度越大系統(tǒng)越復(fù)雜。一般來說,寬度越大系統(tǒng)越復(fù)雜。 一個模塊的扇入指直接調(diào)用該模塊的上級模塊的數(shù)目。扇入越大一個模塊的扇入指直接調(diào)用該模塊的上級模塊的數(shù)目。扇入越大則共享該模塊的上級模塊
16、數(shù)目越多。則共享該模塊的上級模塊數(shù)目越多。 如果一個模塊的扇入數(shù)過大,如果一個模塊的扇入數(shù)過大,例如超過例如超過8 8,而這個模塊又不是公用模塊,說明該模塊包含多個功能,而這個模塊又不是公用模塊,說明該模塊包含多個功能,這時應(yīng)對它進(jìn)行功能分解。,這時應(yīng)對它進(jìn)行功能分解。(4 4)模塊的作用范圍應(yīng)該在控制范圍之內(nèi))模塊的作用范圍應(yīng)該在控制范圍之內(nèi) (5) 5) 模塊大小應(yīng)該適中模塊大小應(yīng)該適中(6) 6) 設(shè)計單入口單出口的模塊設(shè)計單入口單出口的模塊單入口單出口的模塊可以降低模塊接口的復(fù)雜程度,設(shè)計單入口單出口的模塊可以降低模塊接口的復(fù)雜程度,設(shè)計的軟件也是易理解、易維護(hù)的,因此不要使模塊間出現(xiàn)
17、內(nèi)的軟件也是易理解、易維護(hù)的,因此不要使模塊間出現(xiàn)內(nèi)容藕合。容藕合。(7) 7) 模塊功能應(yīng)該能夠預(yù)測,同時要防止模塊功能過于受模塊功能應(yīng)該能夠預(yù)測,同時要防止模塊功能過于受局限。局限。 5.3 結(jié)構(gòu)化設(shè)計方法 5.3.1 事務(wù)設(shè)計1. 事務(wù)流 2. 將具有事物流的數(shù)據(jù)流程圖轉(zhuǎn)換成模塊結(jié)構(gòu)的步驟(1)在數(shù)據(jù)流程圖中識別事務(wù)源,判斷數(shù)據(jù)流程圖是否具有事務(wù)型特征。 (2)對每一事務(wù)建立一個事務(wù)處理模塊,得出程序結(jié)構(gòu)圖。 (3)對每一種類型的事務(wù),分別建立專門的事務(wù)模塊,對它進(jìn)行獨立的處理。確定出每一種事務(wù)以及它所需要的處理動作。(4)合并具有相同處理功能的模塊。(5)必要時對動作模塊進(jìn)一步分解。例
18、如,圖5-12(a)為某賬務(wù)處理系統(tǒng)的一級數(shù)據(jù)流程圖,可以看出賬務(wù)處理包含3類事務(wù),即憑證管理、賬務(wù)管理和報表管理,我們按事務(wù)設(shè)計的方法可將其轉(zhuǎn)換為如圖5-12(b)所示的模塊結(jié)構(gòu)圖。賬務(wù)處理系統(tǒng)報表管理賬務(wù)管理憑證管理5.3.2 變換設(shè)計1. 變換流2將具有變換流的數(shù)據(jù)流程圖轉(zhuǎn)換成模塊結(jié)構(gòu)的步驟(1)仔細(xì)分析數(shù)據(jù)流程圖,識別出系統(tǒng)的輸入數(shù)據(jù)、變換中心和輸出數(shù)據(jù)。(2)設(shè)計模塊結(jié)構(gòu)圖的頂層和第一層(3)設(shè)計中、下層模塊 例: 圖5-15(a)為某賬務(wù)處理系統(tǒng)中的二級細(xì)化的數(shù)據(jù)流程圖,是系統(tǒng)中“憑證管理模塊”的細(xì)化。由圖可見“憑證管理模塊”有4個基本處理功能,即輸入、匯總、審核、打印。其中輸入功能分屬第一類輸入功能;匯總、審核功能分屬第二類執(zhí)行功能;打印功能分屬第三類輸
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度合同管理崗位職責(zé)及考核評價體系合同
- 二零二五年度一手房買賣合同解除及補償協(xié)議書
- 二零二五年度叉車安全操作規(guī)范協(xié)議及安全責(zé)任追究辦法
- 2025年度生物科技項目出資入股合同
- 二零二五年度門窗行業(yè)技術(shù)培訓(xùn)與咨詢服務(wù)合同協(xié)議
- 政府臨時工合同工2025年度勞動合同履行與監(jiān)督協(xié)議
- 二零二五年度新能源債權(quán)轉(zhuǎn)讓與項目合作合同
- 二零二五年度人工智能研發(fā)團(tuán)隊勞動集體合同(人工智能應(yīng)用)
- 教師教育教學(xué)質(zhì)量評估合作協(xié)議2025年度范本
- 2025年度高校畢業(yè)生就業(yè)見習(xí)基地協(xié)議
- DeepSeek從入門到精通
- 植保機械技術(shù)培訓(xùn)課件
- 人工智能賦能職業(yè)教育高質(zhì)量發(fā)展研究
- 2024年水利工程建設(shè)行業(yè)市場發(fā)展監(jiān)測及投資潛力預(yù)測報告
- 崗位職責(zé)心得體會(2篇)
- 高中地理興趣小組活動方案
- 立案委托書撰寫指南讓法律更簡單3篇
- 機械設(shè)計基礎(chǔ) 課件 01機械設(shè)計概論
- 基于大數(shù)據(jù)的消費趨勢預(yù)測與分析報告
- 高三地理一輪復(fù)習(xí)+課件+第三部分+4.4國際合作
- 全國第三屆職業(yè)技能大賽(智能網(wǎng)聯(lián)汽車裝調(diào)運維)選拔賽理論考試題庫(含答案)
評論
0/150
提交評論