




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
軟件相關設計第四章上一章小結:需求分析是軟件工程過程中的第一個技術步驟,通過該步驟,軟件需求被描述為具體的規(guī)約,為軟件設計奠定了基礎;需求分析旨在描述“做什么”,必須關注問題的信息域、功能域和行為域。用創(chuàng)建模型、劃分問題、描述需求要素的方法來表示需求細節(jié);結構化分析依賴于數(shù)據(jù)建模和流建模來創(chuàng)建全面的需求分析模型。ERD描述系統(tǒng)中的數(shù)據(jù)對象,DFD描述控制轉換,它們共同創(chuàng)建系統(tǒng)的功能模型。STD創(chuàng)建行為模型,DD描述數(shù)據(jù)內容。開發(fā)階段的工作流程是:設計階段完成:數(shù)據(jù)與結構設計和過程設計;設計階段的任務是回答:怎么做?本章要解決的問題:軟件需要“怎么做”?如何描述“怎么做”?如何衡量軟件設計的質量?即:軟件設計的基本概念、任務、原則、方法和標準是什么?軟件設計的目標與任務軟件設計的概念與原理模塊獨立啟發(fā)規(guī)則軟件結構的圖形工具面向數(shù)據(jù)流的設計方法人機界面設計過程設計及工具面向數(shù)據(jù)結構的設計方法第四章軟件設計§4-1軟件設計的目標和任務根據(jù)分析模型(數(shù)據(jù)、功能、行為)所描述的軟件需求,以及功能和性能需求,使用某一種設計方法進行:數(shù)據(jù)設計系統(tǒng)結構設計接口設計過程設計。數(shù)據(jù)設計:將分析時創(chuàng)建的信息域模型(ERD)變換成實現(xiàn)軟件所需的數(shù)據(jù)結構。體系結構設計:定義程序的主要結構元素之間的關系。接口設計:描述了軟件內部、軟件和協(xié)作系統(tǒng)之間的以及軟件同人之間如何通信。過程設計:將程序體系結構元素變換為對軟件構件的過程描述。將分析模型轉換為軟件設計數(shù)據(jù)字典數(shù)據(jù)流圖E-R圖狀態(tài)變遷圖加工規(guī)約控制規(guī)約數(shù)據(jù)對描述象數(shù)據(jù)設計體系結構設計接口設計過程設計分析模型設計模型開發(fā)階段的信息流軟件設計過程從工程管理的角度來看,軟件設計分兩步完成。概要設計,將軟件需求轉化為數(shù)據(jù)結構和軟件的系統(tǒng)結構。詳細設計,即過程設計。通過對結構表示進行細化,得到軟件的詳細的數(shù)據(jù)結構和算法。軟件設計的重要性:軟件工程過程的技術核心軟件設計是后續(xù)開發(fā)步驟及軟件維護工作的基礎。如果沒有設計,只能建立一個不穩(wěn)定的系統(tǒng)結構基本概念:為“使程序正確”提供了框架軟件設計概念力求解決以下問題:使用什么標準將軟件系統(tǒng)劃分為單個構件(獨立成分)在各構件內,功能細節(jié)和數(shù)據(jù)結構細節(jié)如何表示用什么標準對軟件設計的技術質量做統(tǒng)一衡量?§4-2軟件設計概念與原理模塊化抽象化逐步求精信息隱蔽一、模塊化軟件系統(tǒng)的模塊化是指整個軟件被劃分成若干單獨命名和可編址的部分,稱之為模塊(構件)。這些模塊可以被組裝起來以滿足整個問題的需求。優(yōu)點:降低復雜度、方便修改、并行開發(fā)模塊用矩形框表示,并用模塊的名字標記它。模塊定義的五個標準:模塊的可分解性模塊的可組裝性模塊的可理解性模塊的連續(xù)性模塊的保護性模塊化是好的軟件設計的一個基本準則高層模塊——從整體上把握問題,
隱蔽細節(jié)復雜問題分解較小問題
構造低層模塊
如何進行模塊化設計?抽象是一個重要的概念!二、抽象
什么是抽象?概念:抽象出事物的本質特性而暫時不考慮它們的細節(jié)。軟件設計為什么要用抽象概念?處理復雜系統(tǒng)的惟一有效的方法是用層次的方法構造和分析它。軟件系統(tǒng)進行模塊設計時,可有不同的抽象層次。模塊化與抽象用自頂向下由抽象到具體的方式分配控制,其優(yōu)點:簡化了設計與實現(xiàn);提高了軟件的可理解性和可測試性;使軟件更易于維護。三、逐步求精逐步求精是人類解決復雜問題時采用的基本技術定義:為了能集中精力解決主要問題而盡量推遲對問題細節(jié)的考慮求精抽象四、信息隱蔽信息隱蔽(parnas)方法:每個模塊的實現(xiàn)細節(jié)對于其它模塊來說是隱蔽的。也就是說,模塊中所包含的信息(包括數(shù)據(jù)和過程)不允許其它不需要這些信息的模塊使用?!?-3模塊的獨立性如何度量模塊的獨立性?如何設計具有獨立性的模塊?一、模塊的基本概念模塊(Module)
“模塊”,又稱“組件”。它一般具有如下三個基本屬性:功能:描述該模塊實現(xiàn)什么功能邏輯:描述模塊內部怎么做狀態(tài):該模塊使用時的環(huán)境和條件模塊的特性描述模塊的外部特性模塊的模塊名、參數(shù)表、其中的輸入?yún)?shù)和輸出參數(shù),以及給程序以至整個系統(tǒng)造成的影響。模塊的內部特性完成其功能的程序代碼和僅供該模內部使用的數(shù)據(jù)基本概念模塊的獨立性例如:若一個模塊只具有單一的功能且與其它模塊沒有太多的聯(lián)系,則稱此模塊具有模塊獨立性。模塊的獨立性是模塊化、抽象化和信息隱藏概念的直接結果,是完成有效設計的基本標準。基本概念模塊獨立的優(yōu)點:
易于開發(fā)
易于測試和維護度量模塊獨立性的兩個質量標準:耦合內聚耦合是模塊之間的互相連接的緊密程度的度量。內聚是模塊功能強度(一個模塊內部各個元素彼此結合的緊密程度)的度量。模塊獨立性比較強的模塊應是高內聚低耦合的模塊。基本概念二、模塊間的耦合中度耦合與外部環(huán)境聯(lián)系
(1)非直接耦合(NondirectCoupling)
AB無直接耦合(2)數(shù)據(jù)耦合(DataCoupling)
如果一個模塊訪問另一個模塊時,彼此之間是通過簡單數(shù)據(jù)參數(shù)(不是控制參數(shù))來交換輸入、輸出信息的,則稱這種耦合為數(shù)據(jù)耦合。(3)標記耦合(StampCoupling)
如果一組模塊通過參數(shù)表傳遞記錄信息,就是標記耦合。這個記錄是某一數(shù)據(jù)結構的子結構,而不是簡單變量。(4)控制耦合(ControlCoupling)如果一個模塊通過傳送開關、標志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合。舉例:到貨檢驗任務核準單記錄信息簡單變量檢驗產(chǎn)生到貨通知付款產(chǎn)生錯誤通知控制信息(5)外部耦合(ExternalCoupling)
一組模塊都訪問同一全局簡單變量而不是同一全局數(shù)據(jù)結構,而且不是通過參數(shù)表傳遞該全局變量的信息,則稱之為外部耦合。(6)公共耦合(CommonCoupling)
若一組模塊都訪問同一個公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局數(shù)據(jù)結構、共享的通信區(qū)、內存的公共覆蓋區(qū)等。公共耦合的復雜程度隨耦合模塊的個數(shù)增加而顯著增加。若只是兩模塊間有公共數(shù)據(jù)環(huán)境,則公共耦合有兩種情況。松散公共耦合和緊密公共耦合。(7)內容耦合(ContentCoupling)
如果發(fā)生下列情形,兩個模塊之間就發(fā)生了內容耦合:
(1)一個模塊直接訪問另一個模塊的內部數(shù)據(jù);
(2)一個模塊不通過正常入口轉到另一模塊內部;
(3)兩個模塊有一部分程序代碼重迭(只可能出現(xiàn)在匯編語言中);
(4)一個模塊有多個入口。
c
內容耦合如何降低模塊間的耦合度?(1)如果模塊必須存在耦合,則要選擇適當?shù)鸟詈项愋?。原則:盡量使用數(shù)據(jù)耦合少用控制耦合限制公共耦合的范圍避免使用內容耦合(2)降低接口的復雜性
c
三、模塊內聚(1)偶然內聚(低內聚)
如果一個模塊完成一組任務,這些任務彼此間即使有關系關系也是松散的。例如:寫完一個程序后,發(fā)現(xiàn)一組語句在兩處或多處出現(xiàn),把這些語句作為一個模塊,為偶然內聚。(2)邏輯內聚(低內聚)
一個模塊所完成的任務屬于相同或相似的一類稱為邏輯內聚(一個模塊產(chǎn)生各種類型的全部輸出)(3)時間內聚(低內聚)如果一個模塊包含的任務必須在一個時間段內完成,成為時間內聚。例如初始化模塊(4)過程內聚(中內聚)
如果一個模塊處理元素是相關的,必須順序執(zhí)行,則稱為過程內聚。通過劃分程序流程圖來完成。(5)通信內聚(中內聚)模塊中所有元素都使用同一個輸入數(shù)據(jù)和(或)產(chǎn)生同一個輸出數(shù)據(jù),稱為通信內聚(6)順序內聚(高內聚)
如果一個模塊處理元素和同一個功能相關,并且必須順序執(zhí)行,則稱為順序內聚。通常一個的輸出是另一個的輸入。通過劃分數(shù)據(jù)流圖。(7)功能內聚(高內聚)模塊中所有元素都屬于一個整體,完成一個單一功能,稱為功能內聚。提高模塊獨立性。評估程序結構的第一次迭代,以降低耦合提高內聚;模塊規(guī)模適中(60行)。高扇3~4(上限5~9),當深度增加時爭取提高扇入;將模塊的作用域限制在模塊的控制范圍內(作用域是控制域的子集);降低模塊接口的復雜程度并提高一致性(傳遞的信息與功能的一致性);例:Q_ROOT(TBL,X)不易理解,改:Q_ROOT(A,B,C,X1,X2)定義功能可以預測的模塊,但要避免模塊功能過分局限;(黑盒模塊可預測)設計單入口單出口模塊,避免“病態(tài)連接”(內容耦合)。數(shù)組傳遞參數(shù)§4-4有效模塊化的設計啟發(fā)規(guī)則模塊化的設計啟發(fā)規(guī)則A影響B(tài)狀態(tài)標記狀態(tài)標記控制耦合解決方法:判定點上移(AM)B移到控制域內(BA下面)A的控制域§4-5表示軟件結構的圖形工具三種表示軟件結構的圖形工具:層次圖(Hierachy)
HIPO圖(HierachyInputProcessOutput)結構圖(Yourdon)1、層次圖和HIPO圖IBM公司發(fā)明的HIPO圖:
層次圖
+輸入/處理/輸出圖
(H圖)+(IPO圖)(HierachyInputProcessOutput)(1).層次圖(H圖)正文加工系統(tǒng)輸入輸出編輯加標題存儲檢索編目錄添加刪除插入修改合并列表帶編號的層次圖(H圖)
正文加工系統(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(2).HIPO圖H圖中每一方框(模塊)均有一張IPO圖對應。輸出輸入處理讀口令請求口令文件1取得輸入2口令確認3請求確認請求記錄權限文件4更新處理權限記錄狀態(tài)報告響應命令監(jiān)控器(1.0)的IPO圖改進的IPO圖格式IPO圖系統(tǒng):模塊:編號:作者:日期:被調用:調用:輸出:輸入:處理:局部數(shù)據(jù)元素:注釋:命令監(jiān)控器輸入1.0方華2002-3-2命令監(jiān)控器主控菜單模塊命令監(jiān)控器主控模塊取得輸入、口令確認、請求確認、口令更新處理。輸出正確性判斷標志。接收鍵盤口令口令正確性判斷標志口令、標志改進的IPO圖格式IPO圖系統(tǒng):模塊:編號:作者:日期:被調用:調用:輸出:輸入:處理:局部數(shù)據(jù)元素:注釋:人事檔案管理系統(tǒng)打印2.1方華2002-3-2人事檔案管理模塊“打印全體人員”模塊“打印部分人員”模塊“打印個人:模塊將全體、按部門、個人的檔案數(shù)據(jù)加工成要求的表格形式,進行輸出、現(xiàn)示人事檔案數(shù)據(jù)和打印選擇打印全體人員、部分人員、個人的檔案2、結構圖SC(StructureChart)
精確表達程序結構的圖形表示不加區(qū)分的數(shù)據(jù)數(shù)據(jù)信息控制信息編輯學生記錄讀學生記錄學生數(shù)據(jù)無此學生學號結構圖反映程序中模塊之間的層次調用關系和聯(lián)系:它以特定的符號表示模塊、模塊間的調用關系和模塊間信息的傳遞。模塊的調用關系和接口模塊之間用單向箭頭聯(lián)結,箭頭從調用模塊指向被調用模塊,表示調用模塊調用了被調用模塊。結構圖模塊間的信息傳遞
當一個模塊調用另一個模塊時,調用模塊把數(shù)據(jù)或控制信息傳送給被調用模塊,以使被調用模塊能夠運行。而被調用模塊在執(zhí)行過程中又把它產(chǎn)生的數(shù)據(jù)或控制信息回送給調用模塊。模塊調用方式在模塊A的箭頭尾部標以一個菱形符號,表示模塊A有條件地調用另一個模塊B。當一個在調用箭頭尾部標以一個弧形符號,表示模塊A反復調用模塊C和模塊D。條件調用循環(huán)調用為什么用面向數(shù)據(jù)流的設計方法?選擇軟件設計方法的重要因素是應用范圍,“面向數(shù)據(jù)流的設計”方法可以應用于大量的應用領域(數(shù)值分析、過程控制、MISS系統(tǒng)),但不包括專家系統(tǒng)、用戶界面。方法起源模塊化、自頂向下逐步細化、結構化程序設計的基本概念,是基于“數(shù)據(jù)在系統(tǒng)中的流動”而發(fā)展起來的?!?-6面向數(shù)據(jù)流的設計方法變換型結構由輸入、變換中心和輸出三部分組成?;灸P停盒畔r間變換流外部表示輸入流輸出流變換流內部表示信息流特征:具有明確的輸入、變換(或稱主加工)和輸出界面事務型結構特征:具有在多種事物中選擇執(zhí)行某類事物的能力?;灸P停菏聞罩行慕邮苈窂絼幼髀窂酱笮拖到y(tǒng)DFD中,變換型和事務型結構往往共存:T事務中心傳入變換傳出面向數(shù)據(jù)流設計方法的設計步驟(1)精化DFD(2)確定DFD類型(3)把DFD映射到系統(tǒng)模塊結構設計出模塊結構的上層(4)基于DFD逐步分解高層模塊設計出下層模塊(5)根據(jù)模塊獨立性原理,精化模塊結構(6)模塊接口描述4、軟件模塊結構的改進(設計優(yōu)化)精化軟件結構,導出不同的軟件結構,評價和比較找出最優(yōu)的。有效模塊化的前提下,保持最少的模塊,滿足信息要求的前提下使用最簡單的數(shù)據(jù)結構設計優(yōu)化的方法:不考慮時間因素的情況下精化軟件結構詳細設計選出最耗時的模塊,仔細設計提高效率使用高級語言編程軟件中孤立出大量占用處理機資源的模塊必要時重新設計或用依賴于機器的語言重寫上述大量占用資源的模塊的代碼,以求提高效率§4-7用戶界面設計技術問題
系統(tǒng)響應時間用戶與計算機的交互問題
用戶幫助信息出錯信息處理命令交互§4-8過程設計(詳細設計)及其工具任務:設計程序“藍圖”衡量程序的質量不僅要看它的邏輯是否正確,性能是否符合要求,更主要的是看它是否容易閱讀和理解。程序流程圖程序流程圖也稱為程序框圖,程序流程圖使用五種基本控制結構是:
示例
程序流程圖的標準符號循環(huán)的標準符號注解的使用多出口判斷N-S圖N-S圖也叫做盒圖。五種基本控制結構由五種圖形構件表示。示例N-S圖的嵌套定義形式
PAD也設置了五種基本控制結構的圖式,并允許遞歸使用。問題分析圖(PAD)
PAD描述的示例
對應于增量型循環(huán)結構
fori:=n1ton2stepn3do
在PAD中有相應的循環(huán)控制結構PAD的擴充控制結構判定表判定表用于表示程序的靜態(tài)邏輯在判定表中的條件部分給出所有的兩分支判斷的列表,動作部分給出相應的處理要求將程序流程圖中的多分支判斷都改成兩分支判斷
無多分支判斷結構
建立判定表的步驟列出與一個具體過程(或模塊)有關的所有處理。列出過程執(zhí)行期間的所有條件(或所有判斷)。將特定條件取值組合與特定的處理相匹配,消去不可能發(fā)生的條件取值組合。將右部每一縱列規(guī)定為一個處理規(guī)則,即對于某一條件取值組合將有什么動作。
PDL(ProgramDesignLanguage)PDL是一種用于描述功能模塊的算法設計和加工細節(jié)的語言。稱為設計程序用語言。它是一種偽碼。偽碼的語法規(guī)則分為“外語法”和“內語法”。PDL具有嚴格的關鍵字外語法,用于定義控制結構和數(shù)據(jù)結構,同時它的表示實際操作和條件的內語法又是靈活自由的,可使用自然語言的詞匯。
示例:拼詞檢查程序PROCEDUREspellcheckIS
BEGIN
splitdocumentintosinglewords
lookupwordsindictionary
displaywordswhicharenotindictionary
createanewdictionary
ENDspellcheck
PDL的特點提供全部結構化控制結構、數(shù)據(jù)說明和模塊特征。能對PDL正文進行結構分割,使之變得易于理解。為了區(qū)別關鍵字,規(guī)定關鍵字一律大寫,其它單詞一律小寫?;蛘咭?guī)定關鍵字加下劃線,或者規(guī)定它們?yōu)楹隗w字。內語法使用自然語言來描述處理特性。內語法比較靈活,只要寫清楚就可以,不必考慮語法錯,以利于人們可把主要精力放在描述算法的邏輯上。有數(shù)據(jù)說明機制,包括簡單的(如標量和數(shù)組)與復雜的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度帶車司機勞務合同與車輛智能監(jiān)控系統(tǒng)協(xié)議
- 2025年度高新技術企業(yè)單位試用期勞動合同
- 二零二五年度美容店客戶資源及經(jīng)營權益轉讓合同
- 2025年度鋪面出租與商業(yè)品牌提升合同
- 人工智能與趨勢分析的結合
- 二零二五年度單位訂餐質量保證與提升協(xié)議
- 二零二五年度城市規(guī)劃中相鄰宅基地邊界調整合同
- 二零二五年度房屋拆遷補償安置及安置房產(chǎn)權拍賣協(xié)議書
- 2025年度荒山承包經(jīng)營權轉讓與林業(yè)產(chǎn)業(yè)發(fā)展規(guī)劃合同
- 二零二五年度企業(yè)員工出差住宿補貼及費用結算協(xié)議書
- 《急性冠狀動脈綜合征》課件
- 《馬克思生平故事》課件
- 2024-2025學年四川省成都市高一上學期期末教學質量監(jiān)測英語試題(解析版)
- 《以哪吒精神照亮成長之路》開學家長會課件
- HRBP工作總結與計劃
- 八大危險作業(yè)安全培訓考試試題及答案
- 2025年湖南高速鐵路職業(yè)技術學院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2024年計算機二級WPS考試題庫(共380題含答案)
- 四年級數(shù)學(下)全冊先學后教,當堂訓練教案
- 云南省實驗教材信息技術三年級第一冊第13課PPT課件
- 最新修改 班組安全管理建設--5831模式通用課件
評論
0/150
提交評論