版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第四章總體設(shè)計(jì)概要設(shè)計(jì)第1頁(yè),共69頁(yè),2023年,2月20日,星期三§4.1總體設(shè)計(jì)的過(guò)程
總體設(shè)計(jì)過(guò)程通常由兩個(gè)主要階段組成:1.系統(tǒng)設(shè)計(jì),確定系統(tǒng)的具體實(shí)現(xiàn)方案;2.結(jié)構(gòu)設(shè)計(jì),確定軟件結(jié)構(gòu)。第2頁(yè),共69頁(yè),2023年,2月20日,星期三總體設(shè)計(jì)的過(guò)程:確定方案確定結(jié)構(gòu)
一、設(shè)想供選擇的方案
二、選擇合理的方案三、推薦最佳方案
四、功能分解
五、設(shè)計(jì)軟件結(jié)構(gòu)
六、數(shù)據(jù)庫(kù)設(shè)計(jì)
七、制定測(cè)試計(jì)劃
八、書(shū)寫(xiě)文檔
九、審查復(fù)審
第3頁(yè),共69頁(yè),2023年,2月20日,星期三概要設(shè)計(jì)的任務(wù)1.將系統(tǒng)劃分成模塊;2.確定每個(gè)模塊的功能;3.確定模塊的調(diào)用關(guān)系;4.確定模塊的界面,即模塊間傳遞的數(shù)據(jù)。
第4頁(yè),共69頁(yè),2023年,2月20日,星期三§4.2軟件設(shè)計(jì)基本概念
一.模塊化與信息隱藏(Modularization,InformationHiding)第5頁(yè),共69頁(yè),2023年,2月20日,星期三1.分解(Decomposition)
設(shè)C(x)為問(wèn)題x的復(fù)雜程度,E(x)為解決x
的工作量(時(shí)間)。
若C(p1)>C(p2),則E(p1)>E(p2)實(shí)踐證明:C(p1+p2)>C(p1)+C(p2)∴E(p1+p2)>E(p1)+E(p2)
∴模塊化
第6頁(yè),共69頁(yè),2023年,2月20日,星期三2.信息隱藏
模塊內(nèi)部的數(shù)據(jù)與過(guò)程,應(yīng)該對(duì)不需要了解這些數(shù)據(jù)與過(guò)程的模塊隱藏起來(lái),只有為了完成軟件的總體功能而必需在模塊間交換的信息,才允許在模塊間進(jìn)行傳遞。第7頁(yè),共69頁(yè),2023年,2月20日,星期三3.模塊獨(dú)立性
(ModuleIndependence)
模塊獨(dú)立的概念是模塊化、抽象、信息隱藏和局部化的直接結(jié)果。開(kāi)發(fā)具有獨(dú)立功能而且和其他模塊之間沒(méi)有過(guò)多的相互作用的模塊,就可以做到模塊獨(dú)立。為什么模塊獨(dú)立性很重要呢?■有效的模塊化的軟件比較容易開(kāi)發(fā)出來(lái);■獨(dú)立的模塊比較容易測(cè)試和維護(hù)。第8頁(yè),共69頁(yè),2023年,2月20日,星期三(1).內(nèi)聚(Cohesion)
內(nèi)聚標(biāo)志一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度。它是信息隱藏和局部化概念的自然擴(kuò)展。內(nèi)聚度越高越好。第9頁(yè),共69頁(yè),2023年,2月20日,星期三1.
偶然性?xún)?nèi)聚(CoincidentalCohesion)所謂偶然性?xún)?nèi)聚是指一個(gè)模塊內(nèi)各成分為完成一組功能而組合在一起,它們相互之間即使有關(guān)系,也很松散。2.
邏輯性?xún)?nèi)聚(LogicalCohesion)如果一個(gè)模塊完成的任務(wù)邏輯上相關(guān)(例如,一個(gè)產(chǎn)生所有與類(lèi)型無(wú)關(guān)的輸出),則稱(chēng)為邏輯性?xún)?nèi)聚。3.
時(shí)間性?xún)?nèi)聚(TemporalCohesion)如果一個(gè)模塊內(nèi)包含的任務(wù)必須在一個(gè)時(shí)間段內(nèi)執(zhí)行(例如一個(gè)初始化模塊),則稱(chēng)之為時(shí)間性?xún)?nèi)聚。4.
過(guò)程性?xún)?nèi)聚(ProceduralCohesion)模塊的過(guò)程性?xún)?nèi)聚是指,模塊內(nèi)成分彼此相關(guān),并且必須按特定的次序執(zhí)行。第10頁(yè),共69頁(yè),2023年,2月20日,星期三5.
通訊性?xún)?nèi)聚(CommunicationalCohesion)模塊的通訊性?xún)?nèi)聚是指,模塊中各成分都將對(duì)數(shù)據(jù)結(jié)構(gòu)的同一區(qū)域進(jìn)行操作,以達(dá)到通訊的目的。6.
順序性?xún)?nèi)聚(SequentialCohesion)如果一個(gè)模塊內(nèi)的各處理成分均與同一功能相關(guān),且這些處理必須順序執(zhí)行,則稱(chēng)為順序性?xún)?nèi)聚。7.
功能性?xún)?nèi)聚(FunctionalCohesion)如果模塊內(nèi)所有成分形成一個(gè)整體,完成單個(gè)功能,則稱(chēng)為功能內(nèi)聚。功能內(nèi)聚是最高的內(nèi)聚形式。第11頁(yè),共69頁(yè),2023年,2月20日,星期三(2).耦合(Coupling)耦合是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。耦合度越弱越好。耦合度的強(qiáng)弱取決于模塊間接口的復(fù)雜性、進(jìn)入或調(diào)用模塊的位置以及通過(guò)界面?zhèn)魉蛿?shù)據(jù)的多少等。
第12頁(yè),共69頁(yè),2023年,2月20日,星期三
1.非直接耦合(NoDirectCoupling)如果兩模塊中任一個(gè)都不依賴(lài)對(duì)方能獨(dú)立工作,則稱(chēng)這兩模塊為非直接耦合,這類(lèi)耦合度最低。2.數(shù)據(jù)耦合(DataCoupling)如果兩模塊間通過(guò)參數(shù)交換信息,而信息僅限于數(shù)據(jù),則稱(chēng)這兩模塊為數(shù)據(jù)耦合。3.特征耦合(StampCoupling)介于數(shù)據(jù)耦合和控制耦合之間的是特征耦合。第13頁(yè),共69頁(yè),2023年,2月20日,星期三
4.控制耦合(ControlCoupling)如果兩模塊間通過(guò)參數(shù)交換信息,而信息僅限于數(shù)據(jù),此時(shí)若傳遞的信息中包含控制信息,則耦合度上升為控制耦合。5.
外部耦合(ExternalCoupling)當(dāng)若干模塊均與同一個(gè)外部環(huán)境關(guān)聯(lián)(例如I/O處理使所有模塊與特定I/O設(shè)備、格式和通訊協(xié)議相關(guān)聯(lián)),它們之間便存在外部耦合。6.公共耦合(CommonCoupling)當(dāng)若干模塊通過(guò)全局的數(shù)據(jù)環(huán)境相互作用時(shí),它們之間存在公共耦合。第14頁(yè),共69頁(yè),2023年,2月20日,星期三7.內(nèi)容耦合(ContentCoupling)最高耦合度是內(nèi)容耦合,出現(xiàn)內(nèi)容耦合的情形包括:當(dāng)一個(gè)模塊使用另一個(gè)模塊內(nèi)部的數(shù)據(jù)或控制信息;一個(gè)模塊直接轉(zhuǎn)移到另一模塊內(nèi)部,等。第15頁(yè),共69頁(yè),2023年,2月20日,星期三二.抽象與逐步求精
‘抽象’是一個(gè)心理學(xué)概念,即將注意力集中在某一層次上考慮問(wèn)題,而忽略那些低層次的細(xì)節(jié),軟件工程過(guò)程的每一步都是對(duì)較高一級(jí)抽象的解,作一次較具體的描述.‘逐步求精’與‘抽象’密切相關(guān),是一種自頂向下設(shè)計(jì)策略,其主要思想是:針對(duì)某個(gè)功能的宏觀(guān)描述用逐步求精的方法不斷地分解。逐步確定過(guò)程細(xì)節(jié)直至該功能用程序描述的算法實(shí)現(xiàn)為止。這種分解是‘逐步’的,即每一步分解僅較其前一步增加“少量”的細(xì)節(jié)。這樣在相連兩步之間只有微小的變化,不難驗(yàn)證它們的內(nèi)容是否等效。第16頁(yè),共69頁(yè),2023年,2月20日,星期三例:求五邊形的面積,邊長(zhǎng)由L1~L7由鍵盤(pán)讀入
解:一級(jí)抽象(求精)
1.輸入長(zhǎng)度L1~L7;2.
由L1、L5、L6求三角形面積S1;3.由L2、L6、L7求三角形面積S2;4.由L3、L4、L6求三角形面積S3;5.
S=S1+S2+S3;6.輸出S;二級(jí)求精:已知三邊a、b、c,求三角形面積TsP=(a+b+c)/2;Ts=SQRT(P(P-a)(P-b)(P-c))三級(jí)求精:寫(xiě)出程序。第17頁(yè),共69頁(yè),2023年,2月20日,星期三§4.3啟發(fā)式規(guī)則
在軟件開(kāi)發(fā)的長(zhǎng)期時(shí)間中人們積累了豐富的經(jīng)驗(yàn),總結(jié)這些經(jīng)驗(yàn)得出了一些有用的啟發(fā)式規(guī)則。它能給軟件工程師以有用的啟示,幫助他們找到改進(jìn)軟件設(shè)計(jì)提高軟件質(zhì)量的途徑。第18頁(yè),共69頁(yè),2023年,2月20日,星期三一.改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性;設(shè)計(jì)出軟件的初步結(jié)構(gòu)后,應(yīng)該審查分析這個(gè)結(jié)構(gòu),通過(guò)模塊分解和合并,力求降低耦合提高內(nèi)聚。二.模塊規(guī)模應(yīng)該適中;(通常為60行語(yǔ)句)三.深度、廣度、扇出和扇入都應(yīng)適中(增加中間層);深度表示軟件結(jié)構(gòu)中控制的層數(shù),能粗略地標(biāo)志一個(gè)系統(tǒng)的大小和復(fù)雜程度。廣度是軟件結(jié)構(gòu)內(nèi)同一個(gè)層次上的模塊總數(shù)的最大值。一般來(lái)說(shuō),廣度越大系統(tǒng)越復(fù)雜。對(duì)廣度影響最大的因素是模塊的扇出。扇入(fan-in)是指模塊的上級(jí)模塊數(shù),即共有多少模塊需要調(diào)用這個(gè)模塊。扇出(fan-out)是指模塊調(diào)用下屬模塊的數(shù)目,或者說(shuō)這個(gè)模塊具有多少個(gè)下屬模塊。第19頁(yè),共69頁(yè),2023年,2月20日,星期三四.模塊的作用域應(yīng)該在控制域之內(nèi)模塊的作用域定義為受該模塊一個(gè)判定影響的所有模塊的集合;模塊的控制域是這個(gè)模塊本身以及所有直接或間接從屬于它的模塊的集合。如下圖:第20頁(yè),共69頁(yè),2023年,2月20日,星期三
五.力爭(zhēng)降低模塊接口的復(fù)雜程度;模塊接口復(fù)雜是軟件發(fā)生錯(cuò)誤的主要原因。應(yīng)該仔細(xì)設(shè)計(jì)模塊接口,使得信息傳遞簡(jiǎn)單并且和模塊的功能一致。接口復(fù)雜或不一致是緊耦合或低內(nèi)聚的征兆,應(yīng)該重新分析這個(gè)模塊的獨(dú)立性。六.設(shè)計(jì)單入口單出口的模塊;這條啟發(fā)式規(guī)則警告軟件工程師不要使模塊間出現(xiàn)內(nèi)容耦合。當(dāng)從頂部進(jìn)入模塊并且從底部退出來(lái)時(shí),軟件是比較容易理解的,因此也是比較容易維護(hù)的。第21頁(yè),共69頁(yè),2023年,2月20日,星期三
七.模塊功能應(yīng)該可以預(yù)測(cè)。模塊的功能應(yīng)該可以預(yù)測(cè),但也要防止模塊功能過(guò)分局限。如果一個(gè)模塊可以當(dāng)作一個(gè)黑盒子,也就是說(shuō),只要輸入數(shù)據(jù)相同就產(chǎn)生同樣的輸出,這個(gè)模塊就是可以預(yù)測(cè)的。以上列出的啟發(fā)式規(guī)則多數(shù)是經(jīng)驗(yàn)規(guī)律,對(duì)改進(jìn)設(shè)計(jì),提高軟件質(zhì)量,往往有重要的參考價(jià)值。但是,它們既不是設(shè)計(jì)的目標(biāo)也不是設(shè)計(jì)時(shí)應(yīng)該普遍遵循的原則。第22頁(yè),共69頁(yè),2023年,2月20日,星期三§4.4設(shè)計(jì)文檔及其復(fù)審
一.總體及詳細(xì)設(shè)計(jì)說(shuō)明書(shū)在設(shè)計(jì)階段,設(shè)計(jì)人員要完成兩種文檔:概要設(shè)計(jì)說(shuō)明書(shū)和詳細(xì)設(shè)計(jì)說(shuō)明書(shū)。前者確定軟件結(jié)構(gòu)(softwarestructure),后者則著重描述程序的過(guò)程(programprocedure)。第23頁(yè),共69頁(yè),2023年,2月20日,星期三
1.總體設(shè)計(jì)說(shuō)明書(shū)應(yīng)包括:1)以圖表形式表示的軟件總體結(jié)構(gòu);2)模塊的外部設(shè)計(jì),包括關(guān)于各模塊功能、性能與接口的簡(jiǎn)要描述;3)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),包括數(shù)據(jù)模式、訪(fǎng)問(wèn)方法和存儲(chǔ)要求。2.詳細(xì)設(shè)計(jì)說(shuō)明書(shū)應(yīng)包括:1)表示軟件結(jié)構(gòu)的圖表;2)對(duì)逐個(gè)模塊的程序描述,包括算法和邏輯流程、輸入/輸出項(xiàng)與外部接口等。
第24頁(yè),共69頁(yè),2023年,2月20日,星期三二.設(shè)計(jì)表達(dá)工具
1.層次圖和HIPO圖
第25頁(yè),共69頁(yè),2023年,2月20日,星期三●層次圖(HierarchyChart――HC圖)表示軟件的分層結(jié)構(gòu)。層次圖中的一個(gè)矩形框代表一個(gè)模塊,方框間的連線(xiàn)表示調(diào)用關(guān)系而不像層次方框圖那樣表示組成關(guān)系。第26頁(yè),共69頁(yè),2023年,2月20日,星期三●IPO(輸入、加工、輸出圖)
第27頁(yè),共69頁(yè),2023年,2月20日,星期三
●HIPO圖=HC圖+IPO圖
用HC圖描述軟件結(jié)構(gòu),用IPO圖描述程序過(guò)程。第28頁(yè),共69頁(yè),2023年,2月20日,星期三
2.結(jié)構(gòu)圖
第29頁(yè),共69頁(yè),2023年,2月20日,星期三
SC圖是SD方法在概要設(shè)計(jì)中使用的主要表達(dá)工具,用來(lái)顯示軟件的組成模塊及其調(diào)用關(guān)系。SD方法約定,用矩形框來(lái)表示模塊,用箭頭的連線(xiàn)表示模塊間的調(diào)用關(guān)系。在調(diào)用線(xiàn)的兩旁,應(yīng)標(biāo)出傳入和傳出模塊的數(shù)據(jù)流。第30頁(yè),共69頁(yè),2023年,2月20日,星期三1).模塊的表示符號(hào)
第31頁(yè),共69頁(yè),2023年,2月20日,星期三2).簡(jiǎn)單調(diào)用
第32頁(yè),共69頁(yè),2023年,2月20日,星期三
3).選擇調(diào)用
第33頁(yè),共69頁(yè),2023年,2月20日,星期三
4).循環(huán)調(diào)用
第34頁(yè),共69頁(yè),2023年,2月20日,星期三三.設(shè)計(jì)復(fù)審(DesignReview)概要設(shè)計(jì)復(fù)審應(yīng)該把重點(diǎn)放在系統(tǒng)的總體結(jié)構(gòu),模塊劃分,內(nèi)外接口等方面。例如軟件的結(jié)構(gòu)能否滿(mǎn)足需求?結(jié)構(gòu)的形態(tài)是否合理,層次是否清晰?模塊的劃分是不是符合模塊化和信息隱藏的思想等優(yōu)化原則?系統(tǒng)的人機(jī)界面、各模塊的接口以及出錯(cuò)處理是否恰當(dāng)?模塊的設(shè)計(jì)能否滿(mǎn)足功能與性能要求?選擇的算法與數(shù)據(jù)結(jié)構(gòu)是否合理,能否適應(yīng)編程語(yǔ)言等?復(fù)審包括軟件總體結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、界面以及模塊過(guò)程細(xì)節(jié)四個(gè)方面。第35頁(yè),共69頁(yè),2023年,2月20日,星期三§4.5面向數(shù)據(jù)流的設(shè)計(jì)方法
面向數(shù)據(jù)流的設(shè)計(jì)方法(DataFlow-orientalDesign)也稱(chēng)結(jié)構(gòu)設(shè)計(jì)方法(StructuredDesign--SD),是根據(jù)需求階段對(duì)數(shù)據(jù)流的分析(用數(shù)據(jù)流圖和數(shù)據(jù)字典表示)設(shè)計(jì)軟件結(jié)構(gòu)。第36頁(yè),共69頁(yè),2023年,2月20日,星期三一.概念和設(shè)計(jì)過(guò)程為了有效地實(shí)現(xiàn)從DFD圖到SD圖的映射,SD方法規(guī)定了下列五個(gè)步驟:1.用SD方法將數(shù)據(jù)流圖轉(zhuǎn)換為軟件結(jié)構(gòu),其過(guò)程為:第37頁(yè),共69頁(yè),2023年,2月20日,星期三2).事務(wù)流
這種類(lèi)型至少有一條接受路徑(ReceptionPath);一個(gè)事物中心(TransactionCenter);與若干條動(dòng)作路徑(ActionPath);第38頁(yè),共69頁(yè),2023年,2月20日,星期三2.劃定流界;3.將數(shù)據(jù)流圖映射為程序結(jié)構(gòu);4.提取層次控制結(jié)構(gòu);5.通過(guò)設(shè)計(jì)復(fù)審和使用啟發(fā)式策略進(jìn)一步精化所得到的結(jié)構(gòu)。(如下圖)
第39頁(yè),共69頁(yè),2023年,2月20日,星期三第40頁(yè),共69頁(yè),2023年,2月20日,星期三第41頁(yè),共69頁(yè),2023年,2月20日,星期三第42頁(yè),共69頁(yè),2023年,2月20日,星期三第43頁(yè),共69頁(yè),2023年,2月20日,星期三第44頁(yè),共69頁(yè),2023年,2月20日,星期三第45頁(yè),共69頁(yè),2023年,2月20日,星期三第46頁(yè),共69頁(yè),2023年,2月20日,星期三第47頁(yè),共69頁(yè),2023年,2月20日,星期三第48頁(yè),共69頁(yè),2023年,2月20日,星期三第49頁(yè),共69頁(yè),2023年,2月20日,星期三第50頁(yè),共69頁(yè),2023年,2月20日,星期三
二.變換分析第一步:復(fù)查基本系統(tǒng)模型;第二步:復(fù)查并精化數(shù)據(jù)流圖;第三步:確定數(shù)據(jù)流圖具有變換特性還是事物特性;第四步:輸入流和輸出流的邊界,從而孤立變換中心;第五步:完成“第一級(jí)分解”;第六步:完成“第二級(jí)分解”;第七步:采用啟發(fā)式設(shè)計(jì)策略,精華所得程序結(jié)構(gòu)雛形,改良軟件質(zhì)量。
第51頁(yè),共69頁(yè),2023年,2月20日,星期三四.設(shè)計(jì)優(yōu)化對(duì)軟件結(jié)構(gòu)的修改越早越好,人們把軟件總體結(jié)構(gòu)設(shè)計(jì)與詳細(xì)過(guò)程設(shè)計(jì)分開(kāi)正是為了提供盡早優(yōu)化結(jié)構(gòu)的可能性。有時(shí),甚至可以并行地開(kāi)發(fā)若干個(gè)軟件結(jié)構(gòu),通過(guò)評(píng)比求得“最佳”結(jié)果??紤]設(shè)計(jì)優(yōu)化問(wèn)題是應(yīng)該記住,“一個(gè)不能工作的‘最佳設(shè)計(jì)’的價(jià)值是值得懷疑的”。軟件設(shè)計(jì)人員應(yīng)該致力于開(kāi)發(fā)能滿(mǎn)足所有功能和性能要求,而且按照設(shè)計(jì)原理和啟發(fā)式設(shè)計(jì)規(guī)則衡量是值得接受的條件。應(yīng)該在設(shè)計(jì)的早期階段盡量對(duì)軟件結(jié)構(gòu)進(jìn)行精化??梢詫?dǎo)出不同的軟件結(jié)構(gòu),然后對(duì)它們進(jìn)行評(píng)價(jià)和比較,力求得到“最好”的結(jié)果。這種優(yōu)化的可能,是把軟件結(jié)構(gòu)設(shè)計(jì)和過(guò)程設(shè)計(jì)分開(kāi)的真正優(yōu)點(diǎn)之一。第52頁(yè),共69頁(yè),2023年,2月20日,星期三
注意,結(jié)構(gòu)簡(jiǎn)單通常既表示設(shè)計(jì)風(fēng)格優(yōu)雅,又表明效率高。設(shè)計(jì)優(yōu)化應(yīng)該力求做到在有效的模塊化的前提下使用少量的模塊,以及在能滿(mǎn)足信息要求的前提下使用最簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)。對(duì)于時(shí)間是決定性因素的應(yīng)用場(chǎng)合,可能有必要在詳細(xì)設(shè)計(jì)階段,也可能在編寫(xiě)程序的過(guò)程中進(jìn)行優(yōu)化。軟件開(kāi)發(fā)人員應(yīng)該認(rèn)識(shí)到,程序中相對(duì)說(shuō)比較小的部分(典型地,10%~20%),通常占用全部處理時(shí)間的大部分(50%~80%)。
第53頁(yè),共69頁(yè),2023年,2月20日,星期三用下述方法對(duì)時(shí)間起決定性作用的軟件進(jìn)行優(yōu)化是合理的:(1)在不考慮時(shí)間因素的前提下開(kāi)發(fā)并精化軟件結(jié)構(gòu);(2)在詳細(xì)設(shè)計(jì)階段選出最耗費(fèi)時(shí)間的那些模塊,仔細(xì)地設(shè)計(jì)它們的處理過(guò)程(算法),以求提高效率;(3)
使用高級(jí)程序設(shè)計(jì)語(yǔ)言編寫(xiě)程序;(4)在軟件中孤立出那些大量占用處理機(jī)資源的模塊;(5)必要時(shí)重新設(shè)計(jì)或用依賴(lài)于機(jī)器的語(yǔ)言重寫(xiě)上述大量占用資源的模塊的代碼,以提高效率。上述優(yōu)化方法遵守了一句格言:“先使它能工作,然后再使它快起來(lái)?!钡?4頁(yè),共69頁(yè),2023年,2月20日,星期三結(jié)構(gòu)圖的改進(jìn)
一.模塊大小1.當(dāng)模塊長(zhǎng)度超過(guò)30條語(yǔ)句時(shí),其可理解性迅速降低。模塊長(zhǎng)度可選在50句左右,一種為多數(shù)所接受的意見(jiàn)是,模塊的適當(dāng)長(zhǎng)度宜選在10到100條語(yǔ)句之間。堅(jiān)持模塊的獨(dú)立性,是劃分模塊的最高準(zhǔn)則。對(duì)于一個(gè)設(shè)計(jì)合理的功能模塊,即使長(zhǎng)達(dá)千句以上,或者小到僅有幾條語(yǔ)句,也允許保留原狀,不再分解或者合并。所以在改進(jìn)初始SC圖時(shí),對(duì)于其中甚大和甚小的模塊,都應(yīng)該找一找原因,并確定要不要重新劃分。第55頁(yè),共69頁(yè),2023年,2月20日,星期三
2.一個(gè)甚大的模塊,可能是由于包含了若干并列的功能,或者是塊內(nèi)仍會(huì)有可以分離出去的子功能。通過(guò)再分解把一些并列功能或者字功能分離出來(lái),就可以合理地降低模塊的長(zhǎng)度。3.對(duì)處在SC圖底層的甚小模塊,如果其上級(jí)模塊僅有一個(gè)。當(dāng)然可將它并入上級(jí)模塊。
第56頁(yè),共69頁(yè),2023年,2月20日,星期三
4.如果有多個(gè)模塊調(diào)用它,則合并該模塊將意味著在它的所有上級(jí)模塊中添上這個(gè)模塊的內(nèi)容,從而將明顯增加軟件的開(kāi)發(fā)成本。解決的方法之一,是把這個(gè)甚小模塊獨(dú)立編碼和調(diào)試,然后以“內(nèi)聯(lián)(IN-LINE)子程序”的形式提供給需要調(diào)用它們所有模塊使用。諸如某些高級(jí)語(yǔ)言設(shè)置的INCLUDE之類(lèi)的語(yǔ)句,就可實(shí)現(xiàn)對(duì)內(nèi)聯(lián)子程序的調(diào)用。第57頁(yè),共69頁(yè),2023年,2月20日,星期三
5.假如甚小模塊不是處在SC圖的底層,則是否合并,如果合并該并入它的上級(jí)模塊還是下級(jí)模塊,需要作具體分析。顯然,在完成編碼以前,對(duì)模塊長(zhǎng)度僅能估計(jì)。當(dāng)然這種估計(jì)是粗略的,但用來(lái)指示對(duì)初始SC圖的改進(jìn),是完全足夠了。第58頁(yè),共69頁(yè),2023年,2月20日,星期三二.扇入和扇出
在模塊調(diào)用中,扇入(fan-in)是指模塊的上級(jí)模塊數(shù),即共有多少模塊需要調(diào)用這個(gè)模塊。扇出(fan-out)是指模塊調(diào)用下屬模塊的數(shù)目,或者說(shuō)這個(gè)模塊具有多少個(gè)下屬模塊。第59頁(yè),共69頁(yè),2023年,2月20日,星期三
1.當(dāng)兩個(gè)模塊具有一部分相同的功能時(shí),把這部分相同功能分離為一個(gè)單獨(dú)的模塊,可以免除對(duì)這一部分內(nèi)容的重復(fù)編碼和測(cè)試,節(jié)約開(kāi)發(fā)費(fèi)用。2.值得注意的是,一個(gè)模塊的扇入數(shù)愈高,則共享這一模塊的上級(jí)模塊愈多,消除重復(fù)的效果也更明顯。如果說(shuō)高扇入是爭(zhēng)取的目標(biāo),則高扇出卻恰好相反,常常暴露出初始SC圖中存在得分解太快的缺點(diǎn)。常用的改進(jìn)方法,是在圖中兩層模塊間增加一個(gè)中間層。一般地說(shuō),對(duì)于扇出數(shù)超過(guò)7~10的模塊,都需要查一查原因,找出改進(jìn)的途徑。還要提一下高扇入模塊的一種畫(huà)法。最好把下屬模塊就近畫(huà)在它的上級(jí)模塊下面,以便縮短調(diào)用線(xiàn)的長(zhǎng)度,為了避免同一模塊在圖上多次出現(xiàn)時(shí)被誤認(rèn)為不同的模塊。第60頁(yè),共69頁(yè),2023年,2月20日,星期三三.作用范圍和控制范圍
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新材料研發(fā)財(cái)產(chǎn)抵押合同3篇
- 2025年度碧桂園綠色建筑設(shè)計(jì)咨詢(xún)與施工總承包服務(wù)協(xié)議3篇
- 2025年度智能交通信號(hào)系統(tǒng)安裝合同示范文本3篇
- 2025年通脈顆粒項(xiàng)目可行性研究報(bào)告
- 2025年私立學(xué)校學(xué)生宿舍床上用品清洗與更換服務(wù)合同3篇
- 2025年度個(gè)人買(mǎi)賣(mài)房屋質(zhì)量保證合同4篇
- 2025年浙江物芯數(shù)科技術(shù)有限公司招聘筆試參考題庫(kù)含答案解析
- 二零二五版進(jìn)出口貿(mào)易物流倉(cāng)儲(chǔ)合同2篇
- 2025年江蘇南通天生置業(yè)有限公司招聘筆試參考題庫(kù)含答案解析
- 2025年河南衛(wèi)輝投資集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- GB/T 12723-2024單位產(chǎn)品能源消耗限額編制通則
- 2024年廣東省深圳市中考英語(yǔ)試題含解析
- GB/T 16288-2024塑料制品的標(biāo)志
- 麻風(fēng)病防治知識(shí)課件
- 建筑工程施工圖設(shè)計(jì)文件審查辦法
- 干部職級(jí)晉升積分制管理辦法
- 培訓(xùn)機(jī)構(gòu)應(yīng)急預(yù)案6篇
- 北師大版數(shù)學(xué)五年級(jí)上冊(cè)口算專(zhuān)項(xiàng)練習(xí)
- 應(yīng)急物資智能調(diào)配系統(tǒng)解決方案
- 2025年公務(wù)員考試時(shí)政專(zhuān)項(xiàng)測(cè)驗(yàn)100題及答案
- TSG ZF003-2011《爆破片裝置安全技術(shù)監(jiān)察規(guī)程》
評(píng)論
0/150
提交評(píng)論