資源描述:
《概要設(shè)計(jì)課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第3章概要設(shè)計(jì)目錄3.1概要設(shè)計(jì)的任務(wù)3.2設(shè)計(jì)過(guò)程3.3設(shè)計(jì)原理3.4描繪軟件結(jié)構(gòu)圖的圖形工具3.5啟發(fā)規(guī)則3.6面向數(shù)據(jù)流的設(shè)計(jì)方法3.1概要設(shè)計(jì)的任務(wù)(一)概要設(shè)計(jì)的任務(wù)(二)概要設(shè)計(jì)說(shuō)明書(shū)的主要內(nèi)容3.1概要設(shè)計(jì)基本任務(wù)1.設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu):采用某種設(shè)計(jì)方法,將一個(gè)復(fù)雜的系統(tǒng)按功能劃分成模塊。確定每個(gè)模塊的功能。確定模塊之間的調(diào)用關(guān)系。確定模塊之間的接口,即模塊之間傳遞的信息。評(píng)價(jià)模塊結(jié)構(gòu)的質(zhì)量.2.數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì):采用“逐步細(xì)化”的方法,如采用數(shù)據(jù)字典描述逐步細(xì)化。設(shè)計(jì)有效的數(shù)據(jù)結(jié)構(gòu)(如隊(duì)列,線性表,鏈
2、表等),大大簡(jiǎn)化軟件模塊處理過(guò)程的設(shè)計(jì)。3.數(shù)據(jù)庫(kù)的設(shè)計(jì):概念設(shè)計(jì);邏輯設(shè)計(jì);物理設(shè)計(jì)3.編寫(xiě)概要設(shè)計(jì)文檔:①概要設(shè)計(jì)說(shuō)明書(shū)。②數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書(shū):主要給出所使用的DBMS簡(jiǎn)介、數(shù)據(jù)庫(kù)的概念模型、邏輯設(shè)計(jì)、結(jié)果。③用戶手冊(cè):對(duì)需求分析階段編寫(xiě)的用戶手冊(cè)進(jìn)行補(bǔ)充。④修訂測(cè)試計(jì)劃,對(duì)測(cè)試策略、方法、步驟提出明確要求。4.評(píng)審。目錄3.1概要設(shè)計(jì)的任務(wù)3.2設(shè)計(jì)過(guò)程3.3設(shè)計(jì)原理3.4描繪軟件結(jié)構(gòu)圖的圖形工具3.5啟發(fā)規(guī)則3.6面向數(shù)據(jù)流的設(shè)計(jì)方法3.2概要設(shè)計(jì)的過(guò)程圖a將分析模型轉(zhuǎn)換為軟件設(shè)計(jì)狀態(tài)轉(zhuǎn)換圖數(shù)據(jù)流圖實(shí)體關(guān)
3、系圖數(shù)據(jù)詞典過(guò)程設(shè)計(jì)接口設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)數(shù)據(jù)對(duì)象描述加工規(guī)格說(shuō)明控制規(guī)格說(shuō)明目錄3.1概要設(shè)計(jì)的任務(wù)3.2設(shè)計(jì)過(guò)程3.3設(shè)計(jì)原理3.4描繪軟件結(jié)構(gòu)圖的圖形工具3.5啟發(fā)規(guī)則3.6面向數(shù)據(jù)流的設(shè)計(jì)方法3.3設(shè)計(jì)原理(一)模塊化(二)抽象與逐步求精(三)信息隱蔽(四)模塊獨(dú)立性(一)模塊化1.軟件結(jié)構(gòu)的定義是軟件模塊之間關(guān)系的表示,它決定了整個(gè)系統(tǒng)的結(jié)構(gòu),也確定了系統(tǒng)的質(zhì)量。2.軟件結(jié)構(gòu)的單元模塊(Module)——程序?qū)ο笥忻值募?.模塊定義是指具有相對(duì)獨(dú)立性的,由數(shù)據(jù)說(shuō)明、執(zhí)行語(yǔ)句等程序?qū)ο髽?gòu)成的集
4、合。程序中的每個(gè)模塊都需要單獨(dú)命名,通過(guò)名字可實(shí)現(xiàn)對(duì)指定模塊的訪問(wèn)。在高級(jí)語(yǔ)言中,模塊具體表現(xiàn)為函數(shù)、子程序、過(guò)程等。一個(gè)模塊具有輸入/輸出(接口)、功能、內(nèi)部數(shù)據(jù)和程序代碼四個(gè)特征。4.模塊化定義是指將把軟件系統(tǒng)劃分為若干個(gè)模塊的過(guò)程,每個(gè)模塊完成一個(gè)特定的功能。劃分模塊對(duì)于解決大型復(fù)雜的問(wèn)題是非常必要的,可以大大降低解決問(wèn)題的難度。降低軟件復(fù)雜性的證明令:C(X)表示問(wèn)題X的復(fù)雜度函數(shù);E(X)解決問(wèn)題X所需工作量的復(fù)雜度函數(shù);假設(shè):有問(wèn)題P1,P2;其中:C(P1)>C(P2);顯然:E(P1)>E(P2
5、)由經(jīng)驗(yàn)可知:C(P1+P2)>C(P1)+C(P2)于是:E(P1+P2)>E(P1)+E(P2)模塊數(shù)量的確定軟件總成本模塊化與軟件成本的關(guān)系成本模塊數(shù)目模塊成本接口成本}最小成本區(qū)M適當(dāng)增加模塊數(shù)目,減小設(shè)計(jì)復(fù)雜度返回(二)抽象抽象是人類在解決復(fù)雜問(wèn)題過(guò)程中使用的思維工具,即抽出事物本質(zhì)的共同的特性而暫不考慮它的細(xì)節(jié).軟件系統(tǒng)進(jìn)行模塊設(shè)計(jì)時(shí),可有不同的抽象層次。在最高的抽象層次上,可以使用問(wèn)題所處環(huán)境的語(yǔ)言概括地描述問(wèn)題的解法。在較低的抽象層次上,則采用過(guò)程化的方法。結(jié)構(gòu)化程序中自頂向下、逐步求精的模塊劃
6、分思想正是人類思維中運(yùn)用抽象方法解決復(fù)雜問(wèn)題的體現(xiàn)。此外,在程序設(shè)計(jì)中運(yùn)用抽象的方法還能夠提高代碼的可重用性。(三)、信息隱蔽信息隱蔽:在設(shè)計(jì)和確定模塊時(shí),使得一個(gè)模塊包含的信息對(duì)于不需要這些信息的其它模塊來(lái)說(shuō)是不能訪問(wèn)的.也就是說(shuō),模塊中所包含的信息(包括數(shù)據(jù)和過(guò)程)不允許其它不需要這些信息的模塊使用。信息隱蔽的目的主要是為了提高模塊的獨(dú)立性,減少將一個(gè)模塊中的錯(cuò)誤擴(kuò)散到其他模塊的機(jī)會(huì)。(四)模塊獨(dú)立性定義開(kāi)發(fā)具有獨(dú)立功能而且和其他模塊之間沒(méi)有過(guò)多的相互作用的模塊。產(chǎn)生原因模塊化、抽象、信息隱藏和局部化概念的
7、直接結(jié)果。模塊獨(dú)立性的重要性—有效的模塊化(即具有獨(dú)立的模塊)的軟件比較容易開(kāi)發(fā).—獨(dú)立的模塊比較容易測(cè)試和維護(hù)。衡量標(biāo)準(zhǔn)—高內(nèi)聚、低耦合1.耦合性是對(duì)軟件系統(tǒng)結(jié)構(gòu)中,各模塊間相互聯(lián)系緊密程度的一種度量。設(shè)計(jì)目標(biāo):低耦合分類非直接耦合、數(shù)據(jù)耦合、控制耦合特征耦合、公共環(huán)境耦合、內(nèi)容耦合無(wú)直接耦合兩個(gè)模塊沒(méi)有直接關(guān)系,模塊獨(dú)立性最強(qiáng)。如下圖;模塊1和模塊2、模塊3和模塊4直接屬于無(wú)直接耦合數(shù)據(jù)耦合屬松散耦合。一模塊訪問(wèn)另一模塊時(shí),通過(guò)數(shù)據(jù)參數(shù)交換輸入、輸出信息。數(shù)據(jù)耦合一個(gè)模塊訪問(wèn)另一個(gè)模塊時(shí),彼此之間是通過(guò)簡(jiǎn)單
8、數(shù)據(jù)參數(shù)(不是控制參數(shù)、公共數(shù)據(jù)結(jié)構(gòu)或外部變量)來(lái)傳遞交換輸入、輸出信息的(“傳值”)。main(){intx,y;printf("x+y=%d",sum(x,y));}/*主函數(shù)與sum函數(shù)之間即為數(shù)據(jù)耦合關(guān)系*/Sum(inta,intb){intc;c=a+b;return(c);}…特征耦合兩個(gè)模塊通過(guò)傳遞數(shù)據(jù)結(jié)構(gòu)加以聯(lián)系,或都與一個(gè)數(shù)據(jù)結(jié)構(gòu)有關(guān)系,則稱這兩個(gè)模塊間存在特征耦合