軟件工程的耦合和內聚

模塊獨立性是軟件質量的關它指軟件系統中的每個模塊只涉及軟件要求的具體子功能,而和系統中其模塊接是簡單的。這做不僅僅便於軟件測試和維護使模塊化程度較高的軟件於開發,一組開發人員同開發一個軟件時,模塊化能夠分功能,而且接可以簡化。
模塊的獨立性可以用兩個定性標準度合和內聚
耦合是模塊之間相互連接的緊密程度的度量模塊之間的連接越緊密,聯繫越多,耦 合性就越高,而其模塊獨立性就越弱內聚是一個模塊部各個元素彼此結合的緊密程度 的度。一個模塊部各個元素間的越緊密內聚性就高,相對於其模塊合性就會降低,而模塊獨立性就越強。因,模塊獨立性較的模塊應該是高內聚合的模塊。
 

 1、耦合

合的強弱取決於各個模塊間接的複雜程度、調用模塊的方式以及信息。一模塊間的接方式有 7 種,構成的7 類型
1》非直
如果兩個模塊接關係,它們之間的系完是通主模塊的制和調用實現的,這就是非直合。這種耦合的模塊獨立性最強是,在一個軟件系統中不可能有的模塊間都任何接。
2) 數據
如果兩個模塊彼此間通數據(不是數、公共數據結構或變量)交換,這種合稱爲數據合。由於制了過參數表傳遞數據,數據合開發的程序界面簡單、安全。數據合是鬆散合,模塊間的獨立性比較,在系統中 有這類耦合。
 
3) 記耦
如果模塊間通過參數表傳遞記錄信息,就是標記耦合。由於模塊傳遞的不是簡單,而是一數據結構的子結構,以在設計中應避免這種合。
 
4)
如果模塊傳遞信息中有信息,就稱作合。這種合的實是在單一接上選擇功能模塊中的某項功能。因,對被控制模塊的任何修改,都會影響控制模塊。 於中等程度的合,它增加了系統的複雜程度。
 
5) 公共耦
如果一組模塊通同一個公共數據環境相互作用,則它們之間的合稱爲公共耦合。
公共的數據環境可以是全局數據結構、共享的通信區內存公共覆蓋區、任何存儲介質
上的文件、物理設備等。
 
6) 內容耦
如果發生下列情形之一,兩個模塊間就發生了內容耦合。
一個模塊一個模塊的部數據。
一個模塊不能通過正常入到另一模塊的部。
兩個模塊有一部分程序代碼重疊(可能出現在語言)
一個模塊有個入
內容耦合屬於最高程度的耦合,應該儘量避免使用。
 
7)
如果一組模塊都問同一全局簡單變量而不是同一全局數據結構,而且不是通過參傳遞全局變量信息,則稱爲合。
 
2、內聚
 
內聚是一個模塊部各個元素彼此結合的緊密程度的度。一個內聚程度高的模塊應 完成軟件程中的單一任務。信息隱蔽的一種自然擴展。一模塊的內聚7 類型。
 
1) 內聚
如果一個模塊各部分有關係,或即使有關係,這種關係很鬆散的,則稱 內聚內聚程度最低的模塊。如,一些不同的模塊中可能在同一組語句,程序員爲了節省空間,把它們抽出來組成一個模塊,這就出現了內聚的塊。,這種模塊不易修改維護,通常情況下應避免這種模塊。
 
2) 邏輯內聚
如果一個模塊中包含多個邏輯上相關的功能,每次調用時,根據傳遞給該模塊的數來確定模塊應行的功能,稱作邏輯內聚它屬於單入口多功能模塊。如,錯誤 處理模塊根據收到的出錯信號顯示出不同的出錯信息等。邏輯模塊的修改也比較困難,有時對部功能的改動也會影響到全局
 
3) 時間內聚
如果一個模塊的任務必在同一時間內執行,稱作時間內聚,如初始化模塊和模塊。時間內聚比邏輯內聚好一些,在一定程度上反映了程序的些實由於許多功能、任務組合在一,給維護修改帶來了困難。
4) 內聚
如果一個模塊的處理是相關的,而且必定次序行,則稱爲內聚。使用程序流程圖作爲工具設計程序時,常常通流程圖來確定模塊的劃分,這的就是內聚模塊。相對時間內聚的程度更強一些,由於僅僅爲完功能的一部分,程度比較低。
 
5) 信內聚
如果一個模塊各功能部分都使用了相同的入數據,或產生了相同的出數據,則稱爲通信內聚。通常,通信內聚模塊是通數據流圖來定義的。因爲模塊中包許多獨的功能,內聚程度高於內聚由於各功能部分使用了相同的 I/O 緩衝區,從而低了個系統的效
 
6) 信息內聚
如果一個模塊能夠完成個功能,各個功能都在同一數據結構上作,每一功能有一的入點,稱作信息內聚可以作是個功能內聚模塊的組合,並能達到信息隱蔽增強了各模塊的獨立性。
 
7) 功能內聚
如果一個模塊各個部分都是完成一具體功能必不可的組成部分,稱作功能內聚。模塊間功能明確、合簡單,是最高程序的內聚。
 
 
設計時力爭做到高內聚,並且能夠辨認出低內聚的模塊,有能力通過修改設計提高模塊的內聚程度,降低模塊間的耦合程
度,從而獲得較高的模塊獨立性。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章