在軟件設計中,很多人都不知道模塊設計是什么。模塊化設計是指將工業模具分解成小的部分過程。在模塊設計中,把分解成小部分稱為模塊,設計此類模塊的過程稱為模塊設計。在計算機程序中,可以復制,分離和重復使用的單元也稱為模塊。使用計算機程序來編譯這樣的模塊稱為模塊化設計。模塊設計非常便于內容的組織和管理;適用于響應式框架;融合卡片和極簡風格;基于網格,能在任何項目平臺上使用。
在設計好軟件的體系結構后,就已經在宏觀上明確了各個模塊應具有什么功能,應放在體系結構的哪個位置。我們習慣地從功能上劃分模塊,保持“功能獨立”是模塊化設計的基本原則。因為,“功能獨立”的模塊可以降低開發、測試、維護等階段的代價。但是“功能獨立”并不意味著模塊之間保持絕對的孤立。一個系統要完成某項任務,需要各個模塊相互配合才能實現,此時模塊之間就要進行信息交流。
評價模塊設計優劣的三個特征因素:“信息隱藏”、“內聚與耦合”和“封閉——開放性”。
● 信息隱藏
為了盡量避免某個模塊的行為去干擾同一系統中的其它模塊,在設計模塊時就要注意信息隱藏。應該讓模塊僅僅公開必須要讓外界知道的內容,而隱藏其它一切內容。
模塊的信息隱藏可以通過接口設計來實現。接口是模塊的外部特征,應當公開;而數據結構、算法、實現體等則是模塊的內部特征,應當隱藏。一個模塊僅提供有限個接口,執行模塊的功能或與模塊交流信息必須且只須通過調用公有接口來實現。如果模塊是一個C++對象,那么該模塊的公有接口就對應于對象的公有函數。如果模塊是一個COM對象,那么該模塊的公有接口就是COM對象的接口。一個COM對象可以有多個接口,而每個接口實質上是一些函數的集合。
● 高內聚
內聚是一個模塊內部各成分之間相關聯程度的度量。內聚程度從低到高大致劃分為低端、中段和高端。模塊設計者沒有必要確定內聚的精確級別,重要的是盡量爭取高內聚,避免低內聚。
各種內聚類型的含義如下:
偶然性內聚。如果一個模塊的各成分之間的關系彼此松散,稱為偶然性內聚。
邏輯性內聚。幾個邏輯上相關的功能被放在同一模塊中,則稱為邏輯性內聚。例如一個模塊讀取各種不同類型外設的輸入。
時序性內聚。如果一個模塊內的幾個功能必須在同一時間內執行,但這些功能只是因為時間因素關聯在一起,則稱為時間性內聚。
過程性內聚。如果一個模塊內部的處理成分是相關的,而且這些處理必須以特定的次序執行,則稱為過程性內聚。
通信內聚。如果一個模塊的所有成分都操作同一數據集或生成同一數據集,則稱為通信內聚。
順序內聚。如果模塊內的某個成分的輸出作為另一個成分的輸入,則稱為順序內聚。
功能內聚。模塊的所有成分對于完成單一的功能都是必須的,則稱為功能內聚。
● 低耦合
耦合是模塊之間依賴程度的度量。內聚和耦合是密切相關的,與其它模塊存在強耦合的模塊通常意味著弱內聚,而強內聚的模塊通常意味著與其它模塊之間存在弱耦合。
耦合的強度依賴于以下幾個因素:
1.一個模塊對另一個模塊的函數調用數量;
2.一個模塊向另一個模塊傳遞的數據量;
3.一個模塊施加到另一個模塊的控制的多少;
4.模塊之間接口的復雜程度。
耦合程度從低到高大致劃分為低端、中段和高端。模塊設計應當爭取“高內聚、低耦合”,而避免“低內聚、高耦合”。
各種耦合類型的含義如下:
非直接耦合。模塊之間沒有直接的信息傳遞,稱為非直接耦合。
數據耦合。模塊之間通過接口傳遞參數,稱為數據耦合。
標記耦合。模塊間通過接口傳遞內部數據結構的一部分,稱為印記耦合。此數據結構的變化將使相關的模塊發生變化。
控制耦合。模塊傳遞信號給另一個模塊,接收信號的模塊根據信號值調整動作,稱為控制耦合。
公共耦合。兩個以上的模塊共同引用一個全局數據項,稱為公共耦合。
內容耦合。當一個模塊直接修改或操作另一個模塊的數據,或者直接轉入另一個模塊時,就發生了內容耦合。
以上就是關于軟件設計中的模塊設計是什么的全部內容介紹,想了解更多關于模塊設計的信息,請繼續關注中培偉業。