第六章系統(tǒng)總體設(shè)計
6.l系統(tǒng)總體結(jié)構(gòu)設(shè)計
6.1.1系統(tǒng)總體結(jié)構(gòu)設(shè)計的任務(wù)
系統(tǒng)總體結(jié)構(gòu)設(shè)計的任務(wù),是根據(jù)系統(tǒng)分析的邏輯模型設(shè)計應(yīng)用軟件系統(tǒng)的物理結(jié)構(gòu)。系統(tǒng)物理模型必須符合邏輯模型,能夠完成邏輯模型所規(guī)定的信息處理功能,這是物理設(shè)計的基本要求。
系統(tǒng)應(yīng)具有可修改性,即易讀,易于進(jìn)行查錯、改錯、可以根據(jù)環(huán)境的變化和用戶的要求進(jìn)行各種改變和改進(jìn)。系統(tǒng)是否具有可修改性,對于系統(tǒng)開發(fā)和維護(hù)影響極大。據(jù)統(tǒng)計,在系統(tǒng)生命周期中各階段的應(yīng)用軟件費用及人力投入大體分布如下:
。系統(tǒng)開發(fā):20%
。系統(tǒng)維護(hù):80%
6.1.2結(jié)構(gòu)化設(shè)計的基本思想
1.結(jié)構(gòu)化設(shè)計的要點
系統(tǒng)是否具有可修改性與其結(jié)構(gòu)有著密切的關(guān)系?!敖Y(jié)構(gòu)化設(shè)計”的構(gòu)想,成為系統(tǒng)設(shè)計的基本思想。其要點如下:
?。?)模塊化。
?。?)由頂向下,逐步求精。系統(tǒng)劃分模塊的工作應(yīng)按層次進(jìn)行:
①把整個系統(tǒng)看做一個模塊,然后把它按功能分解成若干第一層模塊,它們各擔(dān)負(fù)一定的局部功能,共同完成整個系統(tǒng)的功能。
②每個第一層模塊又可以進(jìn)一步分解成為更簡單一些的第二層模塊,越下層的模塊,其功能越具體、越簡單。
(3)上層模塊分解為下層模塊,有三種不同的結(jié)構(gòu)形式,即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。
控制結(jié)構(gòu)圖也稱為軟件結(jié)構(gòu)圖或模塊結(jié)構(gòu)圖,它表示出一個系統(tǒng)的層次分解關(guān)系、模塊調(diào)用關(guān)系、模塊之間數(shù)據(jù)流和控制信息流的傳遞關(guān)系,它是系統(tǒng)物理結(jié)構(gòu)的主要工具。
2.控制結(jié)構(gòu)圖的基本符號和規(guī)定
?。?)每個模塊有自身的任務(wù),只有接收到上級模塊的調(diào)用命令時才能執(zhí)行。
?。?)模塊之間的通信只限于其直接上、下級模塊,任何模塊不能直接與其他上下級模塊或同級模塊發(fā)生通信聯(lián)系。
(3)若有某模塊要與非直接上、下級的其他模塊發(fā)生通信聯(lián)系,必須通過其上級模塊進(jìn)行傳遞。
?。?)模塊調(diào)用順序為自上而下。在控制結(jié)構(gòu)圖中,把一個系統(tǒng)分解為若干模塊,實質(zhì)上是把一件比較抽象、其物理內(nèi)容不大確定的任務(wù),分解為若干件比較具體的、物理內(nèi)容比較確定的任務(wù)。
控制結(jié)構(gòu)圖既可以反映系統(tǒng)整體結(jié)構(gòu),又能反映系統(tǒng)的細(xì)節(jié),能準(zhǔn)確反映各組成部分(各模塊)及它們之間的聯(lián)系。
6.1.3模塊分解的規(guī)則
1.模塊獨立性
所謂兩個模塊彼此完全獨立,是指其中任一模塊在運行時,與另一個模塊存在無關(guān)。獨立性只是一個相對的概念。具有獨立功能而且和其他模塊之間相互作用少的模塊,稱為獨立性高的模塊。
保證模塊獨立性高是設(shè)計一個系統(tǒng)的關(guān)鍵,它具有以下優(yōu)點:
?。?)系統(tǒng)容易開發(fā)。系統(tǒng)開發(fā)往往由若干人分工合作完成,由于模塊之間聯(lián)系少,接口簡單,可以簡化合作者之間的協(xié)調(diào)工作。
(2)系統(tǒng)可靠性高。模塊之間的相互影響小,當(dāng)一個模塊出錯時,產(chǎn)生波動效應(yīng)的概率低,從而提高了系統(tǒng)的可靠性。
?。?)系統(tǒng)容易維護(hù)。在對一個模塊進(jìn)行修改和維護(hù)時,不必?fù)?dān)心其他模塊的內(nèi)部是否會受到影響。
要衡量模塊自身聯(lián)系是否緊密、與外部的聯(lián)系是否合理,需引入模塊凝聚、模塊耦合的概念。
2.模塊凝聚
模塊凝聚是用以衡量一個模塊內(nèi)部自身功能的內(nèi)在聯(lián)系是否緊密的指標(biāo),也是衡量模塊質(zhì)量好壞的重要標(biāo)準(zhǔn)。模塊按凝聚程度的高低可分為以下五級:
?。?)偶然凝聚。一個模塊內(nèi)部各組成部分的處理彼此無關(guān),偶然地組合在一起,這是一種組織得最差的模塊,凝聚程度最低。