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