用模塊耦合的理論確定控制模塊的同步

用模塊耦合的理論確定控制模塊的同步
 
一、模塊耦合的一般理論
模塊間的信息聯繫方式,稱爲模塊的耦合,它是衡量模塊間結構性能的重要指標。耦合有三種類型:
(1) 數據耦合。兩個模塊間通過調用關係傳遞被處理的數據稱爲數據耦合。
(2) 控制耦合。兩個模塊間通過調用關係,不僅傳遞數據,還傳遞對運行過程有影響的控制信號。下層模塊執行校驗功能,校驗結果的控制信號傳回上層模塊,以控制其他模塊的運行。如數據正確,調用正常處理模塊;如數據異常,或遇到文件尾等不同情況時,調用不同處理模塊,這種耦合使一個模塊的執行直接影響到接受該控制信號的模塊的運行。這對於系統的修改工作是不利的,特別是對自下向上傳遞的控制信號,影響面更大。因此,應當儘量將這種耦合減少到最低限度。
(3) 非法耦合。一個模塊與另一個模塊內部發生聯繫,即一個模塊中的某些內容在另一模塊中以某種方式被引用,稱爲非法耦合。例如,不經過調用關係,直接使用或修改另一模塊中的數據,將控制選擇指向另一模塊中的某一標號(節、過程) 等。
模塊間數據耦合是最正常的方式,爲保持模塊的獨立性,模塊之間互相傳遞的數據要儘量少;要努力避免控制耦合,特別是避免自下而上傳遞控制信號;應消除任何形式的非法耦合。
 
二、模塊耦合理論的應用前提
1、耦合關係是明確的而不是含糊的。實際操作過程中,首先要解決的問題是,如果確定兩個模塊之間有一定的耦合關係。如果不能明確從模塊集合中介定出有耦合關係的模塊,那麼,模塊耦合理論也就無法爲開發和發佈過程提供經驗。
 
2、模塊的關係對實際的操作有指導的意義。定義模塊的耦合關係可以在各個方面知道系統的實現,例如,在需求定義過程中,它可以告訴我們,對於一個模塊的修改必然會影響其他模塊,這種影響可能是顯而易見的,也有可能是很隱含的;在測試過程中,它可能告訴我們對於某些模塊的測試,必須同時測試一組相關模塊;在模塊的發佈過程中,它可以告訴我們,發佈某一個模塊的同時,另外一些模塊也必須同時發佈。
 
三、基於模塊功能定義的模塊耦合
1、數據庫耦合
兩個模塊會訪問數據庫相同的表。例如,模塊A和模塊B都是用了表T1,那麼,如果T1的結構發生了變化,一般情況下,如果A或者B沒有做出相應的調整,將導致系統運行過程中的錯誤。因此,如果A或者B是因爲T1的變化做出了調整,同時必須對另外一個模塊做出調整。
 
2、數據耦合
兩個模塊會同時依賴於一個數據。例如,模塊A向表T1寫入了數據,而B模塊必須使用T1表的數據。如果由於需要,B讀取T1的數據的規則發生了變化,那麼,A必須相應的做出變化。
 
3、編譯變量耦合
兩個模塊都會依賴於相同一個編譯變量。這種耦合是一種強度很高的耦合。因此,除了基於移植性的考慮定義的編譯變量,一般不應該隨意修改編譯變量。多數情況下的編譯變量的修改會影響到全部的模塊,因此,編譯變量耦合對模塊開發的實際意義並不明顯。
 
4、環境變量耦合
兩個模塊的行爲都和同一個環境變量有關。
 
5、業務邏輯耦合
兩個模塊共同支持一個業務邏輯,而且這種邏輯不是通過公共數據、環境變量的共享區實現的。業務邏輯耦合是一種很模糊的耦合,必須在需求定義的過程中得到明確。
 
四、基於經驗定義的模塊耦合
1、模塊依賴關係
基於經驗定義的模塊耦合是通過積累模塊的依賴關係來確定的。
如果修改了A,必須修改B,則B依賴於A。如果修改了A,必須修改B,同時如果修改了B,必須修改A,則A和B相互依賴。
 
2、閾值
如果發現了模塊A和B之間有一定的關聯關係,並不一定很快能確定兩個模塊之間的耦合關係。只有積累到比較明確的數據的時候,才能明確的定義這兩個模塊之間的耦合關係。 
發佈了13 篇原創文章 · 獲贊 2 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章