版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
3.3軟件結(jié)構(gòu)準(zhǔn)則3.3.1軟件結(jié)構(gòu)圖
軟件結(jié)構(gòu)圖是軟件系統(tǒng)的模塊層次結(jié)構(gòu),反映了整個(gè)系統(tǒng)的功能實(shí)現(xiàn),即程序的控制層次體系。對(duì)于一個(gè)“問(wèn)題”,可用不同的軟件結(jié)構(gòu)來(lái)解決,不同的設(shè)計(jì)方法和不同的劃分和組織,可得出不同的軟件結(jié)構(gòu)。
軟件結(jié)構(gòu)往往用樹(shù)狀或網(wǎng)狀結(jié)構(gòu)的圖形來(lái)表示。軟件工程中,一般采用美國(guó)Yourdon等提出的稱為結(jié)構(gòu)圖(StructureChart,SC)的工具來(lái)表示軟件結(jié)構(gòu)。結(jié)構(gòu)圖的主要內(nèi)容有:3.3.1軟件結(jié)構(gòu)圖(1)模塊:用方框表示,并用名字標(biāo)識(shí)該模塊,名字應(yīng)體現(xiàn)該模塊的功能。(2)模塊的控制關(guān)系:兩個(gè)模塊間用單向箭頭或直線連接表示它們的控制關(guān)系,如圖3.2所示。按照慣例,圖中位于上方的模塊調(diào)用下方的模塊,所以不用箭頭也不會(huì)產(chǎn)生二義性。調(diào)用模塊和被調(diào)用模塊的關(guān)系稱為上屬與下屬的關(guān)系,或者稱為“統(tǒng)率”與“從屬”的關(guān)系。如圖3.4所示,模塊M統(tǒng)率模塊A、B、C,模塊D從屬于模塊A,也從屬于M。(3)模塊間的信息傳遞:模塊間還經(jīng)常用帶注釋的短箭頭表示模塊調(diào)用過(guò)程中來(lái)回傳遞的信息。有時(shí)箭頭尾部帶空心圓的表示傳遞的是數(shù)據(jù),帶實(shí)心圓的表示傳遞的是控制信息,如圖3.2所示。圖3.2模塊間的控制關(guān)系及信息傳遞3.3.1軟件結(jié)構(gòu)圖(4)兩個(gè)附加符號(hào):表示模塊有選擇調(diào)用或循環(huán)調(diào)用,如圖3.3所示。
圖3.3(a)的A模塊中有一個(gè)菱形符號(hào)表示A中有判斷處理功能,它有條件地調(diào)用B或C,圖3.3(b)中M模塊下方有一個(gè)弧形箭頭,表示M循環(huán)調(diào)用T1、T2和T3模塊。圖3.3選擇調(diào)用和循環(huán)調(diào)用的表示3.3.1軟件結(jié)構(gòu)圖(5)結(jié)構(gòu)圖的形態(tài)特征:
①深度:指結(jié)構(gòu)圖控制的層次,也是模塊的層數(shù),見(jiàn)圖3.4,結(jié)構(gòu)圖的深度為5。
②寬度:指一層中最大的模塊個(gè)數(shù),如圖3.4所示,寬度為8。
③扇出:指一個(gè)模塊直接下屬模塊的個(gè)數(shù),如圖3.4所示,模塊M的扇出為3。
④扇入:指一個(gè)模塊直接上屬模塊的個(gè)數(shù),如圖3.4所示,模塊T的扇入為4。圖3.4結(jié)構(gòu)圖示例(6)畫(huà)結(jié)構(gòu)圖應(yīng)注意的事項(xiàng):①同一名字的模塊在結(jié)構(gòu)圖中僅出現(xiàn)一次。②調(diào)用關(guān)系只能從上到下。③不嚴(yán)格表示模塊的調(diào)用次序,習(xí)慣上從左到右。有時(shí)為了減少連線的交叉,可適當(dāng)?shù)卣{(diào)整同一層模塊左右的位置,以保持結(jié)構(gòu)圖的清晰。3.3.1軟件結(jié)構(gòu)圖3.2.3信息隱蔽
一個(gè)軟件系統(tǒng)在整個(gè)生存期中要經(jīng)過(guò)多次修改,信息隱蔽為軟件系統(tǒng)的修改、測(cè)試及以后的維護(hù)都帶來(lái)好處。因此,在劃分模塊時(shí)要采取措施,如采用局部數(shù)據(jù)結(jié)構(gòu),使得大多數(shù)過(guò)程(即實(shí)現(xiàn)細(xì)節(jié))和數(shù)據(jù)對(duì)軟件的其他部分是隱藏的,這樣,修改軟件時(shí)偶然引入的錯(cuò)誤所造成的影響只局限在一個(gè)或少量幾個(gè)模塊內(nèi)部,不波及其他部分。3.3.2軟件結(jié)構(gòu)設(shè)計(jì)準(zhǔn)則
1.模塊獨(dú)立性準(zhǔn)則
劃分模塊時(shí),盡量做到高內(nèi)聚,低耦合,保持模塊相對(duì)獨(dú)立性,并以此原則優(yōu)化初始的軟件結(jié)構(gòu)。(1)如果若干模塊之間耦合強(qiáng)度過(guò)高,每個(gè)模塊內(nèi)的功能不復(fù)雜,可將它們合并,以減少信息的傳遞和公共區(qū)的引用;(2)若有多個(gè)相關(guān)模塊,應(yīng)對(duì)它們的功能進(jìn)行分析,消去重復(fù)功能。3.3.2軟件結(jié)構(gòu)設(shè)計(jì)準(zhǔn)則2.控制范圍與作用范圍之間的準(zhǔn)則
一個(gè)模塊的作用范圍應(yīng)在其控制范圍之內(nèi),且條件判定所在的模塊應(yīng)與受其影響的模塊在層次上盡量靠近。
在軟件結(jié)構(gòu)中,由于存在著不同事務(wù)處理的需要,某一層上的模塊會(huì)存在著判斷處理,這樣可能影響其他層的模塊處理。為了保證含有判定功能模塊的軟件設(shè)計(jì)的質(zhì)量,引入了模塊的作用范圍(或稱影響范圍)與控制范圍的概念。
一個(gè)模塊的作用范圍指受該模塊內(nèi)一個(gè)判定影響的所有模塊的集合。一個(gè)模塊的控制范圍指模塊本身以及其所有下屬模塊(直接或間接從屬于它的模塊)的集合。3.3.2軟件結(jié)構(gòu)設(shè)計(jì)準(zhǔn)則
如圖3.5(a)(符號(hào)
表示模塊內(nèi)有判定功能,陰影表示模塊的作用范圍)所示,模塊D的作用范圍是C、D、E和F,模塊D的控制范圍是D、E、F,作用范圍超過(guò)了控制范圍,這種結(jié)構(gòu)最差。因?yàn)镈的判定作用到了C,必然有控制信息通過(guò)上層模塊B傳遞到C,這樣增加了數(shù)據(jù)的傳遞量和模塊間的耦合。若修改D模塊,則會(huì)影響到不受它控制的C模塊,這樣不易理解與維護(hù)。圖3.5模塊的判定作用范圍3.3.2軟件結(jié)構(gòu)設(shè)計(jì)準(zhǔn)則
再看圖3.5(b),模塊TOP的作用范圍在控制范圍之內(nèi),但是判定所在模塊與受判定影響的模塊位置太遠(yuǎn),也存在著額外的數(shù)據(jù)傳遞(模塊B、D并不需要這些數(shù)據(jù)),增加了接口的復(fù)雜性和耦合強(qiáng)度。這種結(jié)構(gòu)雖符合設(shè)計(jì)原則,但不理想。最理想的結(jié)構(gòu)圖是圖3.5(c),消除了額外的數(shù)據(jù)傳遞。如果在設(shè)計(jì)過(guò)程中,發(fā)現(xiàn)模塊作用范圍不在其控制范圍之內(nèi),可以用以下方法加以改進(jìn):3.3.2軟件結(jié)構(gòu)設(shè)計(jì)準(zhǔn)則(1)上移判斷點(diǎn)。如圖3.5(a)所示,將模塊D中的判斷點(diǎn)上移到它的上層模塊B中,或者將模塊D整個(gè)合并到模塊B中,使該判斷的層次升高,以擴(kuò)大它的控制范圍。(2)下移受判斷影響的模塊。將受判斷影響的模塊下移到判斷所在模塊的控制范圍內(nèi),如圖3.5(a)所示,將模塊C下移到模塊D的下層。3.3.2軟件結(jié)構(gòu)設(shè)計(jì)準(zhǔn)則3.軟件結(jié)構(gòu)的形態(tài)特征準(zhǔn)則
軟件結(jié)構(gòu)的深度、寬度、扇入及扇出應(yīng)適當(dāng)。
深度是軟件結(jié)構(gòu)設(shè)計(jì)完成后觀察到的情況,能粗略地反映系統(tǒng)的規(guī)模和復(fù)雜程度。寬度也能反映系統(tǒng)的復(fù)雜情況。寬度與模塊的扇出有關(guān),一個(gè)模塊的扇出太多,說(shuō)明本模塊過(guò)分復(fù)雜,缺少中間層。單一功能模塊的扇入數(shù)大比較好,說(shuō)明本模塊為上層幾個(gè)模塊共享的公用模塊,重用率高。但是不能把彼此無(wú)關(guān)的功能湊在一起形成一個(gè)通用的超級(jí)模塊,雖然它扇入高,但低內(nèi)聚。因此非單一功能的模塊扇入高時(shí)應(yīng)重新分解,以消除控制耦合的情況。軟件結(jié)構(gòu)從形態(tài)上看,應(yīng)是頂層扇出數(shù)較高一些,中間層扇出數(shù)較低一些,底層扇入數(shù)較高一些。3.3.2軟件結(jié)構(gòu)設(shè)計(jì)準(zhǔn)則4.模塊的大小準(zhǔn)則在考慮模塊的獨(dú)立性同時(shí),為了增加可理解性,模塊的大小最好在50~150條語(yǔ)句左右,可以用1~2頁(yè)打印紙打印,便于人們閱讀與研究。5.模塊的接口準(zhǔn)則模塊的接口要簡(jiǎn)單、清晰及含義明確,便于理解,易于實(shí)現(xiàn)、測(cè)試與維護(hù)。3.3.3軟件結(jié)構(gòu)的HIPO圖HIPO圖(HierarchyPlusInput/Processing/Output)是美國(guó)IBM公司20世紀(jì)70年代發(fā)展起來(lái)的表示軟件系統(tǒng)結(jié)構(gòu)的工具。它既可以描述軟件總的模塊層次結(jié)構(gòu)——H圖(層次圖),又可以描述每個(gè)模塊輸入/輸出數(shù)據(jù)、處理功能及模塊調(diào)用的詳細(xì)情況——IPO圖。HIPO圖是以模塊分解的層次性以及模塊內(nèi)部輸入、處理及輸出三大基本部分為基礎(chǔ)建立的。當(dāng)然,繪制HIPO圖同樣要遵循軟件設(shè)計(jì)的基本原理。3.3.3軟件結(jié)構(gòu)的HIPO圖
1.HIPO圖的H圖H圖用于描述軟件的層次結(jié)構(gòu),矩形框表示一個(gè)模塊,矩形框之間的直線表示模塊之間的調(diào)用關(guān)系,同結(jié)構(gòu)圖一樣未指明調(diào)用順序。在2.4.2節(jié)的IDEF方法應(yīng)用示例的銷售管理系統(tǒng)中,它的H圖如圖3.6所示。圖3.6銷售管理系統(tǒng)的H圖3.3.3軟件結(jié)構(gòu)的HIPO圖2.IPO圖H圖只說(shuō)明了軟件系統(tǒng)由哪些模塊組成及其控制層次結(jié)構(gòu),并未說(shuō)明模塊間的信息傳遞及模塊內(nèi)部的處理。因此對(duì)一些重要模塊還必須根據(jù)數(shù)據(jù)流圖、數(shù)據(jù)字典及H圖繪制具體的IPO圖,圖3.7為“確定能否供貨”的IPO圖。“確定能否供貨”是圖3.6中的一個(gè)模塊。3.3.3軟件結(jié)構(gòu)的HIP
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 衛(wèi)生管理培訓(xùn)課程設(shè)計(jì)
- 素描教學(xué)課程設(shè)計(jì)
- 杯蓋沖模課程設(shè)計(jì)
- 2024年離婚子女撫養(yǎng)協(xié)議
- 2024年中國(guó)PVC介子市場(chǎng)調(diào)查研究報(bào)告
- 種植養(yǎng)殖課程設(shè)計(jì)思路
- 2024年知識(shí)產(chǎn)權(quán)風(fēng)險(xiǎn)管理咨詢合同2篇
- 2025年度綠色能源基站施工合同2篇
- 2025版鋼材出口合同范本詳述及注意事項(xiàng)3篇
- 2025版智能倉(cāng)儲(chǔ)物流中心投資合作協(xié)議3篇
- 物業(yè)接管驗(yàn)收必須具備的條件
- 土石壩沉降及其實(shí)測(cè)數(shù)據(jù)分析計(jì)算
- plc--病床呼叫系統(tǒng)
- 永煤集團(tuán)順和煤礦液壓銷齒彎道推車機(jī)技術(shù)規(guī)格書(shū)
- 九型人格測(cè)試之180題(完整版)和答案解析
- 口內(nèi)病例分析
- LS-MASTER-K-指令手冊(cè)
- 清單計(jì)價(jià)規(guī)范附錄附表詳解PPT課件
- 光刻膠知識(shí)簡(jiǎn)介
- 烏茲別克語(yǔ)字母表
- 微機(jī)室學(xué)生上機(jī)記錄
評(píng)論
0/150
提交評(píng)論