(2)內(nèi)聚
模塊的內(nèi)聚種類通?煞殖7種,下面按內(nèi)聚度從低到高的次序依次作介紹。
、倥既粌(nèi)聚:如果一個(gè)模塊完成一組任務(wù),這組任務(wù)彼此間即使有關(guān)系,其關(guān)系也是很松散的,這個(gè)模塊屬于偶然內(nèi)聚。
②邏輯內(nèi)聚:如果一個(gè)模塊完成邏輯上相關(guān)的一組任務(wù),這個(gè)模塊是邏輯內(nèi)聚的。例如,產(chǎn)生與類型無(wú)關(guān)的全部輸出的模塊。
、鬯矔r(shí)內(nèi)聚(temporal cohesion):如果一個(gè)模塊所包含的任務(wù)必須在同一時(shí)間間隔內(nèi)執(zhí)行,這個(gè)模塊屬于瞬時(shí)內(nèi)聚。例如初始化模塊。
、苓^(guò)程內(nèi)聚:如果一個(gè)模塊的處理元素是相關(guān)的,而且必須按特定的次序執(zhí)行,這個(gè)模塊屬于過(guò)程內(nèi)聚。
、萃ㄐ艃(nèi)聚:如果一個(gè)模塊的所有處理元素集中在一個(gè)數(shù)據(jù)結(jié)構(gòu)的區(qū)域上,該模塊屬于通信內(nèi)聚。例如,一個(gè)模塊中的所有處理元素使用同一輸入數(shù)據(jù)。
、揄樞騼(nèi)聚:如果一個(gè)模塊的處理元素是相關(guān)的,而且必須順序執(zhí)行,這個(gè)模塊屬于順序內(nèi)聚。⑦功能內(nèi)聚:如果一個(gè)模塊完成一個(gè)單一的功能,模塊中的各部分在此目標(biāo)下協(xié)同工作,而且都是為完成這一功能而不可缺少的,那么這個(gè)模塊是功能內(nèi)聚的。
5.模塊分解時(shí)應(yīng)遵循的準(zhǔn)則
(1)滿足信息隱蔽原則。
(2)盡量使得模塊的內(nèi)聚度高,模塊間的耦合度低。
(3)模塊的大小適中(通常一個(gè)模塊以50~100個(gè)語(yǔ)句行為適宜)。
(4)模塊的調(diào)用深度不宜過(guò)大。一個(gè)模塊A可以調(diào)用另一模塊B,模塊B還可調(diào)用模塊C,稱模塊A直接調(diào)用模塊B,模塊A間接調(diào)用模塊C,被間接調(diào)用的模塊還可調(diào)其他模塊,這樣可形成一棵調(diào)用樹,我們把以某個(gè)模塊為根結(jié)點(diǎn)的調(diào)用樹的深度稱為該模塊的調(diào)用深度。
(5)模塊的扇入應(yīng)盡量大,扇出不宜過(guò)大。一個(gè)模塊的扇入是指直接調(diào)用該模塊的上級(jí)模塊個(gè)數(shù)。一個(gè)模塊的扇出是指該模塊直接調(diào)用的下級(jí)模塊的個(gè)數(shù)。扇入大表示模塊的復(fù)用程度高,扇出大表示模塊的復(fù)雜度高。
(6)設(shè)計(jì)單入口和單出口的模塊。
(7)模塊的作用域應(yīng)在控制域之內(nèi)。模塊的作用域是指受該模塊內(nèi)一個(gè)判定影響的所在模塊的集合。模塊的控制域是指該模塊本身以及被該模塊直接或間接調(diào)用的所有模塊的集合。在設(shè)計(jì)時(shí),作用域應(yīng)是控制域的子集,作用域最好是做出判定的模塊本身以及它的直屬下級(jí)模塊(直接調(diào)用的模塊)。
(8)模塊的功能應(yīng)是可以預(yù)測(cè)的,功能可預(yù)測(cè)是指對(duì)相同的輸入數(shù)據(jù)能產(chǎn)生相同的輸出。
相關(guān)推薦:
計(jì)算機(jī)等級(jí)考試合格標(biāo)準(zhǔn)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |