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