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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

模塊之間的相對獨立性的度量內聚

模塊功能強度的度量模塊的獨立程度可以由兩個定性標準度量設計原理五、模塊獨立設計目標:力爭高內聚、低耦合因為只有低耦合才能更好的適應變化,更好的復用和擴展。

2/3/20236設計原理五、模塊獨立耦合是對一個軟件結構內各個模塊之間互連程度的度量。耦合強弱取決于模塊間接口的復雜程度,調用模塊的方式,以及通過接口的信息。根據模塊間耦合程度的強弱的標準,劃分耦合類型,共有五種。

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

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

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

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

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

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

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

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

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

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

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

●求平方根

●求解一元二次方程

●計算利息

●判素數(shù)

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

偶然內聚

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

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

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

設計單入口單出口的模塊。

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

A

C1’

A

C2’

C

C

A’

B’

A

C1A

C2

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

程序結構的層次數(shù)。扇出:

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

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

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

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

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

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

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

M

AG

EB

CD

F

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

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

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

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

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

正文加工系統(tǒng)輸入1.0輸出2.0編輯3.0加標題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圖中的每個方框相對應,應該有一張IPO圖描述這個方框代表的模塊的處理過程,每張IPO圖內都應該明顯地標出它所描繪的模塊在H圖中中的編號,以便確定這個模塊在軟件結構中的位置?!背S玫能浖Y構圖形工具2/3/202359常用的軟件結構圖形工具2/3/202360續(xù)借書使用情況4圖書使用3借書還書預約書。。。計算消耗打印報表圖書館系統(tǒng)舉例:說明圖書館系統(tǒng)功能圖(H圖)常用的軟件結構圖形工具2/3/202361舉例:圖書信息管理系統(tǒng)IPO圖

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

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

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

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

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

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

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

調用次序為上層調用下層;

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

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

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

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

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

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

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

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

2/3/202377

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

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

2/3/202379接收變換中心事務處理

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

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

輸入流轉換流輸出流

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論