第5章-總體設(shè)計-2_第1頁
第5章-總體設(shè)計-2_第2頁
第5章-總體設(shè)計-2_第3頁
第5章-總體設(shè)計-2_第4頁
第5章-總體設(shè)計-2_第5頁
已閱讀5頁,還剩90頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

回顧軟件設(shè)計的任務(wù)軟件總體設(shè)計的步驟什么是好的軟件設(shè)計?2/3/20230回顧結(jié)構(gòu)化設(shè)計方法將問題的解決方案表述為:軟件結(jié)構(gòu)圖+關(guān)系數(shù)據(jù)模式

軟件結(jié)構(gòu)圖描述軟件系統(tǒng)的程序結(jié)構(gòu)關(guān)系數(shù)據(jù)模式描述軟件系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu)結(jié)構(gòu)化設(shè)計工作主要包括程序結(jié)構(gòu)設(shè)計和數(shù)據(jù)庫設(shè)計2/3/20231回顧數(shù)據(jù)設(shè)計過程設(shè)計結(jié)構(gòu)設(shè)計總體設(shè)計詳細設(shè)計管理角度技術(shù)觀點接口設(shè)計2/3/20232設(shè)計原理模塊化抽象逐步求精信息隱藏和局部化

模塊獨立回顧2/3/20233五、模塊獨立模塊的獨立性的概念是模塊化、抽象、信息隱藏和局部化概念的直接結(jié)果。模塊獨立性原則,希望每個模塊完成一個相對獨立的功能,并與其他模塊之間的關(guān)系盡量簡單。設(shè)計原理2/3/20234五、模塊獨立設(shè)計時追求模塊獨立理由有二:第一,功能與接口都簡單,便于團隊分工協(xié)作。第二,易測試、易維護。比如手和腳是兩個“功能獨立”的模塊。沒有腳時,手照樣能干活。沒有手時,腳仍可以走路。但如果想讓人跑得快,那么邁左腳時一定要伸右臂甩左臂,邁右腳時則要伸左臂甩右臂。所以在設(shè)計模塊時不僅要考慮“這個模塊應(yīng)當(dāng)有什么樣的功能”,還要考慮“這個模塊應(yīng)該怎樣與其它模塊交流信息”。設(shè)計原理2/3/20235耦合

模塊之間的相對獨立性的度量內(nèi)聚

模塊功能強度的度量模塊的獨立程度可以由兩個定性標(biāo)準(zhǔn)度量設(shè)計原理五、模塊獨立設(shè)計目標(biāo):力爭高內(nèi)聚、低耦合因為只有低耦合才能更好的適應(yīng)變化,更好的復(fù)用和擴展。

2/3/20236設(shè)計原理五、模塊獨立耦合是對一個軟件結(jié)構(gòu)內(nèi)各個模塊之間互連程度的度量。耦合強弱取決于模塊間接口的復(fù)雜程度,調(diào)用模塊的方式,以及通過接口的信息。根據(jù)模塊間耦合程度的強弱的標(biāo)準(zhǔn),劃分耦合類型,共有五種。

2/3/20237五、模塊獨立---耦合非直接耦合數(shù)據(jù)耦合特征耦合控制耦合5。外部耦合6。公共環(huán)境耦合7。內(nèi)容耦合弱耦合中耦合較強耦合強耦合模塊1模塊2模塊3模塊4數(shù)據(jù)耦合通過簡單變量交換數(shù)據(jù)特征耦合通過數(shù)據(jù)結(jié)構(gòu)交換數(shù)據(jù)非直接耦合模塊之間沒有信息傳遞模塊A模塊B模塊C模塊D模塊L模塊NFlag=1?S1S2模塊1控制耦合模塊之間傳遞的是控制信息TF模塊A模塊B內(nèi)容耦合

訪問其它模塊的內(nèi)部數(shù)據(jù)直接跳到其他模塊內(nèi)部執(zhí)行公共環(huán)境耦合通過公共數(shù)據(jù)環(huán)境相互作用模塊2一組模塊都訪問同一全局簡單變量2/3/20238公共的數(shù)據(jù)環(huán)境可以是全局?jǐn)?shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。公共耦合的復(fù)雜程度隨耦合模塊的個數(shù)增加而顯著增加。若只是兩模塊間有公共數(shù)據(jù)環(huán)境,則公共耦合有兩種情況。松散公共耦合和緊密公共耦合。五、模塊獨立—耦合設(shè)計原理2/3/20239內(nèi)聚類型說明非直接耦合兩個模塊之間沒有直接關(guān)系數(shù)據(jù)耦合通過簡單數(shù)據(jù)參數(shù)交換信息特征耦合通過復(fù)雜數(shù)據(jù)參數(shù)交換信息控制耦合傳送開關(guān)、標(biāo)志、名字等控制信息外部耦合訪問同一全局簡單變量公共耦合訪問同一個公共數(shù)據(jù)環(huán)境內(nèi)容耦合一個模塊可直接訪問另一模塊五、模塊獨立--耦合度設(shè)計原理2/3/202310兩模塊之間是否沒有任何信息傳遞?11非直接耦合22數(shù)據(jù)耦合33特征耦合44控制耦合55外部耦合66公共耦合77內(nèi)容耦合以何種方式

傳遞信息?傳遞的信息類型?共享數(shù)據(jù)YESNO簡單類型參數(shù)表傳遞的信息類型?直接讀取數(shù)據(jù)結(jié)構(gòu)標(biāo)志量簡單類型數(shù)據(jù)結(jié)構(gòu)耦合強度等級設(shè)計原理2/3/202311設(shè)計原理五、模塊獨立設(shè)計原則:控制耦合是一種中等程度的耦合。應(yīng)盡可能少用。外部耦合和公共耦合是較強程度的耦合。盡管有時無法避免,但要特別注意、嚴(yán)加控制。內(nèi)容耦合是耦合程度最強的耦合,極大增強了軟件的復(fù)雜性,給維護帶來嚴(yán)重困難,是“病態(tài)聯(lián)系”,應(yīng)禁止使用。實際完全可以避免。2/3/202312設(shè)計原理特征耦合的模塊聯(lián)接形式不如數(shù)據(jù)耦合形式好,如果不是特別需要,盡量使用數(shù)據(jù)耦合形式。2/3/202313設(shè)計原理特征耦合可不改特征耦合改為數(shù)據(jù)耦合2/3/202314五、模塊獨立—耦合本質(zhì)上,控制耦合干涉了被調(diào)用模塊的內(nèi)部處理邏輯,這樣就造成了B模塊不再是一個暗盒,因此是一種不好的設(shè)計形式。控制耦合設(shè)計原理2/3/202315五、模塊獨立—耦合去除模塊間控制耦合的方法:(1)將被調(diào)用模塊內(nèi)的判定上移到調(diào)用模塊中進行(2)被調(diào)用模塊分解成若干單一功能模塊A計算平均分B1平均成績最高成績計算最高分B2改控制耦合為數(shù)據(jù)耦合舉例設(shè)計原理2/3/202316五、模塊獨立—內(nèi)聚模塊的內(nèi)聚性是反映模塊的獨立性的另一個側(cè)面,模塊內(nèi)聚性越強,其獨立性就越好。內(nèi)聚標(biāo)志一個模塊內(nèi)各個元素彼此結(jié)合的緊密程度,它是信息隱藏和局部化概念的自然擴展。簡單地說,理想內(nèi)聚的模塊只做一件事情。設(shè)計時應(yīng)該力求做到高內(nèi)聚。設(shè)計原理2/3/2023171偶然型內(nèi)聚CoincidentalCohesion3時間型內(nèi)聚TemporalCohesion4過程型內(nèi)聚ProceduralCohesion5通訊型內(nèi)聚CommunicationalCohesion6順序型內(nèi)聚SequentialCohesion7功能型內(nèi)聚FunctionalCohesion1234567弱強低內(nèi)聚中內(nèi)聚高內(nèi)聚2邏輯型內(nèi)聚LogicalCohesion設(shè)計原理2/3/202318內(nèi)聚類型說明偶然型內(nèi)聚各組成部分在功能上互不相關(guān)邏輯型內(nèi)聚各組成部分邏輯功能相似時間型內(nèi)聚各組成部分需要在同一時間內(nèi)執(zhí)行過程型內(nèi)聚各組成部分必須按照某一特定的次序執(zhí)行通信型內(nèi)聚各組成部分處理公共的數(shù)據(jù)順序型內(nèi)聚各組成部分順序執(zhí)行,前一個的輸出數(shù)據(jù)為后一個的輸入數(shù)據(jù)功能型內(nèi)聚內(nèi)部所有活動均完成單一功能設(shè)計原理2/3/202319

模塊T中的三條語句毫無關(guān)系,A、B、C、D都不在文件CARDFILE中。模塊P、Q、R分別與三條語句有關(guān)。PQRMOVEATOBREADCARDFILEMOVECTOD

偶然型模塊五、模塊獨立—內(nèi)聚1、偶然型(CoincidentalCohesion)-節(jié)約空間又稱為巧合型,為了節(jié)約空間,將毫無關(guān)系(或者聯(lián)系不多)的各成分放在一個模塊中。這樣的模塊顯然不易理解,不易修改。T設(shè)計原理返回2/3/202320

將幾個邏輯上相似的功能放在一個模塊中,調(diào)用時由調(diào)用模塊傳遞的參數(shù)確定執(zhí)行的功能。由于要進行控制參數(shù)的傳遞,必然要影響模塊的內(nèi)聚性。

五、模塊獨立—內(nèi)聚2、邏輯型(LogicalCohesion)--節(jié)約空間設(shè)計原理2/3/202321ABCEFGABCEFGA1B1C1EFG模塊內(nèi)部邏輯E、F、G邏輯功能相似,組成新模塊EFG公用代碼段公用代碼段缺點:增強了耦合程度(控制耦合)不易修改,效率低返回五、模塊獨立—內(nèi)聚

3、時間型(TemporalCohesion)將需要同時執(zhí)行的成分放在一個模塊中,因為模塊中的各功能與時間有關(guān),因此又稱為瞬時內(nèi)聚或經(jīng)典內(nèi)聚。例如,初始化模塊,中止模塊等這類模塊內(nèi)部結(jié)構(gòu)較簡單,一般較少判定,因此比邏輯內(nèi)聚強,但是由于將多個功能放在一起,給修改和維護造成困難。返回設(shè)計原理2/3/202323五、模塊獨立—內(nèi)聚

4、過程內(nèi)聚:模塊內(nèi)各處理成分相關(guān),且必須以特定次序執(zhí)行讀入成績單審查成績單統(tǒng)計成績打印成績讀入并審查成績單統(tǒng)計并打印成績單設(shè)計原理返回2/3/202324五、模塊獨立—內(nèi)聚5、通信型(CommunicationalCohesion)模塊中的成分引用共同的輸入數(shù)據(jù),或者產(chǎn)生相同的輸出數(shù)據(jù),則稱為是通信內(nèi)聚模塊。通信型模塊比瞬時型模塊的內(nèi)聚性強,因為模塊中包含了許多獨立的功能,但卻引用相同數(shù)據(jù)。通信模塊一般可以通過數(shù)據(jù)流圖來定義。A打印報告1打印報告2打印報告2B存入打印C修改刪除打?。╝)(b)(c)通信型模塊設(shè)計原理返回2/3/202325五、模塊獨立—內(nèi)聚6、順序型(SequentialCohesion)

模塊內(nèi)的各處理成份均與同一功能相關(guān),且模塊中某個成分的輸出是另一成分的輸入。由于這類模塊無論數(shù)據(jù)還是執(zhí)行順序,模塊中的一部分依賴于另外一部分。因此具有較好的內(nèi)聚性。

順序型模塊,編輯功能的輸入是讀入功能的輸出,打印功能的輸入是累加功能的輸出。讀入編輯A數(shù)據(jù)累加打印B結(jié)果順序型模塊設(shè)計原理返回2/3/202326五、模塊獨立—內(nèi)聚7、功能型(SequentialCohesion)一個模塊包括而且僅包括完成某一具體功能所必須的所有成分。或者說,模塊的所有成分都是為完成該功能而協(xié)同工作、緊密聯(lián)系、不可分割的。例如僅完成以下功能的模塊為功能模塊:

●求平方根

●求解一元二次方程

●計算利息

●判素數(shù)

求解方程的功能模塊求一元二次方程求平方根AB設(shè)計原理返回2/3/202327該模塊是否只完成單一的功能?7功能型內(nèi)聚6順序型內(nèi)聚5通信型內(nèi)聚4過程型內(nèi)聚3時間型內(nèi)聚2邏輯型內(nèi)聚1偶然型內(nèi)聚模塊內(nèi)的活動依據(jù)什么發(fā)生聯(lián)系?次序是否重要?次序是否重要?所有的活動是同一類的嗎?NONOYESNO數(shù)據(jù)YESNO控制流都不是YESYES內(nèi)聚強度的劃分設(shè)計原理2/3/202328算多個地點的每日平均溫度初始化求和并打開文件創(chuàng)建新的溫度記錄存儲溫度記錄關(guān)閉文件并打印平均溫度功能型內(nèi)聚

偶然內(nèi)聚

偶然內(nèi)聚功能型內(nèi)聚讀取地點、時間和溫度存儲特定地點溫度編輯地點、時間或溫度字段功能型內(nèi)聚功能型內(nèi)聚功能型內(nèi)聚邏輯內(nèi)聚每個內(nèi)聚的模塊互聯(lián)例2/3/202329補充:層內(nèi)聚(layercohesion)

把向用戶或高層提供相關(guān)服務(wù)的功能放在一起.用戶界面應(yīng)用邏輯訪問操作系統(tǒng)訪問數(shù)據(jù)庫網(wǎng)絡(luò)通信應(yīng)用程序的典型層次2/3/202330本章要點一、軟件設(shè)計概述二、總體設(shè)計的過程三、總體設(shè)計原理四、啟發(fā)規(guī)則五、常用的描述軟件結(jié)構(gòu)的圖形工具六、面向數(shù)據(jù)流的設(shè)計方法七、案例分析八、軟件總體設(shè)計文檔2/3/202331

實踐中,總結(jié)經(jīng)驗得出了一些啟發(fā)式規(guī)則。發(fā)式規(guī)則雖然不像上基本原理和概念那樣普遍適用,但是在許多場合仍然能給軟件工程師以有益的啟示,能幫助他們找到改進軟件設(shè)計提高軟件質(zhì)量的途徑。啟發(fā)規(guī)則2/3/202332啟發(fā)規(guī)則啟發(fā)規(guī)則改進軟件結(jié)構(gòu)提高模塊獨立性。模塊規(guī)模應(yīng)該適中。深度、寬度、扇出和扇入都應(yīng)適當(dāng)。模塊的作用域應(yīng)該在控制域之內(nèi)。力爭降低模塊接口的復(fù)雜程度。

設(shè)計單入口單出口的模塊。

模塊功能應(yīng)該可以預(yù)測。2/3/2023331.改進軟件結(jié)構(gòu),提高模塊獨立性設(shè)計出軟件的初步結(jié)構(gòu)以后,應(yīng)該審查分析這個結(jié)構(gòu),通過模塊分解或合并,力求降低耦合提高內(nèi)聚。例如,多個模塊公有的一個子功能可以獨立成一個模塊,由這些模塊調(diào)用;有時可以通過分解或合并模塊以減少控制信息的傳遞及對全程數(shù)據(jù)的引用,并且降低接口的復(fù)雜程度。啟發(fā)規(guī)則2/3/202334如C1,C2有類似功能,也有不同功能??砂压δ茴愃频牟糠址蛛x出來,增加一個公共下屬模塊

A

C1’

A

C2’

C

C

A’

B’

A

C1A

C2

如果余下的C1,C2比較簡單,可分別與其上級模塊合并,以減少控制的傳遞、全局?jǐn)?shù)據(jù)的引用和接口的復(fù)雜性。啟發(fā)規(guī)則2/3/202335啟發(fā)規(guī)則2.模塊規(guī)模應(yīng)該適中經(jīng)驗表明,一個模塊的規(guī)模不應(yīng)過大。過大的模塊往往是由于分解不充分,但是進一步分解必須符合問題結(jié)構(gòu),一般說來,分解后不應(yīng)該降低模塊獨立性。模塊數(shù)目過多將使系統(tǒng)接口復(fù)雜,因此過小的模塊有時不值得單獨存在。2/3/202336啟發(fā)規(guī)則MDBCAEKLNGFHPRSJTIQ扇出扇入寬度深度3.深度、寬度、扇出和扇入都應(yīng)適當(dāng)2/3/202337深度:

程序結(jié)構(gòu)的層次數(shù)。扇出:

表示一個模塊直接調(diào)用(或控制)的下屬模塊的個數(shù).寬度:

層次結(jié)構(gòu)中同一層模塊的最大模塊個數(shù)。扇入:

一個模塊的直接上級模塊的模塊。啟發(fā)規(guī)則2/3/2023383.深度、寬度、扇出和扇入都應(yīng)適當(dāng)深度和程序長度之間應(yīng)該有粗略的對應(yīng)關(guān)系。如果層數(shù)過多則應(yīng)該考慮是否有許多管理模塊過分簡單了,能否適當(dāng)合并。一般說來,寬度越大系統(tǒng)越復(fù)雜。對寬度影響最大的因素是模塊的扇出。啟發(fā)規(guī)則2/3/202339啟發(fā)規(guī)則扇出過大意味著模塊過分復(fù)雜,需要控制和協(xié)調(diào)過多的下級模塊;扇出過小(例如總是1)也不好。經(jīng)驗表明,一個設(shè)計得好的典型系統(tǒng)的平均扇出通常是3或4(扇出的上限通常是5~9)。扇出太大一般是因為缺乏中間層次,應(yīng)該適當(dāng)增加中間層次的控制模塊。扇出太小時可以把下級模塊進一步分解成若干個子功能模塊,或者合并到它的上級模塊中去。當(dāng)然分解模塊或合并模塊必須符合問題結(jié)構(gòu),不能違背模塊獨立性原理。2/3/202340

編外人員工資取得工資數(shù)據(jù)計時制工資額薪金制工資額編外人員稅款編外人員扣款常規(guī)扣款稅收扣款計算實發(fā)工資模塊的高扇出啟發(fā)規(guī)則2/3/202341

計算實發(fā)工資取得工資數(shù)據(jù)計時工人實發(fā)工資計薪工人實發(fā)工資編外人員實發(fā)工資編外人員工資計時制工資額薪金制工資額編外人員稅款編外人員扣款常規(guī)扣款稅收扣款合理的模塊扇出啟發(fā)規(guī)則2/3/202342扇入越大則共享該模塊的上級模塊數(shù)目越多,這是有好處的,但不能違背模塊獨立原理單純追求高扇入。觀察大量軟件系統(tǒng)后發(fā)現(xiàn),好的軟件結(jié)構(gòu)通常頂層扇出比較高,中層扇出較少,底層扇入到公共的實用模塊中去(底層模塊有高扇入)。啟發(fā)規(guī)則QQ1Q2Q3Q2/3/202343控制域—一個模塊的控制域,等于模塊本身加上其下級模塊,即可供它調(diào)用的模塊。作用域—一個模塊的作用域,是受這個模塊中的判定所影響的模塊。圖中模塊A的控制范圍:A、B、C、D、G、E、F如果模塊F的判定涉及到模塊B、E、F。則F的的作用范圍:B、E、FABCDGEFFBE(a)啟發(fā)規(guī)則4.模塊的“作用域”應(yīng)該在“控制域”之內(nèi)2/3/202344當(dāng)作用域為控制域的子集時,才能獲得較低的塊間聯(lián)系。如圖中的設(shè)計,判定的作用范圍恰好在判定所在模塊的下一層。TOPXTBAB1B2圖(b)中模塊TOP的控制范圍是:

模塊TOP、X、T、B、A、B1、B2;模塊B的控制范圍與作用范圍相同,均為:模塊B、A、B1、B2(b)4.模塊的“作用域”應(yīng)該在“控制域”之內(nèi)啟發(fā)規(guī)則2/3/202345答案顯然,圖(a)不滿足作用范圍應(yīng)與控制范圍的原則,模塊F的作用范圍不在控制范圍之內(nèi)。圖(b)中模塊TOP和圖(c)中模塊B雖然滿足上述原則,但其作用范圍所涉及到的模塊不是直接的。圖(d)的模塊設(shè)計最合理??刂品秶c作用范圍舉例TOPABCDEF(a)◆TOPABCDEF(d)◆TOPABCDEF(b)◆TOPABCDEF(c)◆比較(a)、(b)、(c)、(d)4種設(shè)計方案的優(yōu)劣!2/3/202346作用域/控制域規(guī)則若F中有判定,影響到B…若M中有判定,影響到B和F…若A中有判定,影響到B和F…若C中有判定,影響到D和F…不好,使模塊間出現(xiàn)控制耦合

可用。但不好,判定在模塊層次中的位置太高較好:控制范圍包含了作用范圍,距離也尚可理想的設(shè)計

M

AG

EB

CD

F

啟發(fā)規(guī)則2/3/2023475.力爭降低模塊接口的復(fù)雜程度模塊接口復(fù)雜是軟件發(fā)生錯誤的一個主要原因。應(yīng)該仔細設(shè)計模塊接口,使得信息傳遞簡單并且和模塊的功能一致。接口復(fù)雜或不一致性(即看起來傳遞的數(shù)據(jù)之間沒有聯(lián)系),是緊耦合或低內(nèi)聚的征兆,應(yīng)該重新分析這個模塊的獨立性。啟發(fā)規(guī)則2/3/2023486.設(shè)計單入口、單出口的模塊該規(guī)則警告軟件工程師,不要出現(xiàn)內(nèi)容耦合。當(dāng)從頂部進入、底部退出時,模塊是易理解的,也易維護。啟發(fā)規(guī)則2/3/2023497、模塊的功能應(yīng)該能夠預(yù)測把一個模塊看作黑盒子,只要輸入的數(shù)據(jù)確定,就能產(chǎn)生確定的欲期輸出,這個模塊的功能就是可以預(yù)測的。帶有內(nèi)部“存儲器”的模塊的功能可能是不可預(yù)測的,因為它的輸出可能取決于內(nèi)部存儲器(例如某個標(biāo)記)的狀態(tài)。由于內(nèi)部存儲器對于上級模塊而言是不可見的,所以這樣的模塊既不易理解又難于測試和維護。啟發(fā)規(guī)則2/3/202350總體設(shè)計原理小結(jié)

(1)遵照模塊的特性:分解、抽象、信息隱蔽、模塊的獨立,結(jié)構(gòu)化.(2)模塊的功能是完備的,但要消除冗余.(4)模塊應(yīng)具有高內(nèi)聚、低耦會;高扇入、低扇出;模塊的深度,寬度要適當(dāng).(3)大小適中,降低模塊接口的復(fù)雜性.(5)模塊的判定作用范圍應(yīng)限制在模塊的控制范圍之內(nèi).(6)避免模塊的病態(tài)連接(內(nèi)容耦合、公共耦合、通信耦合)2/3/202351遵守設(shè)計原則的軟件就具有高內(nèi)聚,低耦合的設(shè)計特點,也就是可維護,高擴展,高復(fù)用的設(shè)計。設(shè)計是一項創(chuàng)新和平衡的活動!要么創(chuàng)造一個新的東西來滿足所有要求,要么就在已有的要求之間進行平衡。總體設(shè)計原理小結(jié)

2/3/202352本章要點一、軟件設(shè)計概述二、總體設(shè)計的過程三、總體設(shè)計原理四、啟發(fā)規(guī)則五、常用的描述軟件結(jié)構(gòu)的圖形工具六、面向數(shù)據(jù)流的設(shè)計方法七、案例分析八、軟件總體設(shè)計文檔2/3/202353常用的軟件結(jié)構(gòu)圖形工具層次圖HIPO圖結(jié)構(gòu)圖2/3/202354一、層次圖(H圖)層次圖(H圖)用于描繪軟件的層次結(jié)構(gòu),層次圖中一個矩形框代表一個模塊,框間的連線表示調(diào)用關(guān)系,位于上方的矩形框所代表的模塊調(diào)用位于下方的矩形框所代表的模塊,下圖是一個層次圖的例子。層次圖很適于在自頂向下設(shè)計軟件的過程中使用。

常用的軟件結(jié)構(gòu)圖形工具2/3/202355酒店管理信息系統(tǒng)的層次圖HMIS客房結(jié)帳子系統(tǒng)客房登記子系統(tǒng)餐廳管理子系統(tǒng)客人登記預(yù)定登記客房處理歷史記錄客房查詢預(yù)定查詢餐桌安排菜單作業(yè)營業(yè)結(jié)帳匯總打印各類查詢初始設(shè)置客帳處理退房處理夜審處理客帳查詢報表打印

正文加工系統(tǒng)輸入輸出編輯加標(biāo)題存儲檢索編目錄添加刪除插入修改合并列表2/3/202357

正文加工系統(tǒng)輸入1.0輸出2.0編輯3.0加標(biāo)題4.0存儲5.0檢索6.0編目錄7.0添加3.1刪除3.2插入3.3修改3.4合并3.5列表3.6帶編號的層次圖(H圖)2/3/202358二、HIPO圖HIPO圖是美國IBM公司發(fā)明的“層次圖加輸入/處理/輸出圖”的英文縮寫。為了使HIPO圖具有可追蹤性,在H圖里除了頂層的方框之外,每個方框都加了編號。例如,把上圖加了編號之后得到下圖。與H圖中的每個方框相對應(yīng),應(yīng)該有一張IPO圖描述這個方框代表的模塊的處理過程,每張IPO圖內(nèi)都應(yīng)該明顯地標(biāo)出它所描繪的模塊在H圖中中的編號,以便確定這個模塊在軟件結(jié)構(gòu)中的位置?!背S玫能浖Y(jié)構(gòu)圖形工具2/3/202359常用的軟件結(jié)構(gòu)圖形工具2/3/202360續(xù)借書使用情況4圖書使用3借書還書預(yù)約書。。。計算消耗打印報表圖書館系統(tǒng)舉例:說明圖書館系統(tǒng)功能圖(H圖)常用的軟件結(jié)構(gòu)圖形工具2/3/202361舉例:圖書信息管理系統(tǒng)IPO圖

編號:IPO3.1名稱:借書處理輸入?yún)?shù)處理說明輸出參數(shù)讀者編號圖書編號1.輸入讀者編號和圖書編號2.創(chuàng)建借書記錄,修改圖書在庫量3.如果此書曾經(jīng)預(yù)訂,則取消圖書預(yù)訂記錄修改DS102的在庫圖書量插入借書記錄到DS200取消DS400中的預(yù)訂記錄備注:常用的軟件結(jié)構(gòu)圖形工具2/3/202362模塊5模塊5模塊4模塊4模塊1模塊3模塊2valuesvaluesdatadata模塊1模塊2模塊3valuesvaluesdatadata結(jié)構(gòu)圖(StructureChart,簡稱SC圖)是精確表達軟件結(jié)構(gòu)的圖形表示方法,它以特定的符號表示模塊、模塊間的調(diào)用關(guān)系和模塊間信息的傳遞。結(jié)構(gòu)圖的主要構(gòu)成有:⑴模塊(Module):用矩形框表示,框中寫有模塊的名字,說明模塊的功能。模塊是程序?qū)ο笥忻值募?。例如:過程、函數(shù)、子程序、宏等。⑶數(shù)據(jù):調(diào)用箭頭邊上的小箭頭表示調(diào)用時從一個模塊傳送給另一模塊的數(shù)據(jù)。通常在短箭頭附近應(yīng)注有信息的名字,如圖所示。模塊調(diào)用圖⑵調(diào)用:從一個模塊指向另一個模塊的箭頭表示前一模塊對后一模塊的調(diào)用,一般是上層調(diào)用下層。右圖表示模塊1調(diào)用了模塊2和模塊3。data三、軟件結(jié)構(gòu)圖(SC圖)常用的軟件結(jié)構(gòu)圖形工具2/3/202363

模塊間接口的表示A查詢學(xué)生成績B查找學(xué)生記錄○學(xué)號查找成功的信號

常用尾端帶有空心圓的短箭頭表示數(shù)據(jù)信息,用尾端帶有實心圓的短箭頭表示控制信息。有的結(jié)構(gòu)圖對這兩種信息不加以區(qū)別,一律用注有信息名的短箭頭來表示,如圖所示。

三、軟件結(jié)構(gòu)圖(SC圖)常用的軟件結(jié)構(gòu)圖形工具2/3/202364

當(dāng)模塊A有條件地調(diào)用另一個模塊B時,在模塊A的箭頭尾部標(biāo)以一個菱形符號,當(dāng)一個模塊A反復(fù)地調(diào)用模塊B、和模塊D時,在調(diào)用箭頭尾部則標(biāo)以一個弧形符號,如圖所示。在結(jié)構(gòu)圖中這種條件調(diào)用所依賴的條件和循環(huán)調(diào)用所依賴的循環(huán)控制條件通常無需注明。為了進一步描述模塊間的調(diào)用關(guān)系,還可使用兩種輔助符號。輔助符號ABCD條件選擇ABCD循環(huán)常用的軟件結(jié)構(gòu)圖形工具三、軟件結(jié)構(gòu)圖(SC圖)2/3/202365傳入模塊(a)(b)AA傳出模塊BB變換模塊(c)CD協(xié)調(diào)模塊E(d)EFFSC中的四種模塊常用的軟件結(jié)構(gòu)圖形工具2/3/202366傳入模塊從下屬模塊取得數(shù)據(jù),進行某些處理,再將其結(jié)果傳給上級模塊。在此,將它傳送的數(shù)據(jù)流稱為邏輯輸入數(shù)據(jù)流傳入模塊AA邏輯輸入數(shù)據(jù)流成績處理成績錄入

常用的軟件結(jié)構(gòu)圖形工具三、軟件結(jié)構(gòu)圖(SC圖)2/3/202367傳出模塊從上級模塊獲得數(shù)據(jù),進行某些處理,再將其結(jié)果傳給下屬模塊。在此,將它傳送的數(shù)據(jù)流稱為邏輯輸出數(shù)據(jù)流傳出模塊DD邏輯輸出數(shù)據(jù)流成績處理成績輸出三、軟件結(jié)構(gòu)圖(SC圖)常用的軟件結(jié)構(gòu)圖形工具2/3/202368變換模塊也叫加工模塊。它是從上級模塊獲得數(shù)據(jù),進行特定的處理,將其轉(zhuǎn)換為其他形式,再傳回上級模塊它所加工的數(shù)據(jù)流叫做變換數(shù)據(jù)流變換模塊CB變換數(shù)據(jù)流審查并開發(fā)票發(fā)票購書單

三、軟件結(jié)構(gòu)圖(SC圖)常用的軟件結(jié)構(gòu)圖形工具2/3/202369協(xié)調(diào)模塊對所有下屬模塊進行協(xié)調(diào)和管理的模塊。在一個好的軟件結(jié)構(gòu)圖中,協(xié)調(diào)模塊應(yīng)在較高層出現(xiàn)協(xié)調(diào)模塊YXYX三、軟件結(jié)構(gòu)圖(SC圖)常用的軟件結(jié)構(gòu)圖形工具2/3/202370

調(diào)用次序為上層調(diào)用下層;

同層按照數(shù)據(jù)傳遞關(guān)系確定;一般從左到右執(zhí)行。

執(zhí)行過程即按照數(shù)據(jù)流向進行。報告計算獲得編輯確認(rèn)數(shù)據(jù)讀入編輯打印報告頭打印報告尾打印輸入EOF輸入已編輯已編輯已編輯已確認(rèn)已確認(rèn)數(shù)據(jù)已確認(rèn)數(shù)據(jù)計算結(jié)果結(jié)果日期總結(jié)果行行行打印報告予以確認(rèn)例:打印報告的軟件結(jié)構(gòu)圖常用的軟件結(jié)構(gòu)圖形工具2/3/202371本章要點一、軟件設(shè)計概述二、總體設(shè)計的過程三、總體設(shè)計原理四、啟發(fā)規(guī)則五、常用的描述軟件結(jié)構(gòu)的圖形工具六、面向數(shù)據(jù)流的設(shè)計方法七、案例分析八、軟件總體設(shè)計文檔2/3/202372面向數(shù)據(jù)流的設(shè)計方法

面向數(shù)據(jù)流設(shè)計方法的基本概念

SD以數(shù)據(jù)流圖為基礎(chǔ),它定義了把DFD變換成軟件結(jié)構(gòu)的不同映射方法DFD(問題結(jié)構(gòu))軟件系統(tǒng)的結(jié)構(gòu)(程序結(jié)構(gòu))DFD圖映射2/3/202373數(shù)據(jù)流圖類型和SD方法的步驟在軟件設(shè)計開始之前,首先要分清DFD圖所顯示的系統(tǒng)特征.在DFD圖所代表的SA模型中,所有系統(tǒng)均可以納入兩種典型的形式:變換型結(jié)構(gòu)事務(wù)型結(jié)構(gòu)面向數(shù)據(jù)流的設(shè)計方法

2/3/202374事務(wù)型數(shù)據(jù)流結(jié)構(gòu)傳入變換傳出變換中心傳入部分傳出部分事務(wù)分析事務(wù)中心動作1動作2動作3接受接受部分變換型數(shù)據(jù)流結(jié)構(gòu)2/3/202375

信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)過加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。當(dāng)數(shù)據(jù)流具有這些特征時,這種信息流稱為變換流。外部表示內(nèi)部表示信息輸入流輸出流變換流信息流時間1、變換型結(jié)構(gòu)的特征面向數(shù)據(jù)流的設(shè)計方法

2/3/202376邏輯輸出邏輯輸入物理輸入記帳憑證報表物理輸出帳薄物理輸出憑證輸入憑證驗證日常帳務(wù)處理月末結(jié)帳處理打印帳薄打印報表輸出主加工輸入

變換型數(shù)據(jù)流圖面向數(shù)據(jù)流的設(shè)計方法

2/3/202377

數(shù)據(jù)沿輸入通路到達一個處理T,這個處理根據(jù)輸入數(shù)據(jù)的類型在若干個動作序列中選出一個來執(zhí)行。這種“以事務(wù)為中心的”的數(shù)據(jù)流,成為“事務(wù)流”。T事務(wù)事務(wù)中心處理T稱為事務(wù)中心,完成以下任務(wù):接收輸入數(shù)據(jù);分析每個事務(wù)以確定它的類型;根據(jù)事務(wù)類型選取一條活動通路。2、事務(wù)型結(jié)構(gòu)特征面向數(shù)據(jù)流的設(shè)計方法2/3/202378分類報名付款注銷查詢復(fù)審

事務(wù)型(transaction)它又分為集中式數(shù)據(jù)處理和發(fā)散式數(shù)據(jù)處理集中式事務(wù)型數(shù)據(jù)流圖面向數(shù)據(jù)流的設(shè)計方法

2/3/202379接收變換中心事務(wù)處理

路徑發(fā)散的事務(wù)型數(shù)據(jù)流圖

面向數(shù)據(jù)流的設(shè)計方法2/3/202380通常在大型系統(tǒng)DFD中,變換型和事務(wù)型結(jié)構(gòu)往往共存:T事務(wù)中心傳入變換傳出面向數(shù)據(jù)流的設(shè)計方法2/3/202381精化DFDDFD類型?區(qū)分事務(wù)中心和動作路徑區(qū)分變換中心,傳入和傳出路徑映射成事務(wù)結(jié)構(gòu)映射成變換結(jié)構(gòu)精化軟件結(jié)構(gòu)評審軟件結(jié)構(gòu)合格?NY詳設(shè)結(jié)束開始事務(wù)分析變換分析事務(wù)變換由DFD到SC的過程2/3/202382如何將DFD映射為軟件結(jié)構(gòu)?變換型事務(wù)型方法不一樣面向數(shù)據(jù)流的設(shè)計方法2/3/202383面向數(shù)據(jù)流的設(shè)計方法一、變換型數(shù)據(jù)流圖轉(zhuǎn)軟件結(jié)構(gòu)的方法具有“變換型”的數(shù)據(jù)流圖,明顯可以分割為“導(dǎo)入”、“加工變換”和“導(dǎo)出”三部分,對應(yīng)軟件結(jié)構(gòu)的“傳入子系統(tǒng)”、“中心變換子系統(tǒng)”和“傳出子系統(tǒng)”三部分。2/3/202384FDC中心加工2號加工3號加工1號加工4號加工ABE

輸入流轉(zhuǎn)換流輸出流

輸入流轉(zhuǎn)換流輸出流一、變換型轉(zhuǎn)換結(jié)構(gòu)圖的方法1找出邊界,進行一級分解,設(shè)計上層模塊為每個輸入設(shè)計一個輸入模塊,為每個輸出設(shè)計一個輸出模塊,同時為每個主加工設(shè)計一個處理模塊。MCICTCOCCDDCICTCO變換分析技術(shù)面向數(shù)據(jù)流的設(shè)計方法2/3/202385DDCC2進行二級分解,設(shè)計中下層模塊這一步的工作是自頂向下,逐步細化,為第一層的每

溫馨提示

  • 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

提交評論