第8章軟件過程設(shè)計_第1頁
第8章軟件過程設(shè)計_第2頁
第8章軟件過程設(shè)計_第3頁
第8章軟件過程設(shè)計_第4頁
第8章軟件過程設(shè)計_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、1博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計信息系統(tǒng)開發(fā)信息系統(tǒng)開發(fā)方法、案例與實驗方法、案例與實驗主講:段智敏Q Q:7478857402博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計過程設(shè)計主要內(nèi)容過程設(shè)計主要內(nèi)容軟件設(shè)計基本原理軟件設(shè)計基本原理軟件設(shè)計工具軟件設(shè)計工具軟件結(jié)構(gòu)設(shè)計軟件結(jié)構(gòu)設(shè)計軟件詳細(xì)設(shè)計軟件詳細(xì)設(shè)計主要內(nèi)容主要內(nèi)容3博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計n 學(xué)習(xí)目的與要求掌握軟件過程設(shè)計的主要內(nèi)容理解軟件設(shè)計的基本原理了解各種軟件設(shè)計工具了解軟件結(jié)構(gòu)設(shè)計各種方法,理

2、解每種設(shè)計方法的適用情況掌握軟件詳細(xì)設(shè)計的目標(biāo)和方法n 考核知識點軟件工程設(shè)計的主要內(nèi)容軟件設(shè)計的基本原理軟件設(shè)計工具軟件結(jié)構(gòu)設(shè)計方法軟件詳細(xì)設(shè)計軟件過程設(shè)計的應(yīng)用4博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計n 考核要求軟件過程設(shè)計的主要內(nèi)容 綜合應(yīng)用:總體設(shè)計和詳細(xì)設(shè)計的內(nèi)容軟件設(shè)計的基本原理 簡單應(yīng)用:軟件設(shè)計的幾種基本原理 領(lǐng)會:模塊的基本屬性、耦合性和內(nèi)聚性的類型與各種類型的特點 識記:模塊化的定義、抽象和信息隱蔽的概念 簡單應(yīng)用:模塊獨立性的定義及其衡量標(biāo)準(zhǔn)軟件設(shè)計工具 綜合應(yīng)用:各種軟件設(shè)計工具及其特點5博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第

3、8 8章章 軟件過程設(shè)計軟件過程設(shè)計n 考核要求軟件結(jié)構(gòu)設(shè)計方法 識記:軟件結(jié)構(gòu)設(shè)計方法的分類 簡單應(yīng)用:變換分析設(shè)計的主要步驟 簡單應(yīng)用:事務(wù)分析設(shè)計的具體步驟 綜合應(yīng)用:綜合數(shù)據(jù)流圖和分層數(shù)據(jù)流圖的映射軟件詳細(xì)設(shè)計 識記:結(jié)構(gòu)化程序設(shè)計的概念 簡單應(yīng)用:結(jié)構(gòu)化程序設(shè)計的基本思想 簡單應(yīng)用:程序設(shè)計的目標(biāo)和方法軟件過程設(shè)計的應(yīng)用 綜合應(yīng)用:如何進(jìn)行軟件過程設(shè)計6博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計軟件過程設(shè)計主要內(nèi)容n 軟件總體設(shè)計(概要設(shè)計)將系統(tǒng)劃分成功能模塊明確軟件結(jié)構(gòu)(模塊組成的層次系統(tǒng))采用適當(dāng)?shù)墓ぞ呙枋鲕浖Y(jié)構(gòu)n 軟件詳細(xì)設(shè)計確定怎樣具體

4、實現(xiàn)軟件結(jié)構(gòu)圖中每個模塊的具體內(nèi)容細(xì)化程序的基本邏輯7博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計8博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計n 模塊化是解決一個復(fù)雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程模塊化的優(yōu)點: 降低問題復(fù)雜性 減少開發(fā)工作量 降低開發(fā)成本 提供軟件生產(chǎn)率在軟件的體系結(jié)構(gòu)中,模塊是可組合、分解和更換的單元,有以下基本屬性: 接口:指模塊的輸入輸出。 功能:模塊實現(xiàn)的功能。 邏輯:內(nèi)部如何實現(xiàn)及所需數(shù)據(jù)。 狀態(tài):模塊的運(yùn)行環(huán)境,調(diào)用與被調(diào)用關(guān)系邏輯屬性反映內(nèi)部特性,其它屬性反映模塊的外部特性。

5、軟件成本軟件成本M模塊數(shù)模塊數(shù) 成本成本(工作量)(工作量)接口接口成本成本成本成本/模塊模塊最小區(qū)域最小區(qū)域軟件設(shè)計的基本原理9博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計n 抽象是認(rèn)識復(fù)雜現(xiàn)象過程中使用的思維工具。抽象是對具體對象(問題)進(jìn)行概括, 抽出這一類對象的公共性質(zhì)并加以描述 的過程。 軟件結(jié)構(gòu)頂層模塊控制系統(tǒng)主要功能并影響全局,底層模塊完成具體的處理。在進(jìn)行軟件設(shè)計時,抽象與逐步求精、模塊化密切相關(guān),可提高軟件的可理解性n 信息隱蔽是指在設(shè)計和確定模塊時,使得一個模塊內(nèi)包含的信息(過程和數(shù)據(jù)),對于不需要這些信息的其他模塊來說,是不可訪問的。它為

6、軟件系統(tǒng)的修改、測試及以后的維護(hù)都帶來好處。軟件設(shè)計的基本原理10博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計n 模塊的獨立性指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其它模塊的聯(lián)系量最少且接口簡單。包括兩個度量準(zhǔn)則 耦合性:指軟件系統(tǒng)結(jié)構(gòu)中各模塊間相互聯(lián)系緊密程度的一種度量。模塊間耦合高低取決于接口的復(fù)雜性、調(diào)用的方式及傳遞的信息。 內(nèi)聚性:指模塊的功能強(qiáng)度的度量,即一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度的度量。啟發(fā)性規(guī)則“高內(nèi)聚低耦合”原則 改進(jìn)軟件結(jié)構(gòu),提高模塊獨立性; 模塊規(guī)模適中-每頁60行語句; 深度、寬度、扇入和扇出適中; 模塊的作用域力爭在

7、控制域之內(nèi); 降低模塊接口的復(fù)雜性; 模塊功能應(yīng)該可以預(yù)測。軟件設(shè)計的基本原理11博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計耦合性(由高到低) 內(nèi)容耦合:一個模塊直接修改或操作另一個模塊的數(shù)據(jù) 公共耦合:兩個以上的模塊共同引用一個全局?jǐn)?shù)據(jù)項。 控制耦合:一個模塊向另一模塊傳遞一個控制信號,接受信號的模塊將依據(jù)該信號值進(jìn)行必要的活動。 標(biāo)記耦合:兩個模塊至少有一個通過界面?zhèn)鬟f的公共有結(jié)構(gòu)的參數(shù)。 數(shù)據(jù)耦合:模塊間通過參數(shù)傳遞基本類型的數(shù)據(jù)。 非直接耦合。模塊間沒有信息傳遞時,屬于非直接耦合應(yīng)采用的總體原則: 盡量使用數(shù)據(jù)耦合 少用控制耦合 限制公共耦合的范圍

8、完全不用內(nèi)容耦合軟件設(shè)計的基本原理12博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計耦合性舉例2 數(shù)據(jù)耦合數(shù)據(jù)耦合3 標(biāo)記耦合標(biāo)記耦合住戶詳情中包含了“本月用電量”和“本月用水量”模塊ATRC:.模塊BGOTO TRC6 內(nèi)容耦合內(nèi)容耦合5 公共耦合公共耦合4 控制耦合控制耦合13博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計內(nèi)聚性(由高到低): 功能內(nèi)聚:模塊的所有成分對完成單一功能是最基本的,且該模塊對完成這一功能而言是充分必要的。 順序內(nèi)聚:各成分與一個功能相關(guān),且一個成分的輸出作為另一成分的輸入。 通信內(nèi)聚:各成分都操作在

9、同一數(shù)據(jù)集或生成同一數(shù)據(jù)集。 過程內(nèi)聚:處理成分必須以特定的次序執(zhí)行。 時間內(nèi)聚:一個模塊完成的功能必須在同一時間內(nèi)完成,而這些功能只是因為時間因素關(guān)聯(lián)在一起。 邏輯內(nèi)聚:幾個邏輯上相關(guān)的功能放在同一模塊中。 偶然內(nèi)聚:一個模塊之內(nèi)各成分之間沒有任何關(guān)系。軟件設(shè)計的基本原理14博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計軟件設(shè)計的基本原理順序內(nèi)聚順序內(nèi)聚通信內(nèi)聚通信內(nèi)聚內(nèi)聚性舉例15博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計軟件設(shè)計工具n HIPO (Hierarchy Plus/Input/Processing/Outpu

10、t)HIPO圖是IBM公司在20世紀(jì)70年代發(fā)展起來的用于描述軟件結(jié)構(gòu)的圖形工具。它實質(zhì)上是在描述軟件總體模塊結(jié)構(gòu)的層次圖(H圖)的基礎(chǔ)上,加入了用于描述每個模塊輸入/輸出數(shù)據(jù)和處理功能的IPO圖,因此它的中文全名為層次圖輸入/處理/輸出圖。H圖:用于在體系結(jié)構(gòu)設(shè)計過程中描繪軟件的層次結(jié)構(gòu)。H圖中每一個矩形框代表一個模塊,圖中最頂層的矩形框表示系統(tǒng)中的主控模塊,矩形框之間的連線用于表示模塊之間的調(diào)用關(guān)系。IPO圖:描繪模塊的輸入數(shù)據(jù)、加工和輸出數(shù)據(jù)之間的關(guān)系。層次圖中每個矩形框相對應(yīng)有IPO圖,來描述該矩形框所代表的模塊的具體處理過程,作為對層次圖中內(nèi)容的補(bǔ)充說明。IPO圖的基本形式為:在圖中

11、左邊的框中列出模塊涉及的所有輸入數(shù)據(jù),在中間的框中列出主要的加工,在右邊的框中列出處理后產(chǎn)生的輸出數(shù)據(jù);圖中的箭頭用于指明輸入數(shù)據(jù)、加工和輸出結(jié)果之間的關(guān)系16博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計表示軟件結(jié)構(gòu)的HIPO圖訂貨處理1.0銷售管理系統(tǒng)進(jìn)貨處理2.0銷售統(tǒng)計3.0讀庫存記錄1.2輸入并檢驗訂單1.1缺貨處理4.0確定能否供貨1.3可供貨處理1.3.1缺貨貨單留底1.3.2H圖:圖:每個矩形框代表一個模塊,連線表示“調(diào)用”而非“組成”。所謂HIPO,即對每個模塊附一張IPO圖。每個IPO圖中應(yīng)明確標(biāo)出對應(yīng)模塊的編號。17博學(xué)精進(jìn),修身勵行;因勢

12、利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計表示軟件結(jié)構(gòu)的HIPO圖 IPO表系統(tǒng):_ 作者: _ 模塊:_ 日期: _ 編號: 1.3 被調(diào)用: 調(diào)用: 輸入 輸出: 處理: 局部數(shù)據(jù)元素文件名:全局變量:注釋:銷售管理系統(tǒng)確定能否訂貨訂貨處理可供貨模塊缺貨訂單留底訂單訂貨量X貨物庫存量Y供貨標(biāo)志庫存文件IF YX THEN 可供貨處理 ELSE 缺貨訂單留底ENDIFIPO圖:圖:18博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計n HIPO圖特點表示模塊層次和輸入輸出數(shù)據(jù)及處理功能。H圖主要表示主功能模塊與次功能模塊的關(guān)系。高層IPO圖描述主功能

13、模塊與次功能模塊的輸入、輸出和處理。低層IPO圖描述H圖中低層次的具體設(shè)計。每層以34個模塊為宜。n HIPO圖存在的不足不能詳細(xì)描述算法。不容易轉(zhuǎn)換成高級語言。表示軟件結(jié)構(gòu)的HIPO圖19博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計n 軟件結(jié)構(gòu)圖模塊:模塊的表示是表明該模塊的功能。矩形表示模塊,現(xiàn)成的模塊以雙縱邊矩形表示。 模塊間的控制關(guān)系:上層模塊為了完成其任務(wù)必須依賴其他模塊。模塊間的信息傳遞:數(shù)據(jù)流和控制流軟件結(jié)構(gòu)圖ABCMABCA 查詢成績B 學(xué)生記錄學(xué)號查詢標(biāo)志20博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計軟件結(jié)

14、構(gòu)圖n 軟件結(jié)構(gòu)圖注意事項同一名字的模塊在結(jié)構(gòu)圖中僅能出現(xiàn)一次。調(diào)用關(guān)系只能從上到下。不嚴(yán)格表示模塊的調(diào)用次序,習(xí)慣上從左到右,有時為了減少連線的交叉,適當(dāng)?shù)卣{(diào)整同一層模塊的左右位置,以保證結(jié)構(gòu)圖的清晰。結(jié)構(gòu)圖并不指明什么時候調(diào)用下層模塊,只表明一個模塊調(diào)用哪些模塊,至于模塊內(nèi)還有沒有其他成分則完全沒有表示。21博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計軟件結(jié)構(gòu)圖舉例產(chǎn)生最佳解原始輸入得到好輸入計算最佳解輸出結(jié)果讀輸入編輯輸入結(jié)果格式化顯示輸出原始輸入好輸入好輸入解解編輯結(jié)果格式化解解格式化解軟件結(jié)構(gòu)圖示意22博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8

15、章章 軟件過程設(shè)計軟件過程設(shè)計結(jié)構(gòu)圖的形態(tài)特征n 深度、寬度、扇入、扇出。深度、寬度、扇入、扇出。TDMABC扇入扇入扇出扇出深深度度寬度寬度23博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計詳細(xì)設(shè)計工具n 詳細(xì)設(shè)計結(jié)果基本上決定了最終程序代碼的質(zhì)量。不僅要邏輯正確,性能滿足,還要簡明易懂。采用自頂向下,逐步求精的程序設(shè)計方法。使用三種基本控制結(jié)構(gòu)構(gòu)造程序:順序、選擇、循環(huán)。單入口,單出口的共同特點。n 常用三種工具:圖形、表格和語言。程序流程圖(PFC)PAD圖盒圖(N-S圖)過程設(shè)計語言24博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟

16、件過程設(shè)計程序流程圖n 程序流程圖PFC(program flow chart)程序流程圖是最早出現(xiàn)且使用較為廣泛的工具之一,能夠有效地描述問題求解過程中的程序邏輯結(jié)構(gòu)。程序流程圖中經(jīng)常使用的基本符號如下:25博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計n 引入了關(guān)于三種動作控制結(jié)構(gòu)的術(shù)語/符號,三種控制結(jié)構(gòu):順序選擇循環(huán)程序流程圖26博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計程序流程圖n 程序流程圖的主要優(yōu)點在于對程序的控制流程描述直觀清晰,使用靈活,便于閱讀和掌握,因此在20世紀(jì)40年代末到70年代初被普遍采用。n 隨著

17、程序設(shè)計方法的發(fā)展,程序流程圖的許多缺點逐漸暴露出來。這些缺點主要體現(xiàn)在以下方面:程序流程圖中可以隨心所欲地使用流程線,容易造成程序控制結(jié)構(gòu)的混亂,與結(jié)構(gòu)化程序設(shè)計的思想相違背。程序流程圖難以描述逐步求精的過程,容易導(dǎo)致程序員過早考慮程序的控制流程,而忽略程序全局結(jié)構(gòu)的設(shè)計。程序流程圖難以表示系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)。正是由于程序流程圖存在的這些缺點,越來越多的軟件設(shè)計人員放棄了對它的使用,而去選擇其他一些更有利于結(jié)構(gòu)化設(shè)計的表達(dá)工具,如NS圖和PAD圖。27博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計N-S圖n N-S圖(Nassi-Shneiderman)N-S圖

18、又稱為盒圖,它是為了保證結(jié)構(gòu)化程序設(shè)計而由Nassi和Shneiderman共同提出的一種圖形工具。28博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計n 示例N-S圖29博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計N-S圖n N-S圖的主要優(yōu)點:在N-S圖中,所有的程序結(jié)構(gòu)均使用矩形框表示,它可以清晰地表達(dá)結(jié)構(gòu)中的嵌套及模塊的層次關(guān)系。由于N-S圖中沒有流程線,不可能隨意轉(zhuǎn)移控制,因而表達(dá)出的程序結(jié)構(gòu)必然符合結(jié)構(gòu)化程序設(shè)計“自頂向下逐步求精”的思想,有利于培養(yǎng)軟件設(shè)計人員的良好設(shè)計風(fēng)格。域可以從圖上明顯看出,功能域的表達(dá)明確。容

19、易確定局部數(shù)據(jù)與全局?jǐn)?shù)據(jù)的作用域。很容易表達(dá)模塊的層次與嵌套關(guān)系。n N-S圖的主要缺優(yōu)點:有控制流線,不能任意轉(zhuǎn)移??刂脐P(guān)系隱含,循環(huán)關(guān)系隱含。當(dāng)所描述的程序嵌套層次較多時,N-S圖的內(nèi)層方框會越畫越小,不僅影響可讀性而且不易修改。30博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計PAD圖n 問題分析圖PAD(problem analysis diagram)PAD圖是日立公司在1973年提出的一種用于詳細(xì)設(shè)計的圖形表達(dá)工具,它只能用于結(jié)構(gòu)化程序的描述。PAD圖采用了易于使用的樹型結(jié)構(gòu)圖形符號,既利于清晰地表達(dá)程序結(jié)構(gòu),又利于修改。PAD圖中使用的基本符號:3

20、1博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計n 示例PAD圖32博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計PAD圖n PAD圖具有的主要優(yōu)點有:使用PAD圖描述的程序結(jié)構(gòu)層次清晰邏輯結(jié)構(gòu)關(guān)系直觀、易讀、易記、易修改。PAD圖為多種常用高級語言提供了相應(yīng)的圖形符號,每種控制語句都與一個專門的圖形符號相對應(yīng),易于PAD圖向高級語言源程序轉(zhuǎn)換。支持自頂向下、逐步求精的設(shè)計過程。支持結(jié)構(gòu)化的程序設(shè)計原理,既能夠描述程序的邏輯結(jié)構(gòu),又能夠描述系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)。33博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件

21、過程設(shè)計PDLn 過程設(shè)計語言(Process Design Language)是一種用于描述模塊算法設(shè)計和處理細(xì)節(jié)的語言。分內(nèi)外兩層語言。外層具有嚴(yán)格的關(guān)鍵字語法,內(nèi)層表示實際操作和條件的自然語言,語法自由。n 程序結(jié)構(gòu)有:順序結(jié)構(gòu)、選擇結(jié)構(gòu)、重復(fù)結(jié)構(gòu)、出口結(jié)構(gòu)、擴(kuò)充結(jié)構(gòu)(模塊定義、模塊調(diào)用、數(shù)據(jù)定義、輸入/輸出)等。n PDL語言的主要特點各種定義語句及控制結(jié)構(gòu)的表達(dá)都具有嚴(yán)格的語法形式,使程序結(jié)構(gòu)、數(shù)據(jù)說明等更加清晰。提供了數(shù)據(jù)說明機(jī)制,可用于定義簡單及復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。提供了模塊的定義和調(diào)用機(jī)制,方便了程序模塊化的表達(dá)。n PDL語言的缺點不如圖形工具直觀清晰不如判定表和判定樹清晰簡單3

22、4博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計軟件結(jié)構(gòu)設(shè)計方法n 軟件結(jié)構(gòu)包括兩部分:程序模塊結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。程序結(jié)構(gòu)表明了程序各部件的組織情況,通常是樹狀或網(wǎng)狀結(jié)構(gòu),并包含了在程序控制上的層次關(guān)系。n 為了實現(xiàn)設(shè)計目標(biāo),總體設(shè)計的具體任務(wù)是: 將DFD轉(zhuǎn)化為MSD,分二步實現(xiàn):n 第一步:將DFD轉(zhuǎn)化為初始的模塊結(jié)構(gòu)圖變換型數(shù)據(jù)流圖事務(wù)型數(shù)據(jù)流圖變換設(shè)計事務(wù)設(shè)計n 第二步:基于模塊化原理“高內(nèi)聚低耦合”,給出一些設(shè)計規(guī)則經(jīng)驗規(guī)則,將初始的MSD轉(zhuǎn)化為最終可供詳細(xì)設(shè)計使用的MSD 。35博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程

23、設(shè)計軟件結(jié)構(gòu)設(shè)計方法n 數(shù)據(jù)流圖分類變換型事務(wù)型36博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計n 變換設(shè)計XXXX系統(tǒng)系統(tǒng)變換模塊變換模塊 get eput hput hput gput g get c get c get d get d c c,d-ed-ee-fe-ff-gf-g,h hh-yh-yput yput yg-xg-xput xput xx-zx-zput zput zget aget aget bget bb-db-da-ca-ceeg,hhgzzxxgyyhdbcacdeefg,hfxab37博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8

24、8章章 軟件過程設(shè)計軟件過程設(shè)計n 事務(wù)設(shè)計事務(wù)中心事務(wù)中心輸入模塊輸入模塊路徑路徑1路徑路徑2輸出模塊輸出模塊aycgbfc-ecee-gegb-dbdd-fdf38博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計變換型數(shù)據(jù)流圖由輸入、變換和輸出三部分組成。變換中心邏輯輸入邏輯輸出物理輸出物理輸入時間內(nèi)部表示信息輸入流變換流信息流外部表示輸出流39博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計事務(wù)型數(shù)據(jù)流圖 數(shù)據(jù)沿著輸入通路到達(dá)一個加工T。T將輸入數(shù)據(jù)分解成一串發(fā)散的數(shù)據(jù)流,形成許多的活動路徑,并根據(jù)輸入數(shù)據(jù)的類型在若干動作序列中

25、選出一個來執(zhí)行。T事務(wù)處理中心接收輸入數(shù)據(jù)。分析輸入數(shù)據(jù),確定類型。根據(jù)事務(wù)類型選取一活動通路。40博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計變換分析設(shè)計n 確定輸入流和輸出流的邊界,從而孤立出變換中心(1)檢查“輸入流”的邊界從輸入的數(shù)據(jù)源開始,沿著每一個由數(shù)據(jù)源傳入的數(shù)據(jù)流的移動方向進(jìn)行跟蹤分析,逐個分析它所經(jīng)過的處理邏輯功能。如果僅是傳入的數(shù)據(jù)流作形式上的轉(zhuǎn)換,邏輯上沒有進(jìn)行實際的數(shù)據(jù)處理功能,則這些處理邏輯屬于系統(tǒng)的“輸入處理部分”。順著傳入的數(shù)據(jù)流的移動方向,一直跟蹤到它被真正地處理為止。(2)檢查“輸出流”的邊界從輸出結(jié)果的地方開始,逆著每一個傳

26、遞出去的數(shù)據(jù)流,由外向里反方向跟蹤,逐個分析它的處理邏輯功能,一直反方向跟蹤到它被真正地產(chǎn)生出來為止。(3)得到變換中心根據(jù)前兩步的分析結(jié)果,畫出一個閉環(huán)界線,在界線以內(nèi)的就是變換中心。41博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計變換分析設(shè)計n 設(shè)計軟件結(jié)構(gòu)的頂層和第一層變換結(jié)構(gòu)CmCICTCO第一級分解第一級分解42博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計變換分析設(shè)計n 設(shè)計軟件結(jié)構(gòu)的頂層和第一層變換結(jié)構(gòu)(1)頂層主模塊Cm是抽象出來的,以系統(tǒng)的名字命名,協(xié)調(diào)控制下屬模塊,完成系統(tǒng)各項功能。(2)第一層: 為每一個邏

27、輯輸入設(shè)計一個輸入模塊功能:為主模塊提供數(shù)據(jù)輸入 為每一個邏輯輸出設(shè)計一個輸出模塊功能:為主模塊提供數(shù)據(jù)輸出 為中心變換設(shè)計一個變換模塊功能:將邏輯輸入轉(zhuǎn)換成邏輯輸出43博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計變換分析設(shè)計n 設(shè)計中、下層模塊自頂向下,逐層分解輸入模塊的下屬模塊設(shè)計為每個輸入模塊設(shè)計兩個下層模塊 一個用于接收數(shù)據(jù) 另一個用于將這些數(shù)據(jù)轉(zhuǎn)換為所要求的數(shù)據(jù) 重復(fù)直到物理輸入為止輸出模塊的下屬模塊設(shè)計每個輸出模塊設(shè)計兩個下層模塊 一個將調(diào)用模塊提供的數(shù)據(jù)轉(zhuǎn)換為所需的數(shù)據(jù)形式。 另一個用于發(fā)送數(shù)據(jù) 重復(fù)直到物理輸出為止變換模塊的下屬模塊設(shè)計按照模塊

28、獨立性的原則來組織其結(jié)構(gòu),一般每個基本加工設(shè)計一個功能模塊。A to BGet BGet AaabPut BPut AbaaB to A44博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計變換分析設(shè)計ABCDEFGHf1f2f3f4f5f6f7f8f9f10f11變換中心輸入輸出主模塊f2Get f3將f3變換成f7和f8Put f7Get f2BFPut f9f3f7f9f7f9f3f7f8Put f8EDCf8GAHPut f10Put f11Gut f1f1f1f2f8f10f10f11f10f11f3f2初始結(jié)構(gòu)圖初始結(jié)構(gòu)圖45博學(xué)精進(jìn),修身勵行;因勢利導(dǎo)

29、,成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計變換分析設(shè)計n 設(shè)計的優(yōu)化根據(jù)設(shè)計準(zhǔn)則輸入部分的求精對每個物理輸入設(shè)置專門模塊,以體現(xiàn)系統(tǒng)的外部接口;其他輸入模塊并非真正輸入,當(dāng)它與轉(zhuǎn)換數(shù)據(jù)的模塊都很簡單時,可將它們合并成一個模塊。Get CGet BGet AabA to BGet BGet AaabB to CGet Cbbc46博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計變換分析設(shè)計n 設(shè)計的優(yōu)化根據(jù)設(shè)計準(zhǔn)則輸出部分的求精為每個物理輸出設(shè)置專門模塊,同時注意把相同或類似的物理輸出模塊合并在一起,以減低耦合度。Put BPut AbaaB to APut BPut Aa47博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過程設(shè)計軟件過程設(shè)計變換分析設(shè)計n 設(shè)計的優(yōu)化根據(jù)設(shè)計準(zhǔn)則變換部分的求精:根據(jù)設(shè)計準(zhǔn)則,對模塊進(jìn)行合并和調(diào)整。軟件結(jié)構(gòu)的求精,具有很大的經(jīng)驗性。追求“高內(nèi)聚,低耦合”方法: 設(shè)計有獨立功能的模塊 模塊間傳遞數(shù)據(jù)型的參數(shù) 模塊間共享信息盡量少48博學(xué)精進(jìn),修身勵行;因勢利導(dǎo),成就人生第第8 8章章 軟件過

溫馨提示

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

評論

0/150

提交評論