軟件設(shè)計(jì)概述(精)培訓(xùn)資料_第1頁
軟件設(shè)計(jì)概述(精)培訓(xùn)資料_第2頁
軟件設(shè)計(jì)概述(精)培訓(xùn)資料_第3頁
軟件設(shè)計(jì)概述(精)培訓(xùn)資料_第4頁
軟件設(shè)計(jì)概述(精)培訓(xùn)資料_第5頁
已閱讀5頁,還剩80頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件設(shè)計(jì)概述(精)§5.1軟件設(shè)計(jì)的目標(biāo)和任務(wù)§5.2軟件設(shè)計(jì)基本概念§5.3模塊化設(shè)計(jì)§5.4其他設(shè)計(jì)問題的處理§5.5設(shè)計(jì)文檔及其復(fù)審教學(xué)內(nèi)容:教學(xué)目的及要求:深刻理解軟件設(shè)計(jì)階段的概念和任務(wù);掌握模塊化設(shè)計(jì)的思想;§5.1軟件設(shè)計(jì)的任務(wù)軟件需求:解決“做什么”

軟件設(shè)計(jì):解決“怎么做”

軟件設(shè)計(jì)的任務(wù)

問題結(jié)構(gòu)(軟件需求)軟件結(jié)構(gòu);

從軟件需求規(guī)格說明書出發(fā),形成軟件的具體設(shè)計(jì)方案。映射1.軟件的總體結(jié)構(gòu)主要回答的問題軟件的組成部分軟件的層次關(guān)系模塊的內(nèi)部處理邏輯模塊之間的界面2.軟件設(shè)計(jì)的問題

工具—如何描述軟件的總體結(jié)構(gòu)方法—用什么方法有問題結(jié)構(gòu)導(dǎo)出軟件結(jié)構(gòu)評(píng)估準(zhǔn)則—什么樣的軟件結(jié)構(gòu)是“最優(yōu)的”3.軟件設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)方法(SD)面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法(JSD方法)面向?qū)ο蟮脑O(shè)計(jì)方法(OOD)4.軟件設(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)生描述各模塊程序過程的詳細(xì)文檔。結(jié)構(gòu)化設(shè)計(jì)方法模塊設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)軟件設(shè)計(jì)的任務(wù)確定系統(tǒng)怎么做?結(jié)構(gòu)化設(shè)計(jì)活動(dòng)劃分為兩個(gè)階段:確定系統(tǒng)的整體體系結(jié)構(gòu)總體設(shè)計(jì)確定各模塊的具體實(shí)現(xiàn)詳細(xì)設(shè)計(jì)界面設(shè)計(jì)構(gòu)件級(jí)程序設(shè)計(jì)?表示工具:總體設(shè)計(jì)詳細(xì)設(shè)計(jì)層次圖(Hierarchy)IPO圖(Input-Process-Output)模塊說明程序框圖盒圖(N-S圖)決策表PDL語言§5.2軟件設(shè)計(jì)的基本概念1.模塊與構(gòu)件2.抽象與細(xì)化3.信息隱蔽4.軟件復(fù)用1.模塊與構(gòu)件模塊化:把程序劃分成若干個(gè)模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集總起來組成一個(gè)整體,可以完成指定的功能,滿足問題的功能。模塊:一個(gè)擁有明確定義的輸入、輸出和特性的程序?qū)嶓w。1.模塊與構(gòu)件構(gòu)件:可重復(fù)使用的軟件組件。

經(jīng)過適當(dāng)設(shè)計(jì)和實(shí)現(xiàn)的類也可以稱為構(gòu)件,他們?cè)谀硞€(gè)領(lǐng)域中具有一定的通用性,可以在不同的計(jì)算機(jī)軟件系統(tǒng)中復(fù)用。將這些構(gòu)件儲(chǔ)存起來變成一個(gè)構(gòu)件庫,就為基于構(gòu)件的軟件開發(fā)模型提供了技術(shù)基礎(chǔ)。模塊模塊是具有一定功能的可以用名詞調(diào)用的程序語句集合,如:獨(dú)立的匯編程序COBOL的段和節(jié)Pascal過程FORTRAN的子程序結(jié)構(gòu)化設(shè)計(jì)的適用范圍尤其適用于采用結(jié)構(gòu)化程序設(shè)計(jì)實(shí)現(xiàn)的系統(tǒng);結(jié)構(gòu)化設(shè)計(jì)并不是一種廣泛適用的系統(tǒng)設(shè)計(jì)技術(shù);結(jié)構(gòu)化設(shè)計(jì)的結(jié)果。SA與SD的關(guān)系結(jié)構(gòu)化分析的結(jié)果結(jié)構(gòu)化設(shè)計(jì)的工具數(shù)據(jù)流圖初始結(jié)構(gòu)圖數(shù)據(jù)字典設(shè)計(jì)數(shù)據(jù)字典偽碼實(shí)現(xiàn)方面?zhèn)未a實(shí)體關(guān)系圖數(shù)據(jù)庫設(shè)計(jì)事務(wù)框圖分層、細(xì)化事務(wù)模型SD來源于SA來源:結(jié)構(gòu)化分析來源:結(jié)構(gòu)化分析來源:結(jié)構(gòu)化分析數(shù)據(jù)流圖字典項(xiàng)偽碼實(shí)體關(guān)系圖事務(wù)框圖環(huán)境的限制質(zhì)量的標(biāo)準(zhǔn)轉(zhuǎn)化分析細(xì)化設(shè)計(jì)進(jìn)入實(shí)現(xiàn)階段初始結(jié)構(gòu)框圖概要設(shè)計(jì)的基本概念將系統(tǒng)劃分成模塊決定每個(gè)模塊的功能決定模塊的調(diào)用關(guān)系決定模塊的界面,即模塊間傳遞的數(shù)據(jù)結(jié)構(gòu)化設(shè)計(jì)(SD方法)概要相對(duì)獨(dú)立、單一功能的模塊塊間聯(lián)系和塊內(nèi)聯(lián)系描述方法步驟2.抽象(Abstraction)與細(xì)化抽象:解決問題時(shí)只考慮與問題有關(guān)的方面,不考慮與問題無關(guān)的方面。即抽出事物的本質(zhì)特性而不考慮細(xì)節(jié)。

抽象(Abstraction)抽象原則應(yīng)用舉例WindowsNT一體化的I/O系統(tǒng)設(shè)計(jì)文件管理網(wǎng)絡(luò)管理設(shè)備管理高速緩沖存儲(chǔ)器OS對(duì)虛擬文件的字節(jié)流,虛擬文件可為任何設(shè)備和實(shí)體抽象細(xì)化:即分解。在逐步細(xì)化中,特別強(qiáng)調(diào)這種分解的“逐步”性質(zhì),即每一部分僅較其前一部增加“少量”的細(xì)節(jié)。這樣,在相鄰兩部之間就只有微小的變化,不難驗(yàn)證它們的內(nèi)容是否等效。3.信息隱蔽(InformationHiding)信息隱蔽的含義:有效的模塊化可以通過定義一組獨(dú)立模塊來實(shí)現(xiàn),這些模塊相互之間只交流軟件功能必需的信息。換句話說:模塊所包含的信息,不允許其它不需要這些信息的模塊訪問,獨(dú)立的模塊間僅僅交換為完成系統(tǒng)功能而必須交換的信息。信息隱蔽:對(duì)模塊內(nèi)部信息訪問的約束信息隱蔽的基本原則:功能獨(dú)立,高內(nèi)聚且低耦合高可復(fù)用性的期望:?功能復(fù)用是代碼級(jí)的,它基于必要的功能理解,而功能的語義是不一致的、多理解的。?希望軟件復(fù)用是全方位的,不但是代碼級(jí)的復(fù)用,還應(yīng)該有源程序級(jí)的復(fù)用。面向?qū)ο蠓椒ǖ母呖蓮?fù)用性:對(duì)象的語義表示是唯一的,這使得代碼級(jí)的復(fù)用簡(jiǎn)單且自然。類的繼承性是源程序級(jí)的復(fù)用機(jī)制,它允許用已有的程序構(gòu)架來簡(jiǎn)單地構(gòu)造新的應(yīng)用。并且仍保持高維護(hù)性,這種技術(shù)帶來復(fù)用概念的新突破。4.軟件復(fù)用:

利用已有的現(xiàn)成構(gòu)件,不必一切都從頭做起。

§5.3模塊化設(shè)計(jì)1.分解2.模塊獨(dú)立性內(nèi)聚耦合自頂向下與自底向上設(shè)計(jì)模塊化(Modularity)模塊化是好的軟件設(shè)計(jì)的一個(gè)基本準(zhǔn)則高層模塊從整體上把握問題,隱蔽細(xì)節(jié)

復(fù)雜問題較小問題

分解可減小解題所需的總的工作分解C(p1)>C(p2)則E(p1)>E(p2)其中:p1和p2是兩個(gè)問題C(x)是由x問題決定的復(fù)雜性E(x)是解決x問題所需要的工作量C(p1+p2)>C(p1)+C(p2)E(p1+p2)>E(p1)+E(p2)試驗(yàn)發(fā)現(xiàn)模塊劃分得越小成本越低,但是集成成本卻隨著模塊劃分得越小成本越高。如何確定模塊化分的最小成本區(qū),并保證模塊的最佳性能,是設(shè)計(jì)活動(dòng)中的主要任務(wù)之一。1.分解"各個(gè)擊破"理論模塊數(shù)與開發(fā)工作量的關(guān)系成本或工作量模塊數(shù)量軟件總成本集成成本成本/模塊M最小成本區(qū)域2.模塊的獨(dú)立性模塊獨(dú)立性的概念模塊完成獨(dú)立的功能符合信息隱蔽和信息局部化原則模塊間關(guān)連和依賴程度盡量小模塊獨(dú)立性的度量

模塊獨(dú)立性取決于模塊的內(nèi)部和外部特征。SD方法提出的定性的度量標(biāo)準(zhǔn):模塊自身的內(nèi)聚性模塊之間的耦合性

?偶然內(nèi)聚:各成分之間并沒有關(guān)系,只是把分散在多處的功能合在一起?邏輯內(nèi)聚:僅僅是邏輯功能相關(guān)成分合在一起?時(shí)間內(nèi)聚:必須在同一時(shí)間執(zhí)行,并無功能邏輯的成分合在一起?過程內(nèi)聚:過程順序相關(guān)的功能成分合在一起?通訊內(nèi)聚:需要對(duì)相同的外部數(shù)據(jù)進(jìn)行操作的成分合在一起?順序內(nèi)聚:一個(gè)內(nèi)部成分的輸出是另一個(gè)內(nèi)部成分的輸入,將它們合起來?功能內(nèi)聚:只完成單一的功能低高?內(nèi)容耦合:一個(gè)模塊直接修改另一個(gè)模塊的內(nèi)容?公共耦合:兩個(gè)以上的模塊共同引用一個(gè)全局?jǐn)?shù)據(jù)?外部耦合:若允許一組模塊訪問同一個(gè)全局變量?控制耦合:接收模塊的動(dòng)作依賴于控制信號(hào)?標(biāo)記耦合:兩個(gè)模塊接口的參數(shù)包含相同的內(nèi)部結(jié)構(gòu)?數(shù)據(jù)耦合:僅是模塊之間的數(shù)據(jù)傳遞?非直接耦合:模塊之間沒有消息傳遞低高內(nèi)聚模塊內(nèi)部各成分之間的關(guān)聯(lián)程度耦合模塊之間的依賴程度2.模塊獨(dú)立性的度量之一:內(nèi)聚性一個(gè)模塊內(nèi)部各成分之間相互關(guān)聯(lián)的強(qiáng)度設(shè)計(jì)目標(biāo):高內(nèi)聚(一模塊的所有成分都直接參與并且對(duì)于完成同一功能來說都是最基本的)軟件設(shè)計(jì)的概念和原理內(nèi)聚:一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度。偶然內(nèi)聚:一個(gè)模塊完成一組任務(wù),任務(wù)之間的關(guān)系很松散。公共語句。邏輯內(nèi)聚:若干個(gè)邏輯功能類似的任務(wù)組成一個(gè)模塊。時(shí)間內(nèi)聚:若干個(gè)任務(wù)必須在同一段時(shí)間內(nèi)執(zhí)行。如初始化工作。低內(nèi)聚中內(nèi)聚高內(nèi)聚過程內(nèi)聚:模塊內(nèi)的處理元素是相關(guān)的,且必須以特定次序執(zhí)行。通信內(nèi)聚:模塊中所有元素都使用同一個(gè)輸入數(shù)據(jù),和/或產(chǎn)生同一個(gè)輸出數(shù)據(jù)。順序內(nèi)聚:模塊中所有處理元素和同一個(gè)功能密切相關(guān),且這些處理必須順序執(zhí)行。功能內(nèi)聚:所有處理元素屬于一個(gè)整體,完成一個(gè)單一的功能。模塊A模塊B模塊CS1;S2;模塊A模塊B模塊C模塊A模塊B模塊C模塊D模塊的內(nèi)聚性類型:低巧合內(nèi)聚內(nèi)邏輯內(nèi)聚聚時(shí)間內(nèi)聚性過程內(nèi)聚通信內(nèi)聚信息內(nèi)聚高功能內(nèi)聚模塊獨(dú)立性弱(功能分散)強(qiáng)(功能單一)(1)巧合內(nèi)聚(偶然內(nèi)聚)

模塊內(nèi)各部分間無聯(lián)系A(chǔ)BCMMOVEOTORREADFILEFMOVESTOT模塊M中的三個(gè)語句沒有任何聯(lián)系缺點(diǎn):可理解性差,可修改性差。例:(2)邏輯內(nèi)聚把幾種相關(guān)功能(邏輯上相似的功能)組合在一模塊內(nèi),每次調(diào)用由傳給模塊的參數(shù)確定執(zhí)行哪種功能。邏輯內(nèi)聚模塊ABCEFGABCEFGA1B1C1EFG模塊內(nèi)部邏輯E、F、G邏輯功能相似,組成新模塊EFG公用代碼段公用代碼段缺點(diǎn):增強(qiáng)了耦合程度(控制耦合)不易修改,效率低。(3)時(shí)間內(nèi)聚模塊完成的功能必須在同一時(shí)間內(nèi)執(zhí)行,這些功能只因時(shí)間因素關(guān)聯(lián)在一起。例如:初始化系統(tǒng)模塊、系統(tǒng)結(jié)束模塊、緊急故障處理模塊等。(4)過程內(nèi)聚模塊內(nèi)各處理成分相關(guān),且必須以特定次序執(zhí)行。過程內(nèi)聚模塊建立方程組系數(shù)矩陣全部任務(wù)納入一個(gè)模塊,得到一過程性模塊高斯消去法回代高斯消去法解題流程過程內(nèi)聚模塊讀入成績(jī)單讀入并審查成績(jī)單審查成績(jī)單統(tǒng)計(jì)成績(jī)打印成績(jī)統(tǒng)計(jì)并打印成績(jī)(5)通信內(nèi)聚模塊內(nèi)各部分使用相同的輸入數(shù)據(jù),或產(chǎn)生相同的輸出結(jié)果。通信內(nèi)聚模塊例產(chǎn)生工資報(bào)表計(jì)算平均工資職工工資記錄職工工資報(bào)表平均工資產(chǎn)生職工工資報(bào)表并計(jì)算平均工資模塊通信內(nèi)聚模塊例開領(lǐng)書單登記售書發(fā)票領(lǐng)書單售書登記表文件刪除修改(6)順序內(nèi)聚一個(gè)內(nèi)部成分的輸出是另一個(gè)內(nèi)部成分的輸入,將它們合起來。順序內(nèi)聚模塊建立方程組系數(shù)矩陣高斯消去法回代高斯消去法解題流程(7)功能內(nèi)聚模塊僅包括為完成某個(gè)功能所必須的所有成分。(模塊所有成分共同完成一個(gè)功能,缺一不可)內(nèi)聚性最強(qiáng)功能內(nèi)聚模塊建立方程組系數(shù)矩陣高斯消去法回代高斯消去法解題流程模塊獨(dú)立性的度量之二:

耦合性是模塊間相互依賴程度的度量,耦合的強(qiáng)弱取決于模塊間接口的復(fù)雜程度,進(jìn)入或訪問一個(gè)模塊的點(diǎn),以及通過接口的數(shù)據(jù)。

耦合性越高,模塊獨(dú)立性越弱

內(nèi)容耦合:一個(gè)模塊直接修改另一個(gè)模塊的內(nèi)容公共耦合:兩個(gè)以上的模塊共同引用一個(gè)全局?jǐn)?shù)據(jù)外部耦合:若允許一組模塊訪問同一個(gè)全局變量控制耦合:模塊之間傳遞的參數(shù)含有控制信息標(biāo)記耦合:兩個(gè)模塊接口的參數(shù)包含相同的內(nèi)部結(jié)構(gòu)數(shù)據(jù)耦合:模塊之間通過參數(shù)交換數(shù)據(jù)信息。非直接耦合:模塊之間沒有消息傳遞低高耦合模塊之間的依賴程度軟件設(shè)計(jì)的概念和原理

耦合非直接耦合數(shù)據(jù)耦合特征耦合控制耦合外部耦合公共耦合內(nèi)容耦合弱耦合中耦合較強(qiáng)耦合強(qiáng)耦合模塊1模塊2模塊3模塊4數(shù)據(jù)耦合通過簡(jiǎn)單變量交換數(shù)據(jù)特征耦合通過數(shù)據(jù)結(jié)構(gòu)交換數(shù)據(jù)非直接耦合模塊之間沒有信息傳遞模塊A模塊B模塊C模塊D模塊L模塊N全局性數(shù)據(jù)結(jié)構(gòu)公共耦合Flag=1?S1S2模塊1控制耦合模塊之間傳遞的是控制信息TF全局性簡(jiǎn)單變量外部耦合模塊A模塊B內(nèi)容耦合

訪問其它模塊的內(nèi)部數(shù)據(jù)直接跳到其他模塊內(nèi)部執(zhí)行無耦合-沒有依賴關(guān)系松散耦合-有少量依賴關(guān)系緊密耦合-有很多依賴關(guān)系耦合強(qiáng)度依賴的因素:一模塊對(duì)另一模塊的引用一模塊向另一模塊傳遞的數(shù)據(jù)量一模塊施加到另一模塊的控制的數(shù)量模塊間接口的復(fù)雜程度模塊間耦合的類型:低非直接耦合耦數(shù)據(jù)耦合合標(biāo)志耦合性控制耦合外部耦合公共耦合

高內(nèi)容耦合模塊獨(dú)立性弱(低耦合)強(qiáng)(中耦合)(較強(qiáng)耦合)(強(qiáng)耦合)(1)非直接耦合

兩個(gè)模塊沒有直接關(guān)系(???和???),模塊獨(dú)立性最強(qiáng)。模塊1模塊2模塊3模塊4(2)數(shù)據(jù)耦合一模塊調(diào)用另一模塊時(shí),被調(diào)用模塊的輸入、輸出都是簡(jiǎn)單的數(shù)據(jù),屬松散耦合。數(shù)據(jù)耦合舉例開發(fā)票計(jì)算水費(fèi)單價(jià)數(shù)量金額數(shù)據(jù)耦合舉例計(jì)算水電費(fèi)計(jì)算水費(fèi)計(jì)算電費(fèi)用水量用電量水費(fèi)電費(fèi)(3)標(biāo)記耦合(特征耦合)如兩個(gè)模塊通過傳遞數(shù)據(jù)結(jié)構(gòu)(不是簡(jiǎn)單數(shù)據(jù),而是記錄、數(shù)組等)加以聯(lián)系,或都與一個(gè)數(shù)據(jù)結(jié)構(gòu)有關(guān)系,則稱這兩個(gè)模塊間存在標(biāo)記偶合。標(biāo)記耦合舉例計(jì)算水電費(fèi)計(jì)算水費(fèi)計(jì)算電費(fèi)住戶情況水費(fèi)電費(fèi)住戶情況“住戶情況”是一個(gè)數(shù)據(jù)結(jié)構(gòu),圖中模塊都與此數(shù)據(jù)結(jié)構(gòu)有關(guān)?!坝?jì)算水費(fèi)”和“計(jì)算電費(fèi)”本無關(guān),由于引用了此數(shù)據(jù)結(jié)構(gòu)產(chǎn)生依賴關(guān)系,它們之間也是標(biāo)記偶合。將標(biāo)記耦合修改為數(shù)據(jù)耦合舉例計(jì)算水電費(fèi)計(jì)算水費(fèi)計(jì)算電費(fèi)本月用水量本月用電量水費(fèi)電費(fèi)(4)控制耦合一模塊通過開關(guān)量、標(biāo)志、名字等控制信息,明顯地控制另一模塊的功能??刂岂詈吓e例A計(jì)算平均分或最高分B平均/最高成績(jī)控制耦合舉例讀入分?jǐn)?shù)輸出結(jié)果計(jì)算平均分計(jì)算最高分平均/最高?調(diào)用邏輯性模塊B時(shí),須先傳遞控制信號(hào)(平均分/最高分),以選擇所需的操作??刂颇K必須知道被控模塊的內(nèi)部邏輯,增強(qiáng)了相互依賴。B控制耦合增加了理解和編程的復(fù)雜性,調(diào)用模塊必須知道被調(diào)模塊的內(nèi)部邏輯,增加了相互依賴。去除模塊間控制耦合的方法:(1)將被調(diào)用模塊內(nèi)的判定上移到調(diào)用模塊中進(jìn)行;(2)被調(diào)用模塊分解成若干單一功能模塊。改控制耦合為數(shù)據(jù)耦合舉例A計(jì)算平均分B1平均成績(jī)最高成績(jī)計(jì)算最高分B2控制耦合舉例A發(fā)獎(jiǎng)牌

名次(開關(guān)量)獎(jiǎng)牌控制耦合被調(diào)用模塊內(nèi)處理邏輯模式功能A功能B判別改控制耦合為數(shù)據(jù)耦合舉例A發(fā)金牌發(fā)銀牌發(fā)銅牌(5)外部耦合一組模塊均與同一外部環(huán)境關(guān)聯(lián)(例如,I/O模塊與特定的設(shè)備、格式和通信協(xié)議相關(guān)聯(lián)),它們之間便存在外部耦合。外部偶合必不可少,但這種模塊數(shù)目應(yīng)盡量少。(6)公共耦合(公共數(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ū)等公共耦合舉例Acommon公共數(shù)據(jù)區(qū)松散的公共耦合BAcommon公共數(shù)據(jù)區(qū)緊密的公共耦合B公共耦合舉例A公共數(shù)據(jù)區(qū)CB模塊A、B、C間存在錯(cuò)綜復(fù)雜的聯(lián)系公共耦合舉例所有的公共耦合關(guān)系A(chǔ)EBCD6個(gè)模塊共享一個(gè)公共數(shù)據(jù)區(qū)F(1)軟件可理解性降低(模塊間存在錯(cuò)綜復(fù)雜的連系)(2)軟件可維護(hù)性差(修改變量名或?qū)傩岳щy)(3)軟件可靠性差(公共數(shù)據(jù)區(qū)及全程變量無保護(hù)措施)慎用公共數(shù)據(jù)區(qū)和全程變量!!!公共耦合存在的問題:(7)內(nèi)容耦合一模塊直接訪問另一模塊的內(nèi)部信息(程序代碼或數(shù)據(jù))。最不好內(nèi)容耦合形式

!!!發(fā)生內(nèi)容耦合的情形:(1)一模塊直接訪問另一模塊的內(nèi)部數(shù)據(jù)(2)一模塊不通過正常入口轉(zhuǎn)到另一模塊內(nèi)(3)兩模塊有一部分代碼重疊(4)一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論