版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第五章總體設計第5章總體設計
可行性分析
--Why?Who?
需求分析
--What?
設計
--Howdo?
總體設計(概要設計)確定軟件的結構以及各組成成分(子系統(tǒng)或模塊)之間的相互關系
設計詳細設計確定模塊內(nèi)部的算法和數(shù)據(jù)結構,產(chǎn)生描述各模塊程序過程的詳細文檔。
總體設計的任務劃分出組成系統(tǒng)的物理元素—程序、文件、數(shù)據(jù)庫、人工過程和文檔等,但是每個物理元素仍然處于黑盒子級,這些黑盒子里的具體內(nèi)容將在以后仔細設計。設計軟件的結構,也就是要確定系統(tǒng)中每個程序是由哪些模塊組成的,以及這些模塊相互間的關系。總體設計的必要性:可以站在全局高度上,花較少成本,從較抽象的層次上分析對比多種可能的系統(tǒng)實現(xiàn)方案和軟件結構,從中選出最佳方案和最合理的軟件結構,從而用較低成本開發(fā)出較高質(zhì)量的軟件系統(tǒng)。5.1設計過程總體設計過程通常由兩個主要階段組成:
--系統(tǒng)設計階段,確定系統(tǒng)的具體實現(xiàn)方案;
--結構設計階段,確定軟件結構。典型的總體設計過程包括下述9個步驟:1.設想供選擇的方案2.選取合理的方案3.推薦最佳方案4.功能分解5.設計軟件結構6.設計數(shù)據(jù)庫7.制定測試計劃8.書寫文檔9.審查和復審總體設計所書寫的文檔(1)總體設計說明主要內(nèi)容包括用系統(tǒng)流程圖描繪的系統(tǒng)構成方案,組成系統(tǒng)的物理元素清單,成本/效益分析;對最佳方案的概括描述,精化的數(shù)據(jù)流圖,用層次圖或結構圖描繪的軟件結構,用IPO圖或其他工具簡要描述的各個模塊的算法,模塊間的接口關系,以及需求、功能和模塊三者之間的交叉參照關系等等。(2)用戶手冊根據(jù)總體設計階段的結果,修改更正在需求分析階段產(chǎn)生的初步的用戶手冊。(3)測試計劃包括測試策略,測試方案,預期的測試結果,測試進度計劃等等。(4)詳細的實現(xiàn)計劃(5)數(shù)據(jù)庫設計結果概要設計說明書(GB8567—88)5.2設計原理模塊化抽象逐步求精信息隱藏和局部化模塊獨立5.2.1模塊化模塊是由邊界元素限定的相鄰程序元素(例如,數(shù)據(jù)說明,可執(zhí)行的語句)的序列,而且有一個總體標識符代表它。
--如:過程、函數(shù)、子程序、宏、對象等,都可作為模塊。模塊化就是把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構成一個整體,可以完成指定的功能滿足用戶的需求。問題:模塊該如何劃分?設:C(x)為復雜程度函數(shù)
E(x)為決定解決問題x所需的
工作量(時間)函數(shù)對于兩個問題P1和P2,如果C(P1)>C(P2)則:E(P1)>E(P2)
如果C(P1+P2)>C(P1)+C(P2)則:E(P1+P2)>E(P1)+E(P2)這個不等式導致“各個擊破”的結論—把復雜的問題分解成許多容易解決的小問題,原來的問題也就容易解決了。這就是模塊化的根據(jù)。最小成本區(qū)M模塊成本接口成本總成本軟件開發(fā)工作量
模塊數(shù)5.2.2抽象人類在認識復雜現(xiàn)象的過程中使用的最強有力的思維工具是抽象。--就是抽出事物的本質(zhì)特性(共性),而暫時不考慮它們的細節(jié)。處理復雜系統(tǒng)的惟一有效的方法是用層次的方式構造和分析它。--在抽象的最高層次使用問題環(huán)境的語言,以概括的方式敘述問題的解法;在較低抽象層次采用更過程化的方法,把面向問題的術語和面向?qū)崿F(xiàn)的術語結合起來敘述問題的解法;最后在最低的抽象層次用可直接實現(xiàn)的方式敘述問題的解法。軟件工程過程的每一步都是對軟件解法的抽象層次的一次精化。
在可行性研究階段,軟件作為系統(tǒng)的一個完整部件;在需求分析期間,軟件解法是使用在問題環(huán)境內(nèi)熟悉的方式描述的;當由總體設計向詳細設計過渡時,抽象的程度也就隨之減少了;最后,當源程序?qū)懗鰜硪院?,也就達到了抽象的最低層。5.2.3逐步求精逐步求精是人類解決復雜問題時采用的基本方法,也是許多軟件工程技術(例如,規(guī)格說明技術,設計和實現(xiàn)技術)的基礎。逐步求精定義為:“為了能集中精力解決主要問題而盡量推遲對問題細節(jié)的考慮?!盡agicalNumberSeven,PlusorMinusTwo,SomeLimitsonOurCapacityforProcessingInformation
ThePsychologicalReview,1956
G.A.Miller奇妙的數(shù)字7+2,人類信息處理能力的限度逐步求精最初是由NiklausWirth提出的一種自頂向下的設計策略。他本人的概括說明如下:我們對付復雜問題的最重要的辦法是抽象,因此,對一個復雜的問題不應該立刻用計算機指令、數(shù)字和邏輯符號來表示,而應該用較自然的抽象語句來表示,從而得出抽象程序。抽象程序?qū)Τ橄蟮臄?shù)據(jù)進行某些特定的運算并用某些合適的記號(可能是自然語言)來表示。對抽象程序做進一步的分解,并進入下一個抽象層次,這樣的精細化過程一直進行下去,直到程序能被計算機接受為止。這時的程序可能是用某種高級語言或機器指令書寫的。抽象與求精是一對互補的概念。抽象使得設計者能夠說明過程和數(shù)據(jù),同時卻忽略低層細節(jié)。事實上,可以把抽象看作是一種通過忽略多余的細節(jié)同時強調(diào)有關的細節(jié),而實現(xiàn)逐步求精的方法。求精則幫助設計者在設計過程中逐步揭示出低層細節(jié)。這兩個概念都有助于設計者在設計演化過程中創(chuàng)造出完整的設計模型。5.2.4信息隱藏和局部化信息隱藏原理指出:設計和確定模塊,使得一個模塊內(nèi)包含的信息(過程和數(shù)據(jù))對于不需要這些信息的模塊來說,是不能訪問的。局部化的概念和信息隱藏概念是密切相關的。所謂局部化:是指把一些關系密切的軟件元素物理地放得彼此靠近。
--在模塊中使用局部數(shù)據(jù)元素是局部化的一個例子。顯然,局部化有助于實現(xiàn)信息隱藏。如果在測試期間和以后的軟件維護期間需要修改軟件,那么使用信息隱藏原理作為模塊化系統(tǒng)設計的標準就會帶來極大好處。5.2.5模塊獨立
模塊的獨立性是指軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他模塊的接口是簡單的。耦合
模塊之間的相對獨立性的度量內(nèi)聚
模塊功能強度的度量模塊的獨立程度可以由兩個定性標準度量1.耦合
耦合性是程序結構中各個模塊之間相互關聯(lián)的度量它取決于各個模塊之間接口的復雜程度、調(diào)用模塊的方式以及那些信息通過接口。低非直接耦合數(shù)據(jù)耦合標記耦合控制耦合外部耦合公共耦合內(nèi)容耦合
高弱強耦合性模塊獨立性(1)非直接耦合兩個模塊沒有直接關系(模塊1和模塊2),模塊獨立性最強。模塊1模塊2模塊3模塊4(2)數(shù)據(jù)耦合
一模塊調(diào)用另一模塊時,被調(diào)用模塊的輸入、輸出都是簡單的數(shù)據(jù)(若干參數(shù))。屬松散耦合。
開發(fā)票計算水費單價數(shù)量金額(3)標記耦合(特征耦合)
如兩個模塊通過傳遞數(shù)據(jù)結構(不是簡單數(shù)據(jù),而是記錄、數(shù)組等)加以聯(lián)系,或都與一個數(shù)據(jù)結構有關系,則稱這兩個模塊間存在標記偶合。計算電費計算水費計算水電費住戶情況水費電費住戶情況“住戶情況”是一個數(shù)據(jù)結構,圖中模塊都與此數(shù)據(jù)結構有關.“計算水費”和“計算電費”本無關,由于引用了此數(shù)據(jù)結構產(chǎn)生依賴關系,它們之間也是標記偶合.(4)控制耦合
A模塊flagf1Bf2fn……如果一個模塊通過傳送開關、標志、名字等控制信息,明顯地控制選擇另一模塊的功能就是控制耦合。(5)外部耦合一組模塊均與同一外部環(huán)境關聯(lián)(例如,I/O模塊與特定的設備、格式和通信協(xié)議相關聯(lián)),它們之間便存在外部耦合。外部偶合必不可少,但這種模塊數(shù)目應盡量少。(6)公共環(huán)境耦合(公共數(shù)據(jù)區(qū)耦合)
一組模塊引用同一個公用數(shù)據(jù)區(qū)(也稱全局數(shù)據(jù)區(qū)、公共數(shù)據(jù)環(huán)境)。公共數(shù)據(jù)區(qū)指:全局數(shù)據(jù)結構共享通訊區(qū)內(nèi)存公共覆蓋區(qū)等
ABC公共數(shù)據(jù)區(qū)公共耦合存在的問題:(1)軟件可理解性降低(2)診斷錯誤困難(3)軟件可維護性差,(4)軟件可靠性差(公共數(shù)據(jù)區(qū)及全程變量無保護措施)慎用公共數(shù)據(jù)區(qū)和全程變量!!!(7)內(nèi)容耦合AB一模塊直接訪問另一模塊的內(nèi)部信息(程序代碼或數(shù)據(jù))AB模塊代碼重疊Entry1
……Entry2
……多入口模塊不正常轉(zhuǎn)入另一模塊最不好的耦合形式!以上給出了7種耦合類型,這只是從耦合的機制上所做的分類,按耦合的強弱程度的排列只是相對的關系。但它給設計人員在設計程序結構時提供了一決策準則。實際上,開始時兩個模塊之間的耦合不只是一種類型,而是多種類型的混合。這就要求設計人員按照實際情況進行分析、比較和分析,逐步加以改進,以提高模塊的獨立性??傊?,耦合是影響軟件復雜程度的一個重要因素。應該采取下述設計原則:盡量使用數(shù)據(jù)耦合,少用控制耦合和特征耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。2.內(nèi)聚一個模塊內(nèi)部元素在功能上相互關聯(lián)的強度設計目標:高內(nèi)聚,模塊在軟件過程中完成單一的任務(1)功能內(nèi)聚(FunctionalCohesion)一個模塊中各個部分都是完成某一具體功能必不可少的組成部分,或者說該模塊中所有部分都是為了完成一項具體功能而協(xié)同工作,緊密聯(lián)系,不可分割的。則稱該模塊為功能內(nèi)聚模塊。
內(nèi)聚性最強(2)信息內(nèi)聚(InformationalCohesion)這種模塊完成多個功能,各個功能都在同一數(shù)據(jù)結構上操作,每一項功能有一個唯一的入口點。這個模塊將根據(jù)不同的要求,確定該執(zhí)行哪一個功能。由于這個模塊的所有功能都是基于同一個數(shù)據(jù)結構(符號表),因此,它是一個信息內(nèi)聚的模塊。信息內(nèi)聚模塊可以看成是多個功能內(nèi)聚模塊的組合,并且達到信息的隱蔽。即把某個數(shù)據(jù)結構、資源或設備隱蔽在一個模塊內(nèi),不為別的模塊所知曉(3)通信內(nèi)聚(CommunicationCohesion)如果一個模塊內(nèi)各功能部分都使用了相同的輸入數(shù)據(jù),或產(chǎn)生了相同的輸出數(shù)據(jù),則稱之為通信內(nèi)聚模塊。通常,通信內(nèi)聚模塊是通過數(shù)據(jù)流圖來定義的。(4)過程內(nèi)聚(ProceduralCohesion)模塊內(nèi)各處理成分相關,且必須以特定次序執(zhí)行讀入成績單審查成績單統(tǒng)計成績打印成績讀入并審查成績單統(tǒng)計并打印成績單(5)時間內(nèi)聚(ClassicalCohesion)
時間內(nèi)聚又稱為經(jīng)典內(nèi)聚。這種模塊大多為多功能模塊,但模塊的各個功能的執(zhí)行與時間有關,通常要求所有功能必須在同一時間段內(nèi)執(zhí)行。例如初始化模塊和終止模塊,系統(tǒng)結束模塊、緊急故障處理模塊等均是時間性聚合模塊
。(6)邏輯內(nèi)聚(LogicalCohesion)把幾種相關功能(邏輯上相似的功能)組合在一模塊內(nèi),每次調(diào)用由傳給模塊的參數(shù)確定執(zhí)行哪種功能。SXYZWABCDSXYZWABCD(7)巧合內(nèi)聚(CoincidentalCohesion)當模塊內(nèi)各部分之間沒有聯(lián)系,或者即使有聯(lián)系,這種聯(lián)也很松散,則稱這種模塊為巧合內(nèi)聚模塊,它是內(nèi)聚程度最低的模塊。模塊M中的三個語句沒有任何聯(lián)系缺點:可理解性差,可修改性差內(nèi)聚與耦合密切相關,同其它模塊強耦合的模塊意味著弱內(nèi)聚,強內(nèi)聚模塊意味著與其它模塊間松散耦合。
設計目標:
力爭強內(nèi)聚、弱耦合耦合、內(nèi)聚與模塊獨立性關系:耦合與內(nèi)聚都是模塊獨立性的定性標準,都反映模塊獨立性的良好程度。但耦合是直接的主導因素,內(nèi)聚則輔助耦合共同對模塊獨立性進行衡量。5.3啟發(fā)規(guī)則改進軟件結構提高模塊獨立性。模塊規(guī)模應該適中。深度、寬度、扇出和扇入都應適當。模塊的作用域應該在控制域之內(nèi)。5.力爭降低模塊接口的復雜程度。6.設計單入口單出口的模塊。7.模塊功能應該可以預測。5.4軟件設計過程1.制定規(guī)范在進入軟件開發(fā)階段之初,首先應為軟件開發(fā)組制定在設計時應該共同遵守的標準,以便協(xié)調(diào)組內(nèi)各成員的工作。包括:
--閱讀和理解軟件需求說明書,確認用戶要求能否實現(xiàn),明確實現(xiàn)的條件,從而確定設計的目標,以及它們的優(yōu)先順序
--根據(jù)目標確定最合適的設計方法
--規(guī)定設計文檔的編制標準
--規(guī)定編碼的信息形式,與硬件,操作系統(tǒng)的接口規(guī)約,命名規(guī)則2.軟件系統(tǒng)結構的總體設計基于功能層次結構建立系統(tǒng)
--采用某種設計方法,將系統(tǒng)按功能劃分成模塊的層次結構
--確定每個模塊的功能--建立與已確定的軟件需求的對應關系
--確定模塊間的調(diào)用關系
--確定模塊間的接口
--評估模塊劃分的質(zhì)量5.4軟件設計過程3.處理方式設計確定為實現(xiàn)系統(tǒng)的功能需求所必需的算法,評估算法的性能確定為滿足系統(tǒng)的性能需求所必需的算法和模塊間的控制方式周轉(zhuǎn)時間響應時間吞吐量精度確定外部信號的接收發(fā)送形式4.數(shù)據(jù)結構設計確定軟件涉及的文件系統(tǒng)的結構以及數(shù)據(jù)庫的模式、子模式,進行數(shù)據(jù)完整性和安全性的設計確定輸入,輸出文件的詳細的數(shù)據(jù)結構結合算法設計,確定算法所必需的邏輯數(shù)據(jù)結構及其操作確定對邏輯數(shù)據(jù)結構所必需的那些操作的程序模塊(軟件包)5.4軟件設計過程4.數(shù)據(jù)結構設計(續(xù))限制和確定各個數(shù)據(jù)設計決策的影響范圍若需要與操作系統(tǒng)或調(diào)度程序接口所必須的控制表等數(shù)據(jù)時,確定其詳細的數(shù)據(jù)結構和使用規(guī)則數(shù)據(jù)的保護性設計防衛(wèi)性設計:在軟件設計中就插入自動檢錯,報錯和糾錯的功能一致性設計:保證軟件運行過程中所使用的數(shù)據(jù)的類型和取值范圍不變在并發(fā)處理過程中使用封鎖和解除封鎖機制保持數(shù)據(jù)不被破壞冗余性設計:針對同一問題,由兩個開發(fā)者采用不同的程序設計風格不同的算法設計軟件,當兩者運行結果之差不在允許范圍內(nèi)時,利用檢錯系統(tǒng)予以糾正,或使用表決技術決定一個正確結果。5.4軟件設計過程5.可靠性設計可靠性設計也叫做質(zhì)量設計在運行過程中,為了適應環(huán)境的變化和用戶新的要求,需經(jīng)常對軟件進行改造和修正。在軟件開發(fā)的一開始就要確定軟件可靠性和其它質(zhì)量指標,考慮相應措施,以使得軟件易于修改和易于維護。6.編寫概要設計階段的文檔概要設計階段完成時應編寫以下文檔:概要設計說明書數(shù)據(jù)庫設計說明書用戶手冊制定初步的測試計劃5.4軟件設計過程7.概要設計評審可追溯性:確認該設計是否復蓋了所有已確定的軟件需求,軟件每一成份是否可追溯到某一項需求接口:確認該軟件的內(nèi)部接口與外部接口是否已經(jīng)明確定義。模塊是否滿足高內(nèi)聚和低耦合的要求。模塊作用范圍是否在其控制范圍之內(nèi)風險:確認該設計在現(xiàn)有技術條件下和預算范圍內(nèi)是否能按時實現(xiàn)實用性:確認該設計對于需求的解決方案是否實用技術清晰度:確認該設計是否以一種易于翻譯成代碼的形式表達可維護性:確認該設計是否考慮了方便未來的維護質(zhì)量:確認該設計是否表現(xiàn)出良好的質(zhì)量特征各種選擇方案:看是否考慮過其它方案,比較各種選擇方案的標準是什么限制:評估對該軟件的限制是否現(xiàn)實,是否與需求一致其它具體問題:對于文檔、可測試性、設計過程等進行評估5.5描繪軟件結構的圖形工具1、層次圖和HIPO圖IBM公司發(fā)明的HIPO圖:
層次圖
+輸入/處理/輸出圖
(H圖)(IPO圖)(HiberarchyInputProcessOutput)正文加工系統(tǒng)的層次圖2、結構圖(SC--StructureChart)
Yourdon提出的結構圖是進行軟件結構設計的另一個有力工具。結構圖和層次圖類似,也是描繪軟件結構的圖形工具。結構圖反映程序中模塊之間的層次調(diào)用關系和聯(lián)系:它以特定的符號表示模塊、模塊間的調(diào)用關系和模塊間信息的傳遞。①
模塊:模塊用矩形框表示,并用模塊的名字標記它。②
模塊的調(diào)用關系和接口:模塊之間用單向箭頭聯(lián)結,箭頭從調(diào)用模塊指向被調(diào)用模塊③
模塊間的信息傳遞:當一個模塊調(diào)用另一個模塊時,調(diào)用模塊把數(shù)據(jù)或控制信息傳送給被調(diào)用模塊,以使被調(diào)用模塊能夠運行。而被調(diào)用模塊在執(zhí)行過程中又把它產(chǎn)生的數(shù)據(jù)或控制信息回送給調(diào)用模塊。④
在模塊A的箭頭尾部標以一個菱形符號,表示模塊A有條件地調(diào)用另一個模塊B。當一個在調(diào)用箭頭尾部標以一個弧形符號,表示模塊A反復調(diào)用模塊C和模塊D。程序的系統(tǒng)結構圖5.6面向數(shù)據(jù)流的設計方法
---結構化設計(SD-StructuredDesign)面向數(shù)據(jù)流的設計方法的目標是給出設計軟件結構的一個系統(tǒng)化的途徑。面向數(shù)據(jù)流的設計要解決的任務,就是在需求分析的基礎上,將表示系統(tǒng)邏輯模型的DFD圖映射(Mapping)成軟件系統(tǒng)結構的初始設計描述。目標系統(tǒng)的DFDSD目標系統(tǒng)的SC結構化設計方法(SD)1)首先研究、分析和審查數(shù)據(jù)流圖。從軟件的需求規(guī)格說明中弄清數(shù)據(jù)流加工的過程,對于發(fā)現(xiàn)的問題及時解決。2)然后根據(jù)數(shù)據(jù)流圖決定問題的類型。數(shù)據(jù)處理問題典型的類型有兩種:變換型和事務型。針對兩種不同的類型分別進行分析處理。3)由數(shù)據(jù)流圖推導出系統(tǒng)的初始結構圖。4)利用一些啟發(fā)式原則來改進系統(tǒng)的初始結構圖,直到得到符合要求的結構圖為止。5)修改和補充數(shù)據(jù)詞典6)制定測試計劃。在系統(tǒng)結構圖中的模塊傳入模塊
─從下屬模塊取得數(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)和管理的模塊。變換型系統(tǒng)結構圖變換型數(shù)據(jù)處理問題的工作過程大致分為三步,即取得數(shù)據(jù),變換數(shù)據(jù)和給出數(shù)據(jù)。相應于取得數(shù)據(jù)、變換數(shù)據(jù)、給出數(shù)據(jù),變換型系統(tǒng)結構圖由輸入、中心變換和輸出等三部分組成。事務型系統(tǒng)結構圖它接受一項事務,根據(jù)事務處理的特點和性質(zhì),選擇分派一個適當?shù)奶幚韱卧缓蠼o出結果。在事務型系統(tǒng)結構圖中,事務中心模塊按所接受的事務的類型,選擇某一事務處理模塊執(zhí)行。各事務處理模塊并列。每個事務處理模塊可能要調(diào)用若干個操作模塊,而操作模塊又可能調(diào)用若干個細節(jié)模塊。變換分析變換分析方法由以下四步組成:1)重畫數(shù)據(jù)流圖;2)區(qū)分有效(邏輯)輸入、有效(邏輯)輸出和中心變換部分;3)進行一級分解,設計上層模塊;4)進行二級分解,設計輸入、輸出和中心變換部分的中、下層模塊。(1)在DFD
圖上標出邏輯輸入、邏輯輸出和變換中心的分界AeBaCbDcEdPQRwuvwuvrp變換中心c,e
邏輯輸入w,u
邏輯輸出--------具有變換型數(shù)據(jù)流圖(2)完成第一級分解AabcPwuvrpBCDdeEQRWUVMcMAMTMEC,eC,eU,wU,w變換中心頂層第一層第一級分解后的SC圖(含協(xié)調(diào)、傳入、變換、傳出模塊)第一級分解后的SC圖(另一種畫法)McMA1ME1C
eUMA2QPRME2e
c,p
pr
r
w,uwAabcPwuvrpBCDdeEQRWUV變換中心MA對邏輯輸入的分解CEBADabdecAabcPwuvrpBCDdeEQRWUV變換中心ME對輸出的分解WUVvuwMTQPR
eC,prU,w對變換中心加工的分解
prw,u(3)完成第二級分解MACBAEDMTQPR從變換分析導出的初始SC
圖MEWUVMCc,eW,uW,uC,e(4)獲得完整的SC
圖①
在選擇模塊設計的次序時,必須對一個模塊的全部直接下屬模塊都設計完成之后,才能轉(zhuǎn)向另一個模塊的下層模塊的設計。②
在設計下層模塊時,應考慮模塊的耦合和內(nèi)聚問題,以提高初始結構圖的質(zhì)量。運用變換分析方法建立系統(tǒng)的SC時需注意以下幾點:③
使用“黑箱”技術:在設計當前模塊時,先把這個模塊的所有下層模塊定義成“黑箱”,在設計中利用它們時,暫時不考慮其內(nèi)部結構和實現(xiàn)。在這一步定義好的“黑箱”,在下一步就可以對它們進行設計和加工。這樣,又會導致更多的“黑箱”。最后,全部“黑箱”的內(nèi)容和結構應完全被確定。④在模塊劃分時,一個模塊的直接下屬模塊一般在5個左右。如果直接下屬模塊超過10個,可設立中間層次。⑤如果出現(xiàn)了以下情況,就停止模塊的功能分解:
當模塊不能再細分為明顯的子任務時;
當分解成用戶提供的模塊或程序庫的子程序時;
當模塊的界面是輸入/輸出設備傳送的信息時;
當模塊不宜再分解得過小時。運用變換分析方法建立系統(tǒng)的SC時需注意以下幾點:事務分析----是將具有事務型的DFD圖導出SC圖IALMNOBCDEFGH事務中心事務源IALMNOBCDEFGH主模塊給出H取得ALMNA
GHBECF
D變換分析是軟件系統(tǒng)結構設計的主要方法。一般,一個大型的軟件系統(tǒng)是變換型結構和事務型結構的混合結構。所以,我們通常利用以變換分析為主,事務分析為輔的方式進行軟件結構設計。
設計的后處理為每一個模塊寫一份處理說明為每一個模塊提供一份接口說明確定全局數(shù)據(jù)結構和局部數(shù)據(jù)結構指出所有的設計約束和限制進行概要設計的評審進行設計的優(yōu)化(如果需要和可能的話)5.6面向數(shù)據(jù)流的設計方法面向數(shù)據(jù)流的設計方法的目標是給出設計軟件結構的一個系統(tǒng)化的途徑。在軟件工程的需求分析階段,通常用數(shù)據(jù)流圖描繪信息在系統(tǒng)中加工和流動的情況。面向數(shù)據(jù)流的設計方法定義了一些不同的“映射”,利用這些映射可以把數(shù)據(jù)流圖變換成軟件結構。面向數(shù)據(jù)流的設計方法理論上可以設計任何軟件的結構。通常所說的結構化設計方法(簡稱SD方法),也就是基于數(shù)據(jù)流的設計方法。5.6.1概念面向數(shù)據(jù)流的設計方法把信息流映射成軟件結構,信息流的類型決定了映射的方法。信息流有下述兩種類型。
變換流事物流1.變換流特征:具有明確的輸入、變換和輸出的DFD
參看圖5.8
信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。輸入變換輸出1.變換流圖5.8變換流1.變換流變換流舉例格式檢查處理顯示輸入信息正確信息結果輸出數(shù)據(jù)2.事務流基本系統(tǒng)模型意味著變換流,因此,原則上所有信息流都可以歸結為這一類。但是,當數(shù)據(jù)流圖具有和圖5.9類似的形狀時,這種數(shù)據(jù)流是“以事務為中心的”,也就是說,數(shù)據(jù)沿輸入通路到達一個處理T,這個處理根據(jù)輸入數(shù)據(jù)的類型在若干個動作序列中選出一個來執(zhí)行。這類數(shù)據(jù)流應該劃為一類特殊的數(shù)據(jù)流,稱為事務流。2.事務流圖5.9中的處理T稱為事務中心,它完成下述任務:(1)接收輸入數(shù)據(jù)(輸入數(shù)據(jù)又稱為事務);(2)分析每個事務以確定它的類型;(3)根據(jù)事務類型選取一條活動通路。2.事務流圖5.9事務流HGFEDCB2.事務流事務型數(shù)據(jù)流圖舉例
INMLOA大型DFD中,變換流和事務流共存T輸出變換輸入3.設計過程見圖5.10正確“變換”用啟發(fā)式設計規(guī)則精化軟件結構錯誤“事務”精化數(shù)據(jù)流圖流類型區(qū)分事務中心和數(shù)據(jù)接收通路區(qū)分輸入和輸出分支映射成事務結構映射成變換結構導出接口描述和全程數(shù)據(jù)結構復查詳細設計事務分析變換分析系統(tǒng)結構可歸納為:變換分析變換型結構事務分析事務型結構主模塊輸入模塊變換模塊輸出模塊主模塊接收模塊調(diào)度模塊動作模塊1動作模塊2動作模塊35.6.2變換分析變換分析是一系列設計步驟的總稱,經(jīng)過這些步驟把具有變換流特點的數(shù)據(jù)流圖按預先確定的模式映射成軟件結構例子汽車數(shù)字儀表板假設的儀表板將完成下述功能:(1)通過模數(shù)轉(zhuǎn)換實現(xiàn)傳感器和微處理機接口;(2)在發(fā)光二極管面板上顯示數(shù)據(jù);(3)指示每小時英里數(shù)(mph),行駛的里程,每加侖油行駛的英里數(shù)(mpg)等等;(4)指示加速或減速;(5)超速警告:如果車速超過55英里/小時,則發(fā)出超速警告鈴聲。微處理機里程表車速表油效表超速報警加速/減速指示油管系統(tǒng)轉(zhuǎn)數(shù)計數(shù)器流量傳感器A/D5.6.2變換分析設計步驟:復查基本系統(tǒng)模型復查并精化數(shù)據(jù)流圖確定數(shù)據(jù)流圖具有變換特性還是事務特性確定輸入輸出流的邊界,孤立出變換中心完成第一級分解完成第二級分解對上述的結果進一步精化具有邊界的數(shù)據(jù)流圖5.6.2變換分析完成第一級分解軟件結構代表對控制的自頂向下的分配,所謂的分解也就是分配控制的過程。變換型數(shù)據(jù)流圖被映射成一個特殊的軟件結構,這個結構控制輸入、變換和輸出等信息處理過程。分解方法:位于軟件結構最頂層的控制模塊Cm協(xié)調(diào)下述從屬的控制功能:輸入信息處理控制模塊Ca,協(xié)調(diào)對所有輸入數(shù)據(jù)的接收變換中心控制模塊Ct,管理對內(nèi)部形式的數(shù)據(jù)的所有操作輸出信息處理控制模塊Ce,協(xié)調(diào)輸出信息的產(chǎn)生過程5.6.2變換分析圖5.13完成第一級分解的方法5.6.2變換分析圖5.14第一級分解的結果5.6.2變換分析完成第二級分解把數(shù)據(jù)流圖中的每個處理映射成軟件結構中一個適當?shù)哪K方法:把輸入通路中每個處理映射成軟件結構中Ca控制下的一個低層模塊;把輸出通路中每個處理映射成直接或間接受模塊Ce控制的一個低層模塊;最后把變換中心內(nèi)的每個處理映射成受Ct控制的一個模塊5.6.2變換分析圖5.15完成第二級分解的方法5.6.2變換分析對于數(shù)字儀表板系統(tǒng)的例子,第二級分解的結果分別用圖5.16,5.17和5.18描繪。這3張圖表示對軟件結構的初步設計結果。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 年度光伏組件背板產(chǎn)業(yè)分析報告
- 二零二五版共享辦公空間租賃管理合同2篇
- 2024-2025學年新教材高中歷史第八單元中華民族的抗日戰(zhàn)爭和人民解放戰(zhàn)爭第23課從局部抗戰(zhàn)到全面抗戰(zhàn)學案新人教版必修中外歷史綱要上
- 2024-2025學年高中政治專題三信守合同與違約2訂立合同有學問訓練含解析新人教版選修5
- 2024-2025學年新教材高中英語UNIT1TEENAGELIFESectionⅡDiscoveringUsefulStructures課時作業(yè)含解析新人教版必修第一冊
- 2025年度臨時勞動合同范本(區(qū)塊鏈技術應用)4篇
- 2025年度城市綠化工程合同及后期養(yǎng)護服務3篇
- 2024租賃合同(辦公設備)
- 2025年度智慧城市建設戰(zhàn)略合作合同范本3篇
- 2025年度監(jiān)獄門衛(wèi)安全責任書3篇
- 巖土工程勘察課件0巖土工程勘察
- 《腎上腺腫瘤》課件
- 2024-2030年中國典當行業(yè)發(fā)展前景預測及融資策略分析報告
- 《乘用車越野性能主觀評價方法》
- 幼師個人成長發(fā)展規(guī)劃
- 2024-2025學年北師大版高二上學期期末英語試題及解答參考
- 動物醫(yī)學類專業(yè)生涯發(fā)展展示
- 批發(fā)面包采購合同范本
- 乘風化麟 蛇我其誰 2025XX集團年終總結暨頒獎盛典
- 2024年大數(shù)據(jù)分析公司與中國政府合作協(xié)議
- 一年級數(shù)學(上)計算題專項練習匯編
評論
0/150
提交評論