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