




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
概述(P66)
需求分析解決系統(tǒng)“做什么”的問(wèn)題,軟件設(shè)計(jì)解決系統(tǒng)“怎么做”的問(wèn)題,分為總體設(shè)計(jì)(概要設(shè)計(jì))和詳細(xì)設(shè)計(jì).軟件設(shè)計(jì)是把軟件需求變換成為軟件的具體解決方案.2023/8/221概述(P66)2023/8/21剩下的階段▲
總體設(shè)計(jì)▲詳細(xì)設(shè)計(jì)▲編碼▲調(diào)試▲維護(hù)2023/8/222剩下的階段▲總體設(shè)計(jì)2023/8/22軟件設(shè)計(jì)分為兩個(gè)階段:(1)總體設(shè)計(jì)(概要設(shè)計(jì))確定軟件的結(jié)構(gòu)以及各組成成分(子系統(tǒng)或模塊)之間的相互關(guān)系。(2)詳細(xì)設(shè)計(jì)確定模塊內(nèi)部的算法和數(shù)據(jù)結(jié)構(gòu),產(chǎn)生描述各模塊程序過(guò)程的詳細(xì)文檔。2023/8/223軟件設(shè)計(jì)分為兩個(gè)階段:(1)總體設(shè)計(jì)(概要設(shè)計(jì))2023/8總體設(shè)計(jì)的任務(wù)將系統(tǒng)劃分成模塊決定每個(gè)模塊的功能決定模塊的調(diào)用關(guān)系決定模塊的界面,即模塊間傳遞的數(shù)據(jù)2023/8/224總體設(shè)計(jì)的任務(wù)將系統(tǒng)劃分成模塊2023/8/24軟件總體設(shè)計(jì)基礎(chǔ)(P67)▲模塊模塊就是程序?qū)ο蟮挠忻值募匣蛘哒f(shuō)是一系列過(guò)程的總稱.▲
軟件結(jié)構(gòu)軟件的結(jié)構(gòu)就是軟件內(nèi)部各模塊之間的關(guān)系表示.▲總體設(shè)計(jì)總體設(shè)計(jì)是軟件總體結(jié)構(gòu)的設(shè)計(jì).▲
詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)是軟件模塊內(nèi)部的過(guò)程設(shè)計(jì).2023/8/225軟件總體設(shè)計(jì)基礎(chǔ)(P67)▲模塊2023/8/25控制結(jié)構(gòu)(程序結(jié)構(gòu))控制結(jié)構(gòu)是軟件模塊間關(guān)系的表示2023/8/226控制結(jié)構(gòu)(程序結(jié)構(gòu))控制結(jié)構(gòu)是軟件模塊間2023/8/26控制結(jié)構(gòu)圖示(P68)2023/8/227控制結(jié)構(gòu)圖示(P68)2023/8/27控制結(jié)構(gòu)的層次規(guī)則只有一個(gè)頂層(0層)模塊
0層外任一模塊都會(huì)在它的鄰層存在一模塊與它有關(guān)同層模塊間不發(fā)生聯(lián)系2023/8/228控制結(jié)構(gòu)的層次規(guī)則只有一個(gè)頂層(0層)模塊2023/8/28軟件結(jié)構(gòu)度量術(shù)語(yǔ)深度寬度扇出扇入(模塊的層數(shù))(同一層最大模塊數(shù))(一個(gè)模塊直接調(diào)用的模塊數(shù))(調(diào)用一個(gè)給定模塊的模塊個(gè)數(shù))2023/8/229軟件結(jié)構(gòu)度量術(shù)語(yǔ)深寬度扇出扇入(模塊的(同一層最大模塊數(shù))(結(jié)構(gòu)圖(SCStructureChart)結(jié)構(gòu)圖主要成分(page69)模塊——用方框表示,方框中寫(xiě)有模塊的名字,一個(gè)模塊的名字應(yīng)適當(dāng)?shù)胤从尺@個(gè)模塊的功能,這就在某種程度上反映了塊內(nèi)聯(lián)系;調(diào)用——從一個(gè)模塊指向另一個(gè)模塊的箭頭表示前一模塊中含有對(duì)后一模塊的調(diào)用;數(shù)據(jù)——調(diào)用箭頭旁邊的小箭頭表示調(diào)用時(shí)從一個(gè)模塊傳入送給另一個(gè)模塊的數(shù)據(jù),小箭頭也指出了傳送的方向。2023/8/2210結(jié)構(gòu)圖(SCStructureChart)結(jié)構(gòu)圖主要成分結(jié)構(gòu)圖(SCStructureChart)SD方法在概要設(shè)計(jì)中的主要表達(dá)工具約定:編輯學(xué)生記錄讀學(xué)生記錄學(xué)生數(shù)據(jù)無(wú)此學(xué)生學(xué)號(hào)不加區(qū)分的數(shù)據(jù)數(shù)據(jù)信息控制信息2023/8/2211結(jié)構(gòu)圖(SCStructureChart)SD方法在概要SC中的四種模塊傳入模塊(a)(b)AA傳出模塊BB變換模塊(c)CD協(xié)調(diào)模塊E(d)EFF2023/8/2212SC中的四種模塊傳入模塊(a)(b)AA傳出模塊BB變換模塊SC中的選擇調(diào)用ACBDA根據(jù)內(nèi)部判斷決定是否調(diào)用BA按另一判定結(jié)果選擇調(diào)用C或D2023/8/2213SC中的選擇調(diào)用ACBDA根據(jù)內(nèi)A按另一判2023/8/21SC中的循環(huán)調(diào)用ABCA根據(jù)內(nèi)在的循環(huán)重復(fù)調(diào)用B、C等模塊2023/8/2214SC中的循環(huán)調(diào)用ABCA根據(jù)內(nèi)在的循環(huán)重2023/8/214結(jié)構(gòu)圖(SC)舉例醫(yī)院管理系統(tǒng)門(mén)診管理藥房管理藥庫(kù)管理病房管理財(cái)務(wù)管理處方掛號(hào)處理掛號(hào)費(fèi)總計(jì)掛號(hào)單掛號(hào)費(fèi)總計(jì)出庫(kù)處理進(jìn)藥管理病歷管理處方管理常規(guī)處理2023/8/2215結(jié)構(gòu)圖(SC)舉例醫(yī)院管理系統(tǒng)門(mén)診藥房藥庫(kù)病房財(cái)務(wù)處方掛號(hào)掛結(jié)構(gòu)圖的優(yōu)點(diǎn)結(jié)構(gòu)圖具有很高的可讀性,容易使人理解,也容易和用戶討論結(jié)構(gòu)圖是自頂向下逐層擴(kuò)展,能夠表達(dá)總體一級(jí)的軟件結(jié)構(gòu)結(jié)構(gòu)圖既有嚴(yán)密性,又有靈活性結(jié)構(gòu)圖易于維護(hù)和修改2023/8/2216結(jié)構(gòu)圖的優(yōu)點(diǎn)結(jié)構(gòu)圖具有很高的可讀性,容易使人理解,也容易和用模塊模塊是具有一定功能的可以用名詞調(diào)用的程序語(yǔ)句集合,如:獨(dú)立的匯編程序COBOL的段和節(jié)Pascal過(guò)程FORTRAN的子程序匯編的宏2023/8/2217模塊模塊是具有一定功能的可以用名詞調(diào)用的程序語(yǔ)句集合,如:2模塊化(Modularity)模塊化是好的軟件設(shè)計(jì)的一個(gè)基本準(zhǔn)則高層模塊從整體上把握問(wèn)題,隱蔽細(xì)節(jié)復(fù)雜問(wèn)題較小問(wèn)題
分解可減小解題所需的總的工作分解2023/8/2218模塊化(Modularity)模塊化是好的軟件設(shè)計(jì)的一個(gè)基本例:將問(wèn)題(P1+P2)分解為P1,P2設(shè)函數(shù)C(x)定義問(wèn)題
x
的復(fù)雜程度函數(shù)E(x)確定解決問(wèn)題
x
需要的工作量對(duì)問(wèn)題P1和P2,如:
C(P1)>C(P2)顯然:E(P1)>E(P2)有規(guī)律:C(P1+P2)>C(P1)+C(P2)
E(P1+P2)>E(P1)+E(P2)
"各個(gè)擊破"理論2023/8/2219例:將問(wèn)題(P1+P2)分解為P1,P2設(shè)函數(shù)C(x)定義問(wèn)模塊度成本或工作量模塊數(shù)量軟件總成本集成成本成本/模塊M最小成本區(qū)域2023/8/2220模塊度成本或工作量模塊數(shù)量軟件總成本集成成本成本/模塊M最小模塊的特征(P72)▲
抽象抽象是抽出事物的本質(zhì)特性而暫時(shí)不考慮他們的細(xì)節(jié).▲
信息隱蔽
模塊所包含的信息,不允許其它不需要這些信息的模塊訪問(wèn),獨(dú)立的模塊間僅僅交換為完成系統(tǒng)功能而必須交換的信息。2023/8/2221模塊的特征(P72)▲抽象2023/8/221模塊獨(dú)立性度量(P73)▲
模塊獨(dú)立的概念模塊獨(dú)立是指該模塊能完成一個(gè)相對(duì)獨(dú)立的特定子功能,并且與其他模塊之間的接口很簡(jiǎn)單.模塊獨(dú)立是軟件設(shè)計(jì)模塊化、抽象和信息隱蔽的直接結(jié)果.▲
獨(dú)立的優(yōu)勢(shì)
1.具有獨(dú)立模塊的軟件比較容易開(kāi)發(fā),接口簡(jiǎn)化,有利于團(tuán)隊(duì)合作.2.獨(dú)立的模塊比較容易測(cè)試和維護(hù).2023/8/2222模塊獨(dú)立性度量(P73)▲模塊獨(dú)立的概念2023/8/22衡量獨(dú)立性標(biāo)準(zhǔn)(P73)▲
聚合聚合是衡量一個(gè)模塊內(nèi)部各個(gè)元素之間的彼此結(jié)合的緊密程度.▲
耦合耦合是衡量不同模塊之間相互依賴的緊密程度.
2023/8/2223衡量獨(dú)立性標(biāo)準(zhǔn)(P73)▲聚合2023/8/223獨(dú)立性理想目標(biāo)理想目標(biāo):低耦合、高聚合2023/8/2224獨(dú)立性理想目標(biāo)理想目標(biāo):2023/8/224塊內(nèi)聯(lián)系(聚合)偶然聚合邏輯聚合時(shí)間聚合通信聚合順序聚合功能聚合2023/8/2225塊內(nèi)聯(lián)系(聚合)偶然聚合2023/8/225偶然聚合(巧合聚合)PQSTMOVEATOBREADCARDFILEMOVECTOD模塊T中的三個(gè)語(yǔ)句沒(méi)有任何聯(lián)系缺點(diǎn):可理解性差,可修改性差例:2023/8/2226偶然聚合(巧合聚合)PQSTMOVEATO邏輯聚合把幾種相關(guān)功能(邏輯上相似的功能)組合在一模塊內(nèi),每次調(diào)用由傳給模塊的參數(shù)確定執(zhí)行哪種功能。2023/8/2227邏輯聚合把幾種相關(guān)功能(邏輯上相似的功能)組合在一模塊內(nèi),每邏輯聚合模塊ABCEFGABCEFGA1B1C1EFG模塊內(nèi)部邏輯E、F、G邏輯功能相似,組成新模塊EFG缺點(diǎn):增強(qiáng)了耦合程度(控制耦合)
不易修改,效率低公用代碼段公用代碼段2023/8/2228邏輯聚合模塊ABCEFGABCEFGA1B1C1EFG模塊內(nèi)時(shí)間聚合(經(jīng)典聚合)模塊完成的功能必須在同一時(shí)間內(nèi)執(zhí)行,這些功能只因時(shí)間因素關(guān)聯(lián)在一起。例如:初始化系統(tǒng)模塊、系統(tǒng)結(jié)束模塊、緊急故障處理模塊等均是時(shí)間性聚合模塊.2023/8/2229時(shí)間聚合(經(jīng)典聚合)模塊完成的功能必須在同一時(shí)間2023/8通信聚合一個(gè)模塊內(nèi)各個(gè)組成部分的處理動(dòng)作都使用相同的輸入數(shù)據(jù)或產(chǎn)生相同的輸出數(shù)據(jù).2023/8/2230通信聚合一個(gè)模塊內(nèi)各個(gè)組成部分的處理動(dòng)作都使用相同的輸入數(shù)據(jù)通信聚合模塊例產(chǎn)生工資報(bào)表計(jì)算平均工資職工工資記錄職工工資報(bào)表平均工資產(chǎn)生職工工資報(bào)表并計(jì)算平均工資模塊2023/8/2231通信聚合模塊例產(chǎn)生工資報(bào)表計(jì)算平均工資職工工資記錄職工工資報(bào)順序聚合模塊內(nèi)各處理成分相關(guān),且必須以特定次序執(zhí)行2023/8/2232順序聚合模塊內(nèi)各處理成分相關(guān),2023/8/232順序聚合模塊讀入成績(jī)單審查成績(jī)單統(tǒng)計(jì)成績(jī)打印成績(jī)讀入并審查成績(jī)單統(tǒng)計(jì)并打印成績(jī)單2023/8/2233順序聚合模塊讀入審查統(tǒng)計(jì)打印讀入并審查成績(jī)單統(tǒng)計(jì)并打印成績(jī)單功能聚合模塊僅包括為完成某個(gè)功能所必須的所有成分。模塊所有成分共同完成一個(gè)功能,缺一不可聚合性最強(qiáng)2023/8/2234功能聚合模塊僅包括為完成某個(gè)功能所必須的所有成分。2023/模塊間聯(lián)系(耦合)(P73)非直接耦合數(shù)據(jù)耦合特征耦合控制耦合公共耦合內(nèi)容耦合2023/8/2235模塊間聯(lián)系(耦合)(P73)非直接耦合2023/8/235非直接耦合兩個(gè)模塊沒(méi)有直接關(guān)系(模塊1和模塊2),模塊獨(dú)立性最強(qiáng)。模塊1模塊2模塊3模塊42023/8/2236非直接耦合兩個(gè)模塊沒(méi)有直接關(guān)系(模塊1和模塊2),模塊獨(dú)數(shù)據(jù)耦合
一模塊調(diào)用另一模塊時(shí),被調(diào)用模塊的輸入、輸出都是簡(jiǎn)單的數(shù)據(jù)(若干參數(shù))。屬松散耦合。37數(shù)據(jù)耦合一模塊調(diào)用另一模塊時(shí),被調(diào)用模塊的輸入、輸出數(shù)據(jù)耦合舉例開(kāi)發(fā)票計(jì)算水費(fèi)單價(jià)數(shù)量金額38數(shù)據(jù)耦合舉例開(kāi)發(fā)票計(jì)算水費(fèi)單價(jià)金額38特征耦合
兩個(gè)模塊與同一個(gè)數(shù)據(jù)結(jié)構(gòu)(包括若干個(gè)數(shù)據(jù)項(xiàng))有關(guān)。
39特征耦合兩個(gè)模塊與同一個(gè)數(shù)據(jù)結(jié)構(gòu)(包括若干個(gè)數(shù)據(jù)項(xiàng))控制耦合
一模塊向下屬模塊傳遞的信息(開(kāi)關(guān)量、標(biāo)志等控制被調(diào)用模塊決策的變量)控制了被調(diào)用模塊的內(nèi)部邏輯。40控制耦合 一模塊向下屬模塊傳遞的信息(開(kāi)關(guān)量、標(biāo)志等控控制耦合舉例A計(jì)算平均分或最高分B平均/最高(控制信號(hào))成績(jī)讀入分?jǐn)?shù)輸出結(jié)果計(jì)算平均分計(jì)算最高分平均/最高?B41控制耦合舉例A計(jì)算平均分B平均/最高成績(jī)讀入分?jǐn)?shù)輸出結(jié)果計(jì)算 控制耦合增加了理解和編程的復(fù)雜性,調(diào)用模塊必須知道被調(diào)模塊的內(nèi)部邏輯,增加了相互依賴(1)將被調(diào)用模塊內(nèi)的判定上移到調(diào)用模塊中進(jìn)行(2)被調(diào)用模塊分解成若干單一功能模塊去除模塊間控制耦合的方法42 控制耦合增加了理解和編程的復(fù)雜性,調(diào)用模塊必須知道被調(diào)模改控制耦合為數(shù)據(jù)耦合舉例A計(jì)算平均分B1平均成績(jī)最高成績(jī)計(jì)算最高分B243改控制耦合為數(shù)據(jù)耦合舉例A計(jì)算平均分B1平均成績(jī)最高成績(jī)計(jì)算公共耦合(公共數(shù)據(jù)區(qū)耦合) 一組模塊引用同一個(gè)公用數(shù)據(jù)區(qū)(也稱全局?jǐn)?shù)據(jù)區(qū)、公共數(shù)據(jù)環(huán)境)。公共數(shù)據(jù)區(qū)指:
全局?jǐn)?shù)據(jù)結(jié)構(gòu)共享通訊區(qū)內(nèi)存公共覆蓋區(qū)等44公共耦合(公共數(shù)據(jù)區(qū)耦合) 一組模塊引用同一個(gè)公用數(shù)據(jù)區(qū)(公共耦合舉例A公共數(shù)據(jù)區(qū)CCB模塊A、B、C間存在錯(cuò)綜復(fù)雜的聯(lián)系45公共耦合舉例A公共數(shù)據(jù)區(qū)CCB模塊A、B、C間存在錯(cuò)綜復(fù)雜的(1)軟件可理解性降低(2)診斷錯(cuò)誤困難(3)軟件可維護(hù)性差,(4)軟件可靠性差(公共數(shù)據(jù)區(qū)及全程變量無(wú)保護(hù)措施)慎用公共數(shù)據(jù)區(qū)和全程變量!!!公共耦合存在的問(wèn)題46(1)軟件可理解性降低公共耦合存在的問(wèn)題46內(nèi)容耦合一模塊直接訪問(wèn)另一模塊的內(nèi)部信息(程序代碼或數(shù)據(jù))最不好的耦合形式
!!!ABAB模塊代碼重疊Entry1……Entry1……多入口模塊47內(nèi)容耦合一模塊直接訪問(wèn)最不好的耦合形式!!!ABAB模塊代無(wú)耦合-沒(méi)有依賴關(guān)系松散耦合-有少量依賴關(guān)系緊密耦合-有很多依賴關(guān)系圖形表示耦合關(guān)系2023/8/2248無(wú)耦合-沒(méi)有依賴關(guān)系松散耦合-有緊密耦合-有圖形表示耦合關(guān)系耦合強(qiáng)度依賴的因素:一模塊對(duì)另一模塊的引用一模塊向另一模塊傳遞的數(shù)據(jù)量一模塊施加到另一模塊的控制的數(shù)量模塊間接口的復(fù)雜程度2023/8/2249耦合強(qiáng)度依賴的因素:一模塊對(duì)另一模塊的引用2023/8/24模塊間耦合的類型
低無(wú)直接耦合耦數(shù)據(jù)耦合合標(biāo)記耦合性控制耦合外部耦合公共耦合
高內(nèi)容耦合模塊獨(dú)立性弱(低耦合)強(qiáng)(中耦合)(較強(qiáng)耦合)(強(qiáng)耦合)2023/8/2250模塊間耦合的類型低無(wú)直接耦耦合、聚合與模塊獨(dú)立性關(guān)系耦合與聚合都是模塊獨(dú)立性的定性標(biāo)準(zhǔn),都反映模塊獨(dú)立性的良好程度。但耦合是直接的主導(dǎo)因素,聚合則輔助耦合共同對(duì)模塊獨(dú)立性進(jìn)行衡量。2023/8/2251耦合、聚合與模塊獨(dú)立性關(guān)系耦合與聚合都是模塊獨(dú)立性的定性標(biāo)準(zhǔn)改進(jìn)軟件結(jié)構(gòu)設(shè)計(jì)的指導(dǎo)原則
(軟件結(jié)構(gòu)設(shè)計(jì)的啟發(fā)式規(guī)則)(1)評(píng)價(jià)軟件初始結(jié)構(gòu),通過(guò)模塊的分解與合并減少模塊之間的耦合度,增加聚合度(2)模塊功能的完善化(3)將模塊的作用限制在模塊的控制范圍內(nèi)(4)深度、寬度、扇出和扇入適中(5)模塊大小適中(6)降低模塊接口的復(fù)雜性(7)模塊功能可預(yù)測(cè)(8)避免模塊的病態(tài)連接,力爭(zhēng)單入口,單出口2023/8/2252改進(jìn)軟件結(jié)構(gòu)設(shè)計(jì)的指導(dǎo)原則
(軟件結(jié)構(gòu)設(shè)計(jì)的啟發(fā)式規(guī)則)((1)模塊分解、合并,消除重復(fù)功能Q1CQ2CQ1Q2C改進(jìn)前Q1、Q2功能相似XYQ’XYXY重復(fù)部分改進(jìn)方法1:將Q1、Q2合并為Q’不可取改進(jìn)方法2:將Q1、Q2的公共部分分離出來(lái)2023/8/2253(1)模塊分解、合并,消除重復(fù)功能Q1CQ2CQ1Q2C改進(jìn)(2)模塊功能的完善化完整的模塊應(yīng)包括三部分:(1)執(zhí)行規(guī)定功能部分(2)出錯(cuò)處理部分(3)需返回給調(diào)用者數(shù)據(jù)時(shí),返回是否正確結(jié)束標(biāo)志。2023/8/2254(2)模塊功能的完善化完整的模塊應(yīng)包括三部分:2023/8(3)系統(tǒng)結(jié)構(gòu)的作用范圍和控制范圍系統(tǒng)中某一層上模塊中的判定或者條件語(yǔ)句(例如If語(yǔ)句)在系統(tǒng)中會(huì)產(chǎn)生多種后果,根據(jù)該判定的結(jié)果去執(zhí)行或不執(zhí)行其他層的某個(gè)模塊。該模塊就是“條件依賴”于某個(gè)判定判定的“作用范圍”是指包含“條件依賴”于該判定的處理的全部模塊一個(gè)模塊的“控制范圍”是指模塊本身和它的全體子模塊2023/8/2255(3)系統(tǒng)結(jié)構(gòu)的作用范圍和控制范圍系統(tǒng)中某一層上模塊中的判定將模塊的作用限制
在模塊的控制范圍內(nèi)CHDEGXFAILJKB模塊C的控制范圍:C、D、E、F、G、H如果模塊C
作出的決策影響了模塊L,L超出了C
的控制范圍2023/8/2256將模塊的作用限制
在模塊的控制范圍內(nèi)CHDEGXFAI作用范圍和控制范圍作用范圍應(yīng)該是這個(gè)判定所在模塊的控制范圍的一個(gè)子集但是實(shí)際上,在系統(tǒng)中控制范圍和作用范圍的關(guān)系常常并非如此。2023/8/2257作用范圍和控制范圍作用范圍應(yīng)該是這個(gè)判定所在模塊的控制范圍的作用范圍和控制范圍TopAYBB1X作用范圍TopABB1B2XTopYABXAYBB1B2X判定圖1.作用范圍在控制范圍之外圖2.作用范圍在控制范圍之內(nèi),但判定位置太高圖3.作用范圍在控制范圍之內(nèi),正確實(shí)現(xiàn)圖4.理想的作用范圍和控制范圍2023/8/2258作用范圍和控制范圍TopAYBB1X作用范圍TopABB1B(4)減少高扇出爭(zhēng)取高扇入編外人員工資取得工資數(shù)據(jù)計(jì)時(shí)制工資額薪金制工資額編外人員稅款編外人員扣款常規(guī)扣款稅收扣款計(jì)算實(shí)發(fā)工資避免平鋪結(jié)構(gòu)2023/8/2259(4)減少高扇出爭(zhēng)取高扇入編外取得計(jì)時(shí)薪金編外編外常規(guī)稅收增加中間層降低扇出編外人員工資取得工資數(shù)據(jù)計(jì)時(shí)制工資額薪金制工資額編外人員稅款編外人員扣款常規(guī)扣款稅收扣款計(jì)算實(shí)發(fā)工資計(jì)時(shí)工人實(shí)發(fā)工資計(jì)薪工人實(shí)發(fā)工資編外人員實(shí)發(fā)工資2023/8/2260增加中間層降低扇出編外取得工資數(shù)據(jù)計(jì)時(shí)薪金編外編外常規(guī)稅收(5)模塊大小適中模塊過(guò)大:可理解程度下降模塊過(guò)小:開(kāi)銷大于有效操作系統(tǒng)接口復(fù)雜2023/8/2261(5)模塊大小適中模塊過(guò)大:可理解程度下降2023/8/2(6)降低模塊接口的復(fù)雜性接口傳遞信息應(yīng)簡(jiǎn)單且和模塊功能一致。2023/8/2262(6)降低模塊接口的復(fù)雜性接口傳遞信息應(yīng)簡(jiǎn)單且和模塊功能一致(7)模塊功能可預(yù)測(cè)
模塊看成黑盒子,相同輸入產(chǎn)生相同輸出,其功能為可預(yù)測(cè)的。 模塊帶有內(nèi)部狀態(tài)其功能可能是不可預(yù)測(cè)的。難理解、難測(cè)試、難維護(hù)。2023/8/2263(7)模塊功能可預(yù)測(cè) 模塊看成黑盒子,相同輸入產(chǎn)生相同輸防止模塊功能過(guò)分局限 功能單一的模塊具有高內(nèi)聚。但如任意限制局部數(shù)據(jù)結(jié)構(gòu)的大小,過(guò)分限制控制流中可做的選擇或外部接口的模式,模塊功能就過(guò)分局限,使用范圍過(guò)分狹窄,缺乏靈活性和可擴(kuò)充性。
2023/8/2264防止模塊功能過(guò)分局限 功能單一的模塊具有高內(nèi)聚。2023(8)避免模塊的病態(tài)連接,力爭(zhēng)單入口,單出口防止指向模塊中間的分支或引用(針對(duì)內(nèi)容耦合)2023/8/2265(8)避免模塊的病態(tài)連接,力爭(zhēng)單入口,單出口防止指向模塊中間結(jié)構(gòu)化軟件設(shè)計(jì)2023/8/2266結(jié)構(gòu)化軟件設(shè)計(jì)2023/8/266面向數(shù)據(jù)流的設(shè)計(jì)方法SD以數(shù)據(jù)流圖為基礎(chǔ),它定義了把數(shù)據(jù)流圖(DFD)變換成軟件結(jié)構(gòu)的不同映射方法映射數(shù)據(jù)流圖DFD(問(wèn)題結(jié)構(gòu))軟件系統(tǒng)的結(jié)構(gòu)(程序結(jié)構(gòu))2023/8/2267面向數(shù)據(jù)流的設(shè)計(jì)方法SD以數(shù)據(jù)流圖為基礎(chǔ),它定義了把數(shù)據(jù)流圖系統(tǒng)結(jié)構(gòu)特征可歸納為兩種典型形式因?yàn)閿?shù)據(jù)流圖可分為兩種類型:
變換型數(shù)據(jù)流事務(wù)型數(shù)據(jù)流所以結(jié)構(gòu)化軟件設(shè)計(jì)分為兩種類型:變換型結(jié)構(gòu)設(shè)計(jì)(主要)事務(wù)型結(jié)構(gòu)設(shè)計(jì)(次要)2023/8/2268系統(tǒng)結(jié)構(gòu)特征可歸納為兩種典型形式因?yàn)閿?shù)據(jù)流圖可分為兩種類型:數(shù)據(jù)流圖基本模型(DFD)變換型數(shù)據(jù)流結(jié)構(gòu)事務(wù)型數(shù)據(jù)流結(jié)構(gòu)傳入變換傳出中心變換傳入部分傳出部分事務(wù)分析事務(wù)中心動(dòng)作
1動(dòng)作
2動(dòng)作
3接受接受部分2023/8/2269數(shù)據(jù)流圖基本模型(DFD)變換型事務(wù)型傳入變換傳出中心傳入變換型數(shù)據(jù)流圖舉例輸入信息物理輸入格式檢查處理顯示正確信息結(jié)果物理輸出數(shù)據(jù)中心變換邏輯輸入邏輯輸出傳入部分傳出部分特點(diǎn):具有明確的傳入、變換(或稱主加工)和傳出界面的DFD2023/8/2270變換型數(shù)據(jù)流圖舉例輸入物理格式處理顯示正確結(jié)果物理數(shù)據(jù)中心變事務(wù)型數(shù)據(jù)流圖舉例IMLNOABCDFEGH2023/8/2271事務(wù)型數(shù)據(jù)流圖舉例IMLNOABCDFEGH2023/8/2大型系統(tǒng)DFD中,變換型和事務(wù)型結(jié)構(gòu)往往共存:T事務(wù)中心傳入變換傳出2023/8/2272大型系統(tǒng)DFD中,變換型和事務(wù)型結(jié)構(gòu)往往共存:T事務(wù)中心傳入中心變換輸入輸出變換型結(jié)構(gòu)軟件設(shè)計(jì)事務(wù)中心接受路徑動(dòng)作路徑事務(wù)型結(jié)構(gòu)軟件設(shè)計(jì)由輸入、中心變換和輸出三部分組成具有在多種事務(wù)中選擇執(zhí)行某類事物的能力結(jié)構(gòu)化軟件設(shè)計(jì)
基本模型特征
2023/8/2273中心輸入輸出變換型事務(wù)接受動(dòng)事務(wù)型由輸入、中心變換和輸出三部面向數(shù)據(jù)流圖設(shè)計(jì)方法的設(shè)計(jì)步驟(1)精化DFD(2)確定DFD類型(3)把DFD映射到系統(tǒng)模塊結(jié)構(gòu),設(shè)計(jì)出模塊結(jié)構(gòu)的上層(4)基于DFD逐步分解高層模塊,設(shè)計(jì)出下層模塊(5)根據(jù)模塊獨(dú)立性原理,精化模塊結(jié)構(gòu)(6)模塊接口描述2023/8/2274面向數(shù)據(jù)流圖設(shè)計(jì)方法的設(shè)計(jì)步驟(1)精化DFD2023/8/面向數(shù)據(jù)流圖方法的設(shè)計(jì)過(guò)程精化數(shù)據(jù)流圖區(qū)分事務(wù)中心和數(shù)據(jù)接收路徑映射成變換結(jié)構(gòu)流類型區(qū)分輸入和輸出分支映射成事務(wù)結(jié)構(gòu)用啟發(fā)式設(shè)計(jì)規(guī)則精化軟件結(jié)構(gòu)導(dǎo)出接口描述和全程數(shù)據(jù)結(jié)構(gòu)復(fù)查詳細(xì)設(shè)計(jì)“事務(wù)”“變換”事務(wù)分析變換分析2023/8/2275面向數(shù)據(jù)流圖方法的設(shè)計(jì)過(guò)程精化數(shù)據(jù)流圖區(qū)分事務(wù)中心映射成變換SD方法的兩種映射過(guò)渡方法變換型DFD事務(wù)型DFD初始SC初始SC變換分析事務(wù)分析2023/8/2276SD方法的兩種映射過(guò)渡方法變換型DFD事務(wù)型DFD初始SC初初始的SC主模塊輸入模塊主加工模塊輸出模塊事務(wù)控制模塊接受模塊動(dòng)作發(fā)送模塊動(dòng)作1模塊動(dòng)作2模塊動(dòng)作3模塊由變換分析產(chǎn)生由事務(wù)分析產(chǎn)生2023/8/2277初始的SC主模塊輸入模塊主加工模塊輸出模塊事務(wù)控制模塊接受模(1)變換分析設(shè)計(jì)方法步驟:(1)區(qū)分傳入、變換中心、傳出部分,在DFD
上標(biāo)明分界線2023/8/2278(1)變換分析設(shè)計(jì)方法步驟:2023/8/278BCADEQPRWUVabcedrpuwv變換中心傳入部分傳出部分2023/8/2279BCADEQPRWUVabcedrpuwv變換中心傳入部分傳變換分析設(shè)計(jì)方法步驟:(2)第一級(jí)分解(建立初始SC框架)
設(shè)計(jì)頂層和第一層模塊2023/8/2280變換分析設(shè)計(jì)方法步驟:2023/8/280第一級(jí)分解的方法MCMTMAME2023/8/2281第一級(jí)分解的方法MCMTMAME2023/8/281第一級(jí)分解后的SCMCMTMAME第一層頂層c,ec,eu,wu,w傳入模塊傳出模塊中心變換模塊2023/8/2282第一級(jí)分解后的SCMCMTMAME第一層頂層c,ec,eu,變換分析設(shè)計(jì)方法步驟:(3)第二級(jí)分解(分解SC各分支)
自頂向下分解,設(shè)計(jì)出每個(gè)分支的中、下層模塊2023/8/2283變換分析設(shè)計(jì)方法步驟:2023/8/283傳入分支的分解(1)MACBAbacEDdec,e2023/8/2284傳入分支的分解(1)MACBAbacEDdec,e2023/傳入分支的分解(2)MAGetCbacRead
Ddec,eB
to
CbcdeabGetEGetBD
to
EAtoBReadA2023/8/2285傳入分支的分解(2)MAGetCbacReadDdec,傳出分支的分解MEWWriteVuuw,uvvvPutUUtoVMEUWriteWwwuw,uV(1)(2)2023/8/2286傳出分支的分解MEWWriteVuuw,uvvvPutU中心加工分支的分解MTPQRec,pru,wpr2023/8/2287中心加工分支的分解MTPQRec,pru,wpr2023/8(2)事務(wù)分析設(shè)計(jì)方法
任何情況下都可使用變換分析方法設(shè)計(jì)軟件結(jié)構(gòu),但如數(shù)據(jù)流具有明顯的事務(wù)特點(diǎn)時(shí)(有一個(gè)明顯的事務(wù)中心),以采用事務(wù)分析方法為宜。2023/8/2288(2)事務(wù)分析設(shè)計(jì)方法 任何情況下都可使用變換分析方法設(shè)事務(wù)分析設(shè)計(jì)方法步驟:(1)在DFD上確定事務(wù)中心、接收部分和發(fā)送部分。(2)畫(huà)出SC框架,把DFD上的三部分分別映射為事務(wù)控制模塊、接收模塊和動(dòng)作發(fā)送模塊。(3)分解細(xì)化接收分支和發(fā)送分支,完成初始SC。2023/8/2289事務(wù)分析設(shè)計(jì)方法步驟:2023/8/289用戶命令交互子系統(tǒng)DFD讀用戶命令密碼命令密碼顯示信息系統(tǒng)參數(shù)數(shù)據(jù)用戶命令讀系統(tǒng)數(shù)據(jù)配置信息顯示信息和狀態(tài)命令分析處理讀密碼命令類型開(kāi)/關(guān)命令建立配置文件原配置數(shù)據(jù)激活/非活動(dòng)系統(tǒng)與文件中密碼比較格式化配置數(shù)據(jù)配置命令檢驗(yàn)信息過(guò)程重試信息四位數(shù)字檢驗(yàn)信息檢驗(yàn)信息A/D信息格式化配置數(shù)據(jù)格式化配置數(shù)據(jù)2023/8/2290用戶命令交互子系統(tǒng)DFD讀用戶密碼命令密碼顯示信息系統(tǒng)參數(shù)數(shù)初始的SC主模塊輸入模塊主加工模塊輸入模塊事務(wù)控制模塊接受模塊動(dòng)作發(fā)送模塊動(dòng)作1模塊動(dòng)作2模塊動(dòng)作3模塊由變換分析產(chǎn)生由事務(wù)分析產(chǎn)生2023/8/2291初始的SC主模塊輸入模塊主加工模塊輸入模塊事務(wù)控制模塊接受模事務(wù)分析的映射方法總控調(diào)度C路徑B路徑A路徑A路徑B路徑C路徑接收路徑2023/8/2292事務(wù)分析的映射方法總控調(diào)度C路徑B路徑A路徑A路徑B路徑C路用戶命令交互子系統(tǒng)初始的SC用戶執(zhí)行模塊讀用戶命令命令處理密碼處理控制器現(xiàn)用/非現(xiàn)用系統(tǒng)系統(tǒng)設(shè)置控制器2023/8/2293用戶命令交互子系統(tǒng)初始的SC用戶執(zhí)行模塊讀用戶命令命令處理密用戶命令交互子系統(tǒng)DFD讀用戶命令密碼命令密碼顯示信息系統(tǒng)參數(shù)數(shù)據(jù)用戶命令讀系統(tǒng)數(shù)據(jù)配置信息顯示信息和狀態(tài)命令分析處理讀密碼命令類型開(kāi)/關(guān)命令建立配置文件原配置數(shù)據(jù)激活/非活動(dòng)系統(tǒng)與文件中密碼比較格式化配置數(shù)據(jù)配置命令檢驗(yàn)信息過(guò)程重試信息四位數(shù)字檢驗(yàn)信息檢驗(yàn)信息A/D信息格式化配置數(shù)據(jù)格式化配置數(shù)據(jù)2023/8/2294用戶命令交互子系統(tǒng)DFD讀用戶密碼命令密碼顯示信息系統(tǒng)參數(shù)數(shù)用戶命令交互子系統(tǒng)的SC用戶執(zhí)行模塊讀用戶命令命令處理密碼處理控制器現(xiàn)用/非現(xiàn)用系統(tǒng)系統(tǒng)設(shè)置控制器讀系統(tǒng)數(shù)據(jù)建立配置文件顯示信息與狀態(tài)2023/8/2295用戶命令交互子系統(tǒng)的SC用戶執(zhí)行模塊讀用戶命令命令處理密碼處用戶命令交互子系統(tǒng)DFD讀用戶命令密碼命令密碼顯示信息系統(tǒng)參數(shù)數(shù)據(jù)用戶命令讀系統(tǒng)數(shù)據(jù)配置信息顯示信息和狀態(tài)命令分析處理讀密碼命令類型開(kāi)/關(guān)命令建立配置文件原配置數(shù)據(jù)激活/非活動(dòng)系統(tǒng)與文件中密碼比較格式化配置數(shù)據(jù)配置命令檢驗(yàn)信息過(guò)程重試信息四位數(shù)字檢驗(yàn)信息檢驗(yàn)信息A/D信息格式化配置數(shù)據(jù)格式化配置數(shù)據(jù)2023/8/2296用戶命令交互子系統(tǒng)DFD讀用戶密碼命令密碼顯示信息系統(tǒng)參數(shù)數(shù)用戶命令交互子系統(tǒng)的SC用戶執(zhí)行模塊讀用戶命令命令處理密碼處理控制器現(xiàn)用/非現(xiàn)用系統(tǒng)系統(tǒng)設(shè)置控制器讀系統(tǒng)數(shù)據(jù)建立配置文件顯示信息與狀態(tài)讀密碼用文件比較密碼密碼輸出控制器產(chǎn)生無(wú)效信息2023/8/2297用戶命令交互子系統(tǒng)的SC用戶執(zhí)行模塊讀用戶命令命令處理密碼處事務(wù)流設(shè)計(jì)舉例IMLNABCDFEG事務(wù)中心2023/8/2298事務(wù)流設(shè)計(jì)舉例IMLNAB
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- TY/T 1108-2024體育賽事活動(dòng)競(jìng)賽規(guī)則編制規(guī)范
- 工程課題立項(xiàng)申報(bào)書(shū)
- 儲(chǔ)罐氣體銷售合同范本
- 代駕租賃合同范本
- Unit 3 Keep Fit section B 1a-1d 同步課時(shí)講練(含答案)七年級(jí)英語(yǔ)下冊(cè)(人教版2024)
- 原料購(gòu)置合同范例
- 公司食堂 燃?xì)?合同范本
- 印刷紙箱合同范本
- 產(chǎn)品折扣合同范本
- 課題申報(bào)書(shū)怎么寫(xiě)作
- 2025年全國(guó)高考體育單招政治時(shí)事填空練習(xí)50題(含答案)
- 2024年計(jì)算機(jī)二級(jí)WPS考試題庫(kù)380題(含答案)
- 22G101三維彩色立體圖集
- 城市社會(huì)學(xué)課件
- GB/T 9788-1988熱軋不等邊角鋼尺寸、外形、重量及允許偏差
- 中國(guó)商品條碼系統(tǒng)注冊(cè)登記表規(guī)范填寫(xiě)
- 湘科教版小學(xué)信息技術(shù)四年級(jí)下冊(cè)全冊(cè)教案.doc
- JJG 840-1993 函數(shù)信號(hào)發(fā)生器檢定規(guī)程
- 胃瘍(慢性消化性潰瘍)中醫(yī)護(hù)理方案
- 護(hù)理工作質(zhì)量標(biāo)準(zhǔn)及考核細(xì)則
- CBCC中國(guó)建筑色卡千色卡色號(hào)查詢表
評(píng)論
0/150
提交評(píng)論