閱讀203 返回首頁    go 阿裏雲 go 技術社區[雲棲]


軟件工程之信息隱蔽與模塊獨立性

              最近看軟工視頻,老師提出了一個問題:信息隱蔽與模塊獨立性的聯係,一開始我也不知道什麼是信息隱蔽,模塊獨立還是略知一二,於是查了一下,自己總結了一些這二者之間的關係,與大家share!

         首先介紹一下信息隱蔽

         信息隱蔽是開發整體程序結構時使用的法則,即將每個程序的成分隱蔽或封裝在一個單一的設計模塊中,定義每一個模塊時盡可能少地顯露其內部的處理。信息隱蔽原則對提高軟件的可修改性、可測試性和可移植性都有重要的作用。

           然後介紹一下模塊獨立

          模塊獨立是指每個模塊完成一個相對獨立的子功能,並且與其他模塊之間的聯係簡單。衡量模塊獨立程度的度量標準有兩個:耦合和內聚。

          耦合是指模塊之間聯係的緊密程度。耦合度越高則模塊的獨立性越差。按耦合度從低到高依次有7種耦合方式。       

           非直接耦合(獨立運行)       

           數據耦合(用參數表傳遞簡單數據)       

           標記耦合(傳遞數據結構或者一部分)       

           控製耦合(傳遞的信息包括控製模塊的信息)       

          外部耦合(模塊與軟件之外的環境有關)       

          公共耦合(多個模塊引用同一全局的數據區)       

          內容耦合(訪問內部數據,代碼重疊或者多個入口)

 

           內聚是指模塊內部各元素之間聯係的緊密程度內聚度越低模塊的獨立性越差。按內聚度從低到高依次有7種內聚種類。       

           偶然內聚(模塊完成的多個任務,任務之間的關係鬆散)       

           邏輯內聚(模塊完成邏輯相關的一組任務)       

           瞬時內聚(模塊的所有任務必須在同一時間間隔內執行)       

           過程內聚(模塊的處理元素相關而且按照特定的次序執行)       

           通信內聚(模塊的所有元素集中在一個數據結構區域上)       

           順序內聚(模塊的處理元素相關,必須順序執行)       

           功能內聚(模塊完成單一的功能,各個部分協調工作,而且不可缺少)

 

          綜上所述,信息隱蔽是為了減少信息外露,也是保持模塊獨立性的一種方式,模塊設計要求“高內聚,低耦合”,盡可能使用數據耦合,避免使用公共耦合,盡量使用功能內聚,信息隱蔽可以使模塊封裝性提高,減少與其他模塊之間的聯係,見解很淺,希望各位給予意見。

最後更新:2017-04-03 14:53:55

  上一篇:go 轉一篇好文:poj1338 poj2591 poj2545 這三道題
  下一篇:go linux 3.11.6 內核編譯過程