第8章-軟件過程設計_第1頁
第8章-軟件過程設計_第2頁
第8章-軟件過程設計_第3頁
第8章-軟件過程設計_第4頁
第8章-軟件過程設計_第5頁
已閱讀5頁,還剩49頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

過程設計主要內容軟件設計基本原理軟件設計工具軟件結構設計軟件詳細設計主要內容軟件過程設計主要內容軟件總體設計(概要設計)將系統劃分成功能模塊明確軟件結構(模塊組成的層次系統)采用適當的工具描述軟件結構軟件詳細設計確定怎樣具體實現軟件結構圖中每個模塊的具體內容細化程序的基本邏輯軟件設計的基本原理模塊化是解決一個復雜問題時自頂向下逐層把軟件系統劃分成若干模塊的過程模塊化的優點:降低問題復雜性減少開發工作量降低開發成本提供軟件生產率軟件設計的基本原理模塊化是解決一個復雜問題時自頂向下逐層把軟件系統劃分成若干模塊的過程模塊化的優點:降低問題復雜性減少開發工作量降低開發成本提供軟件生產率在軟件的體系結構中,模塊是可組合、分解和更換的單元,具有以下幾種基本屬性:接口:指模塊的輸入輸出。功能:模塊實現的功能。邏輯:內部如何實現及所需數據。狀態:模塊的運行環境,調用與被調用關系。邏輯屬性反映內部特性,其它屬性反映模塊的外部特性。軟件成本M模塊數成本(工作量)接口成本成本/模塊最小區域軟件設計的基本原理抽象:是認識復雜現象過程中使用的思維工具。抽象是對具體對象(問題)進行概括,抽出這一類對象的公共性質并加以描述的過程。軟件結構頂層模塊控制系統主要功能并影響全局,底層模塊完成具體的處理。在進行軟件設計時,抽象與逐步求精、模塊化密切相關,可提高軟件的可理解性信息隱蔽是指在設計和確定模塊時,使得一個模塊內包含的信息(過程和數據),對于不需要這些信息的其他模塊來說,是不可訪問的。它為軟件系統的修改、測試及以后的維護都帶來好處。軟件設計的基本原理模塊的獨立性:指每個模塊只完成系統要求的獨立的子功能,并且與其它模塊的聯系量最少且接口簡單。包括兩個度量準則耦合性:指軟件系統結構中各模塊間相互聯系緊密程度的一種度量。模塊間耦合高低取決于接口的復雜性、調用的方式及傳遞的信息。內聚性:指模塊的功能強度的度量,即一個模塊內部各個元素彼此結合的緊密程度的度量。軟件設計的基本原理?無直接耦合:兩個模塊間沒有直接的關系,不傳遞任何信息。?內容耦合:一個模塊直接使用另一模塊的內部數據,或通過非正常入口而轉入另一個模塊內部。?公共耦合:指通過一個公共數據環境相互作用的那些模塊間的耦合。?控制耦合:兩個模塊間傳遞控制信息。被調用函數通過控制信息有選擇地執行塊內某一功能。?標記耦合:兩個模塊間傳遞的是數據結構。?數據耦合:兩個模塊間有調用關系,傳遞簡單的數據值。AB耦合性耦合性舉例2數據耦合3標記耦合住戶詳情中包含了“本月用電量”和“本月用水量”模塊ATRC:......模塊BGOTOTRC6內容耦合5公共耦合4控制耦合軟件設計的基本原理應采用的總體原則:

盡量使用數據耦合少用控制耦合限制公共耦合的范圍完全不用內容耦合軟件設計的基本原理?偶然內聚:指一個模塊內的各處理元素之間沒有任何聯系。?邏輯內聚:指模塊內執行幾個邏輯上相似的功能,通過參數確定該模塊完成哪一個功能。例如把編輯各種輸入數據的功能放在一個模塊中。?時間內聚:把需要同時執行的動作組合在一起形成的模塊。例如程序設計中的初始化模塊。?通信內聚:指模塊內所有處理元素都在同一個數據結構上操作,或指各處理使用相同的輸入數據或者產生相同的輸出數據。?順序內聚:指一個模塊中各個處理元素都密切相關于同一功能且必須順序執行,前一功能元素的輸出是后一功能元素的輸入。?功能內聚:指模塊內所有元素共同完成一個功能,缺一不可。內聚性軟件設計的基本原理順序內聚通信內聚內聚性舉例軟件結構圖形工具軟件結構圖軟件結構設計優化準則表示軟件結構的HIPO圖(HierarchyPlusInput/Processing/Output)軟件結構圖(StructureChart)模塊:用方框表示,名字體現該模塊的功能。模塊間的控制關系:統率、從屬;模塊間的信息傳遞:兩個附加符號:模塊選擇調用或循環調用。注意事項:模塊唯一、從上到下調用、調用次序不嚴格。ABCMABCA查詢成績B學生記錄學號查詢標志B1A入出X,YZ編號1結構圖的形態特征深度、寬度、扇入、扇出。TDMABC扇入扇出深度寬度軟件結構圖舉例產生最佳解原始輸入得到好輸入計算最佳解輸出結果讀輸入編輯輸入結果格式化顯示輸出原始輸入好輸入好輸入解解編輯結果格式化解解格式化解產生最佳解軟件結構圖注意事項(1)同一名字的模塊在結構圖中僅能出現一次。(2)調用關系只能從上到下。(3)不嚴格表示模塊的調用次序,習慣上從左到右,有時為了減少連線的交叉,適當地調整同一層模塊的左右位置,以保證結構圖的清晰。(4)結構圖并不指明什么時候調用下層模塊,只表明一個模塊調用哪些模塊,至于模塊內還有沒有其他成分則完全沒有表示。表示軟件結構的HIPO圖訂貨處理1.0銷售管理系統進貨處理2.0銷售統計3.0讀庫存記錄1.2輸入并檢驗訂單1.1缺貨處理4.0確定能否供貨1.3可供貨處理1.3.1缺貨貨單留底1.3.2H圖:每個矩形框代表一個模塊,連線表示“調用”而非“組成”。所謂HIPO,即對每個模塊附一張IPO圖。每個IPO圖中應明確標出對應模塊的編號。表示軟件結構的HIPO圖

IPO表系統:______作者:______模塊:______日期:______編號:1.3

被調用:調用:輸入輸出:處理:局部數據元素文件名:全局變量:注釋:銷售管理系統確定能否訂貨訂貨處理可供貨模塊缺貨訂單留底訂單訂貨量X貨物庫存量Y供貨標志庫存文件IFY>XTHEN可供貨處理

ELSE缺貨訂單留底ENDIFIPO圖:結構化設計方法結構化設計是以結構化分析產生的數據流圖為基礎,按一定的步驟映射成軟件結構。結構化設計變換分析設計事務分析設計變換型數據流圖由輸入、變換和輸出三部分組成。變換中心邏輯輸入邏輯輸出物理輸出物理輸入時間內部表示信息輸入流變換流信息流外部表示輸出流事務型數據流圖

數據沿著輸入通路到達一個加工T。T將輸入數據分解成一串發散的數據流,形成許多的活動路徑,并根據輸入數據的類型在若干動作序列中選出一個來執行。T事務處理中心接收輸入數據。分析輸入數據,確定類型。根據事務類型選取一活動通路。變換分析設計確定輸入流和輸出流的邊界,從而孤立出變換中心(1)檢查“輸入流”的邊界從輸入的數據源開始,沿著每一個由數據源傳入的數據流的移動方向進行跟蹤分析,逐個分析它所經過的處理邏輯功能。如果僅是傳入的數據流作形式上的轉換,邏輯上沒有進行實際的數據處理功能,則這些處理邏輯屬于系統的“輸入處理部分”。順著傳入的數據流的移動方向,一直跟蹤到它被真正地處理為止。變換分析設計(2)檢查“輸出流”的邊界從輸出結果的地方開始,逆著每一個傳遞出去的數據流,由外向里反方向跟蹤,逐個分析它的處理邏輯功能,一直反方向跟蹤到它被真正地產生出來為止。(3)得到變換中心根據前兩步的分析結果,畫出一個閉環界線,在界線以內的就是變換中心。變換分析設計2.設計軟件結構的頂層和第一層——變換結構CmCICTCO第一級分解變換分析設計(1)頂層主模塊Cm是抽象出來的,以系統的名字命名,協調控制下屬模塊,完成系統各項功能。(2)第一層:為每一個邏輯輸入設計一個輸入模塊功能:為主模塊提供數據輸入為每一個邏輯輸出設計一個輸出模塊功能:為主模塊提供數據輸出為中心變換設計一個變換模塊功能:將邏輯輸入轉換成邏輯輸出變換分析設計(1)輸入模塊的下屬模塊設計為每個輸入模塊設計兩個下層模塊①一個用于接收數據②另一個用于將這些數據轉換為所要求的數據①②重復直到物理輸入為止設計中、下層模塊——自頂向下,逐層分解AtoBGetBGetAaab變換分析設計(2)輸出模塊的下屬模塊設計為每個輸出模塊設計兩個下層模塊①一個將調用模塊提供的數據轉換為所需的數據形式。②另一個用于發送數據①②重復直到物理輸出為止PutBPutAbaaBtoA(3)變換模塊的下屬模塊設計按照模塊獨立性的原則來組織其結構,一般每個基本加工設計一個功能模塊。變換分析設計ABCDEFGHf1f2f3f4f5f6f7f8f9f10f11變換中心輸入輸出主模塊f2Getf3將f3變換成f7和f8Putf7Getf2BFPutf9f3f7f9f7f9f3f7f8Putf8EDCf8GAHPutf10Putf11Gutf1f1f1f2f8f10f10f11f10f11f3f2初始結構圖變換分析設計4.設計的優化——根據設計準則(1)輸入部分的求精對每個物理輸入設置專門模塊,以體現系統的外部接口;其他輸入模塊并非真正輸入,當它與轉換數據的模塊都很簡單時,可將它們合并成一個模塊。GetCGetBGetAabAtoBGetBGetAaabBtoCGetCbbc(2)輸出部分的求精為每個物理輸出設置專門模塊,同時注意把相同或類似的物理輸出模塊合并在一起,以減低耦合度。PutBPutAbaaBtoAPutBPutAa變換分析設計(3)變換部分的求精:根據設計準則,對模塊進行合并和調整。軟件結構的求精,具有很大的經驗性。追求“高內聚,低耦合”方法:設計有獨立功能的模塊模塊間傳遞數據型的參數模塊間共享信息盡量少變換分析設計變換分析設計例:變換分析設計分房處理分房活動輸出分房結果獲得分房資源獲得空房信息獲得分房隊列輸出住房結果獲得分房申請計算分數事務分析設計事務分析的設計步驟和變換分析的設計步驟大部分相同或類似,主要差別僅在由數據流程圖到軟件結構的映射方法不同。由事務流映射成的軟件結構包括一個接收分支和一個發送分支。映射出接收分支結構的方法和變換分析映射出輸入結構的方法相似,即從事務中心的邊界開始,把沿著接收流通路的處理邏輯映射成模塊。發送分支的結構包含一個調度模塊,它控制下層的所有活動模塊;然后把數據流程圖中的每一個活動流通路映射成與它的特征相對應的結構。總控調度A_CTLB_CTLC_CTL接收通路C通路B通路A通路事務分析的映射方法分房系統合法性檢查更改信息分房處理調房處理退房處理查詢處理綜合數據流圖的映射確定DFD整體上的類型:除明顯有事務類型的,都可認為是變換型。事務型用于高層DFD變換有平行處理的優點。把與全局特性不同的局部區域孤立出來,確定類型。按整體與局部的DFD特性,設計軟件結構。混合型的結構設計ab1b2c1db3c3c2bAC1DBC3C2lmkgjfheLKEFGJ主模塊GetddtokPutkGetbAGetaC1C3C2事務中心EJGFPutlKPutmL分層DFD映射:銷售管理系統銷售管理系統讀鍵盤類別1訂貨處理2進貨處理3缺貨處理4銷售統計輸出備貨單輸入訂單輸出統計表輸出缺貨通知單輸入進貨通知單主圖:1訂貨處理子圖1:根據訂單及庫存確定能否供貨讀庫存記錄缺貨訂單留底可供貨處理訂單留底根據可供貨訂單修改庫存分層DFD映射g4g3g2g1f2f1A1A2A3A4主圖:子圖:ABCf1f2f3f4主模塊Putf3Getf2BAGetf1putf4CAA1A4A2A3f2g3,g4子圖:B1B2B3f2g1g2f4f5f4主圖:f3f2f1ABA3思考題:f1f2f1g1g2精化數據流圖DFD類型區分事務中心和數據接收通路區分輸入和輸出分支映射成事務結構映射成變換結構運用模塊設計規則,精化軟件結構描述模塊功能、接口和全局數據結構復查詳細設計映射頂層和第一層事務變換設計中下層模塊結構結構化設計過程軟件詳細設計詳細設計結果基本上決定了最終程序代碼的質量。不僅要邏輯正確,性能滿足,還要簡明易懂。采用自頂向下,逐步求精的程序設計方法。使用三種基本控制結構構造程序:順序、選擇、循環。單入口,單出口的共同特點。主程序員的組織形式:一個主程序員、一個后備程序員和一個程序管理員三人為核心,再加上一些專家、其他技術人員組成小組。軟件詳細設計表示法常用三種工具:圖形、表格和語言。程序流程圖(PFC)PAD圖盒圖(N-S圖)過程設計語言PFC:三種基本控制結構ABexpABFTFexpATAexpFTDO-UNTILDO-WHILEDOCASEICASE1CASEnFTDO-CASE程序流程圖程序流程圖,又稱程序框圖,是描述程序邏輯結構的工具。它使用的符號與系統流程圖的符號很多相同,但是,箭頭符號代表控制流而不是數據流。優點是直觀清晰、易于使用。缺點是:?易造成非結構化的程序結構,編碼時不加限制的使用GOTO語句,導致基本控制塊多入多出口,與軟件設計的原則相違背。?程序流程圖本質上不是逐步求精的好工具,誘使過早考慮程序的控制流程,而不去考慮程序的全局結構。?程序流程圖不易表示數據結構。詳細設計案例分析程序流程圖(visio工具)策略:自頂向下,逐步求精的分解

PAD圖問題分析圖(ProblemAnalysisDiagram)開始結束輸入A(1)到A(10)的值輸出A(1)到A(10)的值置初值:n=10sortsorti=1WHILEi≤n-1WHILEj≤nj=i+1,max=A(i)A(i)=max,i=i+1j=j+1B=maxmax=A(j)A(j)=BMax<A(j)?清晰地反映了程序的層次結構。?支持逐步求精的設計方法。?易讀易寫,使用方便。?支持結構化的程序設計原理。?可自動生成程序。盒圖(N-S圖)WHILE循環條件“當型”循環UNTIL循環條件“直到

溫馨提示

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

評論

0/150

提交評論