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