衡量模块独立性的两个定性标准
衡量模塊獨(dú)立性的兩個(gè)定性標(biāo)準(zhǔn)
- - 耦合:
- - 內(nèi)聚
內(nèi)聚和耦合
模塊的獨(dú)立程度可以由兩個(gè)定性標(biāo)準(zhǔn)衡量,這兩個(gè)標(biāo)準(zhǔn)分別是內(nèi)聚和耦合。
耦合衡量不同模塊彼此間互相依賴(lài)(連接)的緊密程度;內(nèi)聚衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度。
?
- 耦合:
定義:
是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。耦合強(qiáng)弱取決于模塊間接口的復(fù)雜程度,進(jìn)入或訪(fǎng)問(wèn)一個(gè)模塊的點(diǎn),以及通過(guò)接口的數(shù)據(jù)。
分類(lèi):
(1)數(shù)據(jù)耦合:兩個(gè)模塊彼此間通過(guò)參數(shù)交換信息,而且交換的信息僅僅是數(shù)據(jù)。
(2)控制耦合:如果傳遞的信息中有控制信息(盡管有時(shí)這種控制信息以數(shù)據(jù)形式出現(xiàn))
(3)特征耦合:當(dāng)把整個(gè)數(shù)據(jù)結(jié)構(gòu)作為參數(shù)傳遞而被調(diào)用的模塊只使用其中一部分?jǐn)?shù)據(jù)元素時(shí)
(4)公共環(huán)境耦合:當(dāng)兩個(gè)或多個(gè)模塊通過(guò)一個(gè)公共數(shù)據(jù)環(huán)境相互作用時(shí)
(5)內(nèi)容耦合:最高程度的耦合;如果出現(xiàn)以下情況之一,兩個(gè)模塊就發(fā)生了內(nèi)容耦合:
a. 一個(gè)模塊訪(fǎng)問(wèn)另一個(gè)模塊的內(nèi)部數(shù)據(jù)
b. 一個(gè)模塊不通過(guò)正常入口而轉(zhuǎn)到另一個(gè)模塊的內(nèi)部c. 兩個(gè)模塊有一部分代碼重疊(只可能出現(xiàn)在匯編語(yǔ)言)
d. 一個(gè)模塊有多個(gè)入口(意味著一個(gè)模塊有幾種功能)
耦合設(shè)計(jì)原則:盡量使用數(shù)據(jù)耦合,少用控制耦合和特征耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。
- 內(nèi)聚
定義:
標(biāo)志著一個(gè)模塊內(nèi)哥哥元素彼此解和的緊密程度,它是信息隱藏和局部化概念的自然擴(kuò)展。簡(jiǎn)單的說(shuō),理想內(nèi)聚只做一件事情。(內(nèi)聚和耦合是密切相關(guān)的,模塊內(nèi)的高內(nèi)聚往往意味著模塊間的低耦合,內(nèi)聚和耦合都是進(jìn)行模塊化設(shè)計(jì)的有利工具,但是內(nèi)聚更重要)
分類(lèi):
A. 高內(nèi)聚:
(1) 順序內(nèi)聚:如果一個(gè)模塊內(nèi)的處理元素和同一功能密切相關(guān),而且這些處理必須順序執(zhí)行(9分)
(2) 功能內(nèi)聚:如果模塊內(nèi)所有處理元素屬于一個(gè)整體,完成一個(gè)單一的功能(10分)
B. 中內(nèi)聚:
(1) 過(guò)程內(nèi)聚:如果一個(gè)模塊內(nèi)的處理元素是相關(guān)的,而且必須經(jīng)過(guò)特定的次序執(zhí)行(5分)
(2) 通信內(nèi)聚:如果模塊中所有元素都使用同一輸入數(shù)據(jù)和(或)產(chǎn)生統(tǒng)一輸出數(shù)據(jù)(7分)
C. 低內(nèi)聚:
(1) 偶然內(nèi)聚:如果一個(gè)模塊完成一組任務(wù),這些任務(wù)彼此間即使有關(guān)系,關(guān)系也是很松散的。(0分)
(2) 邏輯內(nèi)聚:如果一個(gè)模塊完成的任務(wù)在邏輯上屬于相同或相似的一類(lèi)。(1分)
(3) 時(shí)間內(nèi)聚:如果一個(gè)模塊包含的任務(wù)必須在同一時(shí)間內(nèi)執(zhí)行(3分)
總結(jié)
以上是生活随笔為你收集整理的衡量模块独立性的两个定性标准的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 蓝桥杯第七届决赛JAVA真题----广场
- 下一篇: View Flash AS3 and A