版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第4章 概要設計4.1 概要設計的概念4.2 模塊獨立性4.3 結構化設計方法4.4 數(shù)據(jù)設計4.1概要設計的概念軟件設計是把軟件需求變?yōu)檐浖木唧w方案軟件設計包括兩個階段:概要設計和詳細設計概要設計也稱為總體設計,在這個階段需要確定軟件的總體結構。在概要設計中,將軟件系統(tǒng)分解為多個模塊,并確定每個模塊的功能和模塊之間的外部接口。概要設計階段文檔:“概要設計說明書”主要由模塊結構圖、模塊說明等組成。概要設計可分為數(shù)據(jù)設計和系統(tǒng)結構設計。4.1概要設計的概念概要設計的任務:制定規(guī)范總體結構設計:軟件總體結構圖處理方式設計:功能需求和非功能需求數(shù)據(jù)設計:包括數(shù)據(jù)結構設計、文件設計和數(shù)據(jù)庫設計質(zhì)量設
2、計文檔設計:生成概要設計說明書、數(shù)據(jù)庫設計說明書、用戶手冊和軟件測試計劃評審概要設計4.1概要設計的概念概要設計的步驟:設想供選擇的方案推薦最佳方案功能分解設計軟件結構:面向數(shù)據(jù)流的設計方法數(shù)據(jù)設計制訂測試計劃書寫文檔:概要設計規(guī)格說明書、用戶手冊、測試計劃、詳細的實現(xiàn)計劃等審查和復審4.1概要設計的概念概要設計的工具HIPO圖(Hierarchy Plus Input-Process-Output):由層次圖(HC圖)加上IPO圖(Input-Process-Output)組成。層次圖中的矩形框表示模塊,而針對層次圖中的每一個模塊再配上IPO圖來表達輸入、處理、輸出。方框間的連線表示調(diào)用關系
3、。最頂層的方框代表主控模塊,它調(diào)用下層模塊完成軟件系統(tǒng)的功能。4.1概要設計的概念4.1概要設計的概念(軟件/模塊)結構圖(SC圖,Structure Chat)模塊:用矩形框來表示模塊,框內(nèi)標明模塊的名字或主要功能;模塊間的控制關系:矩形框之間的帶箭頭的連線表示模塊的調(diào)用關系。(高層調(diào)用低層)模塊間的消息傳遞:用帶注釋的箭頭表示模塊調(diào)用過程中傳入和傳出模塊的數(shù)據(jù)流。4.1概要設計的概念附加符號:可以表示模塊的選擇調(diào)用或循環(huán)調(diào)用。選擇調(diào)用:用菱形符號表示循環(huán)調(diào)用:用疊加在調(diào)用線始端的環(huán)形箭頭表示2022/9/2484.1概要設計的概念如果希望進一步標明傳遞的信息是數(shù)據(jù)還是控制信息,則可以利用注
4、釋箭頭尾部的形狀來區(qū)分:尾部是空心圓表示傳遞的是數(shù)據(jù),實心圓表示傳遞的是控制信息。2022/9/2494.1概要設計的概念6種模塊:傳入模塊、傳出模塊、變換模塊、源模塊、漏模塊、控制模塊。4.1概要設計的概念結構圖的形態(tài)特征深度寬度扇出扇入注意事項模塊之間不同名調(diào)用關系只能從上到下不嚴格表示模塊的調(diào)用次序,習慣上從左到右114.1概要設計的概念結構圖中模塊的設計準則改進軟件結構,提高模塊獨立性(要求:低耦合、高內(nèi)聚)模塊規(guī)模要適中深度、寬度、扇入、扇出要恰當降低模塊接口復雜性設計單入口單出口的模塊2022/9/24124.2 模塊獨立性模塊是軟件設計的最小單位。(單元)具有一定功能的可以用名詞
5、調(diào)用的程序語句集合。具有一些基本屬性,如:明確的功能、規(guī)格定義,與其他部分明確的接口定義等,可以清晰地與同一程序的其他部分劃分開來。在結構化編程語言中,一個函數(shù)就是一個單元。在面向對象語言中,一個類或者一個類方法就是一個單元。目前,在某種意義上單元的概念已經(jīng)擴展為組件(component)。4.2 模塊獨立性模塊化就是把程序劃分成若干個模塊,分別實現(xiàn)。模塊化論據(jù):函數(shù)C(X)定義了問題X的復雜性,函數(shù)E(X)定義了求解問題X所需要的工作量(按時間計)對于問題P1和P2,如果C(P1) C(P2),則E(P1)E(P2)C(P1+P2)C(P1)+C(P2)E(P1+P2)E(P1)+E(P2)
6、結論:一個復雜問題分割成若干個容易解決、容易管理的小問題后更易于求解。4.2 模塊獨立性對每個問題都存在著某個最佳模塊數(shù)目,它能使得軟件成本最小。4.2 模塊獨立性模塊化的優(yōu)點:可以使軟件結構清晰,容易設計、容易閱讀和理解、容易測試和調(diào)試。提高軟件的可靠性。有助于軟件開發(fā)工程的組織管理。4.2 模塊獨立性模塊獨立性的度量標準:耦合(coupling)和內(nèi)聚(cohesion)耦合是模塊之間相對獨立性的量度內(nèi)聚是模塊功能相對強度的量度耦合性是對軟件程序結構中各個模塊之間相互關聯(lián)程度的一種度量。在設計軟件時應追求盡可能低耦合的系統(tǒng)。4.2 模塊獨立性耦合分為七級:間接耦合(nondirect co
7、upling):兩模塊中任一個都不依賴對方而能獨立工作,也就是說兩個模塊之間沒有直接關系,它們之間的聯(lián)系完全是通過主模塊的控制和調(diào)用來實現(xiàn)的。數(shù)據(jù)耦合(data coupling):兩模塊間通過參數(shù)交換信息,而傳遞的信息僅限于數(shù)據(jù),或者說一個模塊訪問另一個模塊時,彼此之間是通過數(shù)據(jù)參數(shù)(而不是控制參數(shù)、公共數(shù)據(jù)結構或外部變量)來交換輸入、輸出信息的。4.2 模塊獨立性特征耦合(stamp coupling)/標記耦合:兩個模塊都要使用同一數(shù)據(jù)結構的一部分,不是采用全程公共數(shù)據(jù)區(qū)共享,而是通過模塊接口傳遞數(shù)據(jù)結構的一部分(不是簡單的數(shù)據(jù))。控制耦合(control coupling):兩模塊間通
8、過參數(shù)交換信息,而傳遞的信息中含有控制信息(控制參數(shù))。4.2 模塊獨立性外部耦合(external coupling):若干模塊均與同一個外部環(huán)境關聯(lián)。一組模塊都訪問同一全局簡單變量而不是同一全局數(shù)據(jù)結構,而且不是通過參數(shù)表傳遞該全局變量的信息。公共耦合(common coupling):若干模塊通過全局的數(shù)據(jù)環(huán)境相互作用時(一組模塊都訪問同一個公共數(shù)據(jù)環(huán)境)。松散公共耦合、緊密公共耦合4.2 模塊獨立性內(nèi)容耦合(content coupling)一個模塊直接訪問另一個模塊的內(nèi)部數(shù)據(jù);一個模塊不通過正常入口轉到另一模塊內(nèi)部;兩個模塊有一部分程序代碼重疊;一個模塊有多個入口;4.2 模塊獨立性
9、設計軟件時應盡量使用數(shù)據(jù)耦合,減少控制耦合,限制環(huán)境耦合和公共耦合,杜絕內(nèi)容耦合。(低耦合)模塊易被獨立理解、編寫、修改模塊中的錯誤不易蔓延4.2 模塊獨立性為了降低耦合度,可以采用消耦(decoupling)技術根據(jù)問題的特點,選擇適當?shù)鸟詈项愋徒档湍K接口的復雜性把模塊的通信信息放在緩沖區(qū)中4.2 模塊獨立性內(nèi)聚性標志一個模塊內(nèi)部各成分彼此結合的緊密程度。內(nèi)聚和耦合是相互關聯(lián)的。在程序結構中各模塊的內(nèi)聚程度越高,模塊間的耦合程度就越低。但并不絕對。軟件概要設計的目標是力求增加模塊的內(nèi)聚,盡量減少模塊間的耦合。增加內(nèi)聚比減少耦合更重要。4.2 模塊獨立性內(nèi)聚分為七級:低級內(nèi)聚偶然性內(nèi)聚(co
10、incidental cohesion):一個模塊內(nèi)各成分為完成一組功能而組合在一起,它們相互之間即使有關系,也很松散或者模塊內(nèi)各部分之間就沒有聯(lián)系。邏輯性內(nèi)聚(logical cohesion):一個模塊完成的諸任務邏輯上相關。時間性內(nèi)聚(temporal cohesion)/經(jīng)典內(nèi)聚:一個模塊包含的諸任務必須在同一時間段內(nèi)執(zhí)行。4.2 模塊獨立性中級內(nèi)聚過程性內(nèi)聚(procedural cohesion):模塊內(nèi)各個組成部分的處理動作各不相同、彼此相關,并且受同一控制流支配,必須按特定的次序執(zhí)行。通信性內(nèi)聚(communicational cohesion):一個模塊內(nèi)各功能部分都使用了相
11、同的輸入數(shù)據(jù),或產(chǎn)生了相同的輸出數(shù)據(jù)。4.2 模塊獨立性高級內(nèi)聚順序性內(nèi)聚(sequential cohesion):一個模塊內(nèi)的各個組成部分順序執(zhí)行幾個處理動作,前一個處理動作產(chǎn)生的輸出數(shù)據(jù)是下一個處理工作的輸入數(shù)據(jù)。功能性內(nèi)聚(functional cohesion):模塊內(nèi)所有成分形成一個整體,完成單個功能。黑盒特性盡可能使模塊達到功能內(nèi)聚4.2 模塊獨立性4.3 結構化設計方法結構化設計方法( Structured Design,SD)基于數(shù)據(jù)流的設計方法SA與SD相銜接:利用映射把數(shù)據(jù)流圖(信息流)變換成軟件結構,即模塊結構圖信息流有變換流和事務流兩種類型。4.3 結構化設計方法變換
12、流(transform flow)特點:從同一數(shù)據(jù)源進入系統(tǒng)的數(shù)據(jù),它在數(shù)據(jù)流圖中流動的邏輯路徑是相同的。(以變換為中心)4.3 結構化設計方法變換流的DFD是一個線性結構,由輸入、變換和輸出三部分組成。變換是系統(tǒng)的變換中心,變換輸入端的數(shù)據(jù)流為系統(tǒng)的邏輯輸入,輸出端為邏輯輸出。而系統(tǒng)輸入端為物理輸入,輸出端為物理輸出。變換型數(shù)據(jù)處理的工作過程大致分為三步,即取得數(shù)據(jù)、變換數(shù)據(jù)和給出數(shù)據(jù)。4.3 結構化設計方法事務流(transaction flow)特點:“以事務為中心”,數(shù)據(jù)沿輸入通路到達一個處理T,這個處理(事務中心)根據(jù)輸入數(shù)據(jù)的類型在若干個動作序列中選出一個來執(zhí)行。4.3 結構化設計
13、方法結構化設計方法(Yourdon):數(shù)據(jù)流圖結構圖基本步驟:分析DFD,即進行系統(tǒng)的結構化分析。確定DFD的特點及邊界,即區(qū)分事務流、變換流。映射為軟件結構。設計映射策略:變換分析和事務分析。細化后,得到初始結構圖。獲得最終的軟件結構圖。耦合性度量和內(nèi)聚性度量。4.3 結構化設計方法變換分析:把具有變換流特點的數(shù)據(jù)流圖按預先確定的模式映射成軟件結構。步驟:重新分析數(shù)據(jù)流圖在數(shù)據(jù)流圖上區(qū)分系統(tǒng)的邏輯輸入、邏輯輸出和中心變換部分確定中心變換4.3 結構化設計方法試探方法從數(shù)據(jù)流圖的物理輸入端開始,一步一步向系統(tǒng)的中間移動,找到離物理輸入端最遠的,但仍被看做是系統(tǒng)輸入的數(shù)據(jù)流,即系統(tǒng)的邏輯輸入。從
14、數(shù)據(jù)流圖的物理輸出端開始,一步一步向系統(tǒng)的中間移動,找到離物理輸出端最遠的,但仍被看作是系統(tǒng)輸出的數(shù)據(jù)流,即系統(tǒng)的邏輯輸出。從物理輸入端到邏輯輸入,構成系統(tǒng)的輸入部分;從物理輸出端到邏輯輸出,構成輸出部分;夾在輸入部分和輸出部分之間的就是中心變換部分。4.3 結構化設計方法進行一級分解,設計系統(tǒng)模塊結構的頂層和第一層首先設計一個主模塊,并用系統(tǒng)的名字為它命名,然后將它畫在與中心變換相對應的位置上。作為系統(tǒng)的頂層,它的功能是調(diào)用下一層模塊,完成系統(tǒng)所要做的各項工作。程序結構的第一層可以這樣設計:為每一個邏輯輸入設計一個輸入模塊,它的功能是為主模塊提供數(shù)據(jù);為每一個邏輯輸出設計一個輸出模塊,它的功
15、能是將主模塊提供的數(shù)據(jù)輸出;為中心變換設計一個變換模塊,它的功能是將邏輯輸入轉換成邏輯輸出。4.3 結構化設計方法進行二級分解,設計輸入、中心變換、輸出部分的中、下層模塊對于每一個邏輯輸入,在數(shù)據(jù)流圖上向物理輸入端方向逆向移動,只要還有加工,就在相應輸入模塊下面建立一個輸入子模塊和一個變換子模塊。對于每一個邏輯輸出,在數(shù)據(jù)流圖上向物理輸出端方向正向移動,只要還有加工框,就在相應輸出模塊下面建立一個變換子模塊和一個輸出子模塊。一般應參照數(shù)據(jù)流圖的中心變換部分和功能分解的原則來考慮如何對中心變換模塊進行分解。4.3 結構化設計方法4.3 結構化設計方法事務分析:從具有事務流特點的數(shù)據(jù)流圖建立系統(tǒng)結
16、構圖。事務源、事務中心4.3 結構化設計方法建立一個主模塊用以代表整個加工,位于P-層(主層)??紤]被稱為下一層(事務層)的第二層模塊。第二層模塊只能是三類:取得事務、處理事務和給出結果。各個事務模塊下層的操作模塊,即A-層(活動層)和細節(jié)模塊,即D-層(細節(jié)層),可以繼續(xù)分解擴展,直至完成整個結構圖。4.3 結構化設計方法事務分析的步驟:識別事務源。規(guī)定適當?shù)氖聞招徒Y構。識別各種事務和它們定義的操作。注意利用公用模塊。對每一事務,或對聯(lián)系密切的一組事務,建立一個事務處理模塊。對事務處理模塊規(guī)定它們?nèi)康南聦硬僮髂K。對操作模塊規(guī)定它們的全部細節(jié)模塊。4.3 結構化設計方法設計的后處理為每個模
17、塊開發(fā)一份處理說明為每個模塊提供一份接口描述定義局部的和全程的數(shù)據(jù)結構給出所有的設計限制和約束進行概要設計的評審如果需要和合算的化,對結構進行優(yōu)化。4.4 數(shù)據(jù)設計數(shù)據(jù)設計:為需求分析階段所確定的數(shù)據(jù)對象定義邏輯數(shù)據(jù)結構,并且對不同的邏輯數(shù)據(jù)結構進行算法設計,以便選擇一個有效的方案。同時,確定實現(xiàn)邏輯數(shù)據(jù)結構所必需的操作模塊,以便了解數(shù)據(jù)結構的影響范圍。4.4 數(shù)據(jù)設計數(shù)據(jù)設計的原則:在導出、評審和定義軟件需求、軟件體系結構時,必須定義和評審其中用到的數(shù)據(jù)流、數(shù)據(jù)對象、數(shù)據(jù)結構。要確定所有數(shù)據(jù)結構,以及在每種數(shù)據(jù)結構上實施的操作。應該建立一個數(shù)據(jù)字典,用它來定義數(shù)據(jù)和軟件的設計。4.4 數(shù)據(jù)設
18、計底層數(shù)據(jù)設計的決策應該推遲到設計過程的后期進行,在數(shù)據(jù)設計中也可以使用自頂向下、逐步細化的方法。數(shù)據(jù)設計時要遵從信息隱藏原則。應當創(chuàng)建一個存放數(shù)據(jù)結構和相關操作的庫。軟件設計和程序設計語言應當支持抽象數(shù)據(jù)類型的定義和實現(xiàn)。4.4 數(shù)據(jù)設計數(shù)據(jù)結構設計的建議:盡量使用簡單的數(shù)據(jù)結構。在設計數(shù)據(jù)結構時要注意數(shù)據(jù)之間的關系,特別要平衡數(shù)據(jù)冗余與數(shù)據(jù)關聯(lián)的矛盾。為了加強數(shù)據(jù)設計的可復用性,應該針對常用的數(shù)據(jù)結構和復雜的數(shù)據(jù)結構設計抽象類型,并且將數(shù)據(jù)結構與操縱數(shù)據(jù)結構的操作封裝在一起。使用經(jīng)典的數(shù)據(jù)結構。在確定數(shù)據(jù)結構時一般先考慮靜態(tài)結構,如果不能滿足要求,再考慮動態(tài)結構。對于復雜數(shù)據(jù)結構,應給出圖形和文字描述,以便于理解。4.4 數(shù)據(jù)設計文件設計是指對數(shù)據(jù)存儲文件的設計,主要工作是根據(jù)使用要求、處理方式、存儲的信息量、數(shù)據(jù)的使用頻率和文件的物理介質(zhì)等因素,來確定文件的類別和組織方式,設計文件記錄的格式,估計文件的容量。文件的設計過程包括邏輯設計和物理設計兩個階段邏輯設計在概要設計階段進行物理設計在詳細設計階段進行4.4 數(shù)據(jù)設計文件邏輯設計的任務:整理
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度養(yǎng)老機構蟲鼠害防治與老人健康保障合同4篇
- 2025年度智能機器人研發(fā)項目代理采購合同4篇
- 2025年度餐飲加盟店選址與評估咨詢合同3篇
- 二零二五年度通訊工程破樁勞務分包合同3篇
- 二零二五年度高新技術成果轉化合同模板3篇
- 2025年度智能打包機研發(fā)與生產(chǎn)合同3篇
- 2025版智慧醫(yī)療項目投資股東協(xié)議3篇
- 科技產(chǎn)品開發(fā)中的創(chuàng)新思維應用
- 2025年度金融科技公司Oracle金融科技平臺定制合同3篇
- 2025年度智能停車解決方案車位銷售與服務協(xié)議4篇
- 醫(yī)院三基考核試題(康復理療科)
- 2024-2030年中國招標代理行業(yè)深度分析及發(fā)展前景與發(fā)展戰(zhàn)略研究報告
- 醫(yī)師定期考核 (公共衛(wèi)生)試題庫500題(含答案)
- 基因突變和基因重組(第1課時)高一下學期生物人教版(2019)必修2
- 內(nèi)科學(醫(yī)學高級):風濕性疾病試題及答案(強化練習)
- 音樂劇好看智慧樹知到期末考試答案2024年
- 辦公設備(電腦、一體機、投影機等)采購 投標方案(技術方案)
- 案卷評查培訓課件模板
- 2024年江蘇省樣卷五年級數(shù)學上冊期末試卷及答案
- 人教版初中英語七八九全部單詞(打印版)
- 波浪理論要點圖解完美版
評論
0/150
提交評論