若干個(gè)彼此獨(dú)立而又有一定聯(lián)系的組成部分,這些組成部分稱為模塊。對(duì)于任何一個(gè)系統(tǒng) 結(jié)構(gòu)化設(shè)計(jì)方法的基本思想是使系統(tǒng)模塊化化,即把一個(gè)系統(tǒng)自上而下、逐步分解為立功能的模塊所組成的系統(tǒng)。在這一基本思想的指導(dǎo)下,系統(tǒng)設(shè)計(jì)人員以邏輯模型為基礎(chǔ),都可以按功能逐步由上向下、由抽象到具體,逐層將其分解為一個(gè)多層次的的、具有相對(duì)獨(dú)并借助于一套標(biāo)準(zhǔn)的設(shè)計(jì)準(zhǔn)則和圖表等工具,逐層地將系統(tǒng)分解成多個(gè)大小適當(dāng)、功能單 具有一定獨(dú)立性的模塊,把一個(gè)復(fù)雜的系統(tǒng)轉(zhuǎn)換成易于實(shí)現(xiàn)、易于維護(hù)的模塊化結(jié)構(gòu)系玧。結(jié)構(gòu)化設(shè)計(jì)的工作過(guò)程可以分為兩步:第一步是根據(jù)數(shù)據(jù)流程圖導(dǎo)出系統(tǒng)初始結(jié)構(gòu)
不僅可以表示一個(gè)系統(tǒng)的層次結(jié)構(gòu)關(guān)系,而且還反映了模塊的調(diào)用關(guān)系和模塊之間數(shù)據(jù)流 圖;第二步是對(duì)結(jié)構(gòu)圖的反復(fù)改進(jìn)過(guò)程。因此,系統(tǒng)結(jié)構(gòu)圖是結(jié)構(gòu)化設(shè)計(jì)的主要工具,它
的傳遞關(guān)系等特性。
模塊劃分的標(biāo)準(zhǔn)
結(jié)構(gòu)化設(shè)計(jì)要解決的主要問(wèn)題是把系統(tǒng)分解成一個(gè)個(gè)模塊,并用結(jié)構(gòu)圖的形式表達(dá)出其內(nèi)在的聯(lián)系。因此,模塊劃分的是否合理理,直接影響到系統(tǒng)設(shè)計(jì)的質(zhì)量,影響系統(tǒng)開(kāi)發(fā)的時(shí)間、開(kāi)發(fā)成本以及系統(tǒng)實(shí)施和維護(hù)的方便程度等方面。為了能夠合理地劃分系統(tǒng)的各個(gè)模塊,使其具有較強(qiáng)的獨(dú)立性,在劃分模塊時(shí)要遵循的總原則是:盡量把密切相關(guān)的子問(wèn)題劃歸到同一模塊;把不相關(guān)的子問(wèn)題劃歸到系統(tǒng)的不同模塊。衡量系統(tǒng)的結(jié)構(gòu)化程度及模塊的獨(dú)立性,可以通過(guò)模塊與模塊之間的關(guān)聯(lián)度和模塊內(nèi)部各個(gè)組成部分之間的聚合度兩條標(biāo)準(zhǔn)來(lái)進(jìn)行評(píng)價(jià)。
模塊之間的關(guān)聯(lián)度
模塊之間的關(guān)聯(lián)度是用來(lái)表示一個(gè)模塊與其他模塊之間聯(lián)系的緊密程度。關(guān)聯(lián)度越低,則說(shuō)明模塊之間的聯(lián)系越少,模塊的獨(dú)立性就越強(qiáng),就越容易獨(dú)立地進(jìn)行編程、調(diào)試以從以下三個(gè)方面來(lái)衡量和評(píng)價(jià) 和修改,某個(gè)模塊中產(chǎn)生的錯(cuò)誤對(duì)其他模塊的影響也就越小。對(duì)于模塊之間的關(guān)聯(lián)度,
(1)模塊之間的聯(lián)系方式。如果一個(gè)模塊直接調(diào)用另一個(gè)模塊內(nèi)部的數(shù)據(jù)或指令,這說(shuō)明被調(diào)用模塊內(nèi)含有多方面不相關(guān)的內(nèi)容,導(dǎo)致模塊間聯(lián)系增多,修改一個(gè)模塊將直 接影響其他的模塊,降低了模塊的獨(dú)立性。因此,在系統(tǒng)設(shè)計(jì)中,應(yīng)盡量避免使用這種聯(lián)系方式。另一種聯(lián)系方式是通過(guò)被調(diào)用模塊的名稱來(lái)調(diào)用整個(gè)模塊,使其完成一定的功能式 這樣可以降低模塊間的聯(lián)系,增加其獨(dú)立性。因此在系統(tǒng)設(shè)計(jì)中,應(yīng)盡量采用這種聯(lián)系方序調(diào)用過(guò)程中過(guò)多地使用控制信息,必然會(huì)增加模塊之間的聯(lián)系,影響模塊的獨(dú)立性。因 (2)模塊之間使用控制信息的數(shù)量??刂菩畔⑹侵缚刂瞥绦蜻\(yùn)行過(guò)程的信息,在程此,在模塊之間應(yīng)盡量不用或少用控制信息。當(dāng)需要在模塊之間使用含有控制信息的調(diào)用用關(guān)系時(shí),可以通過(guò)功能分解的形式消除控制信息的彩響 (3)模塊之間傳送數(shù)據(jù)的數(shù)量。模塊之間通過(guò)調(diào)用關(guān)系傳送數(shù)據(jù),是一種比較理想的聯(lián)系方式。但是,如果模塊之間傳送的數(shù)據(jù)過(guò)多,同樣會(huì)給理解和修改模塊帶來(lái)因難就越強(qiáng),也就越便于系統(tǒng)的設(shè)計(jì)和維護(hù) 且降低系統(tǒng)的可維護(hù)性。一個(gè)模塊同其他模塊之間傳遞的數(shù)據(jù)越少,模塊間的相互獨(dú)立性
要降低模塊之間的關(guān)聯(lián)度,除了從以上幾方面考慮之外,還可以從模塊界面面的清性來(lái)考慮。模塊之間的界面越簡(jiǎn)單、清晰、易于理解,則關(guān)聯(lián)度越低,模塊的獨(dú)立性也就越強(qiáng)
模塊內(nèi)部的聚合度
一個(gè)模塊內(nèi)部的各種組成部分之間聯(lián)系的越密切,其聚合度越高,模塊的獨(dú)立性也就越強(qiáng)。模塊內(nèi)部的聚合度是用來(lái)描述和評(píng)價(jià)模塊內(nèi)部各個(gè)組成部分之間聯(lián)系的緊密程度。成以下七種形式: 模塊的聚合度是由模塊的聚合方式?jīng)Q定的。根據(jù)模塊內(nèi)部的構(gòu)成情況,其聚合方式可以分
(1) 偶然性聚合。將幾個(gè)毫無(wú)聯(lián)系的功能組合在一起,形成一個(gè)模塊,稱為偶然性聚合模塊。這種模塊內(nèi)部的各個(gè)組成部分之間幾乎沒(méi)有什么聯(lián)系,只是為節(jié)省存貯空間或提高運(yùn)算速度而結(jié)合在一起,因此聚合度最低年
(2)邏輯性聚合。將幾個(gè)邏輯上相似,但彼此并無(wú)聯(lián)系的功能組合在一起所形成的模塊,稱為邏輯性聚合模塊。這種聚合形式,其聚合度也非常低,模塊中的各種功能要通過(guò)控制變量選擇執(zhí)行。
(3)時(shí)間性聚合。將幾個(gè)需要在同一時(shí)段進(jìn)行處理的各項(xiàng)功能組合在一起所形成的模塊,稱為時(shí)間性聚合模塊。如系統(tǒng)的初始化模塊、結(jié)束處理模塊等,可以考慮采用時(shí)間性聚合方式。(4)過(guò)程性聚合。將為了完成某項(xiàng)業(yè)務(wù)處理過(guò)程,將執(zhí)行條件受同一控制流支配的若干個(gè)功能組合在一起所形成的模塊,稱為過(guò)程性聚合模塊。這類模塊的聚合度較前幾種要高一些
(5)數(shù)據(jù)性聚合。將對(duì)同一數(shù)據(jù)加工處理的若干個(gè)功能組合在一起所形成的模塊稱為數(shù)據(jù)性聚合模塊。這種模塊能合理地定義功能,結(jié)構(gòu)也比較清楚,因此其聚合度較高。
(6)順序性聚合。把若干個(gè)順序執(zhí)行的、一個(gè)處理的輸出是另一個(gè)處理的輸入的功能組合在一起所構(gòu)成的模塊,稱為順序性聚合模塊。這種模塊的聚合度要更高一些
(7)功能性聚合。為了完成一項(xiàng)具體任務(wù),由簡(jiǎn)單處理功能所組成的模塊,稱為功能性聚模塊。這種模塊功能單一,內(nèi)部聯(lián)系緊密,易于編程、調(diào)試和修改,因此其獨(dú)立性最強(qiáng),聚合度也最高。在上述七種模塊聚合方式中,其聚合度是依次升高的。由于功能性聚合模塊的聚合度最高,所以在劃分模塊的過(guò)程中,首先應(yīng)盡量采用功能性聚合方式。其次,根據(jù)需要可 以適當(dāng)考慮采用順序性聚合或數(shù)據(jù)性聚合方式,網(wǎng)站設(shè)計(jì)但要避免采用偶然性聚合和邏輯性聚合方
本文地址:http://m.hbbqcd.cn//article/3441.html