資源描述:
《概要設(shè)計(jì)課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、軟件工程SoftwareEngineering第4章概要設(shè)計(jì)主要內(nèi)容:1.概要設(shè)計(jì)步驟2.軟件結(jié)構(gòu)設(shè)計(jì)的基本原理3.軟件結(jié)構(gòu)設(shè)計(jì)的圖形工具4.概要設(shè)計(jì)方法5.代碼設(shè)計(jì)6.數(shù)據(jù)輸入/輸出設(shè)計(jì)7.數(shù)據(jù)的安全設(shè)計(jì)如果沒(méi)有設(shè)計(jì),只能建立一個(gè)不穩(wěn)定的系統(tǒng)結(jié)構(gòu)圖4.1把分析模型轉(zhuǎn)變成軟件設(shè)計(jì)模型E-R圖處理規(guī)格說(shuō)明數(shù)據(jù)流圖數(shù)據(jù)對(duì)象描述控制規(guī)格說(shuō)明狀態(tài)轉(zhuǎn)換圖數(shù)據(jù)字典數(shù)據(jù)設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)接口設(shè)計(jì)過(guò)程設(shè)計(jì)4.1概要設(shè)計(jì)步驟概要設(shè)計(jì)階段基本任務(wù):系統(tǒng)分析員審查可行性研究報(bào)告和需求分析規(guī)格說(shuō)明書(shū),作為設(shè)計(jì)的基礎(chǔ)。確定模塊結(jié)構(gòu)、數(shù)據(jù)文件結(jié)構(gòu)、系統(tǒng)接口設(shè)計(jì)
2、和測(cè)試策略。編寫(xiě)概要設(shè)計(jì)說(shuō)明書(shū)、用戶手冊(cè)和測(cè)試計(jì)劃。復(fù)審概要設(shè)計(jì)的基本步驟:軟件結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)文件設(shè)計(jì)系統(tǒng)接口設(shè)計(jì)測(cè)試方案設(shè)計(jì)復(fù)審4.1.1軟件結(jié)構(gòu)設(shè)計(jì)設(shè)計(jì)供選擇的方案把數(shù)據(jù)流圖中的某些處理進(jìn)行邏輯組合,不同的組合可能就是不同的實(shí)現(xiàn)方案。拋棄不可行的,提供合理方案的資料。2.推薦最佳實(shí)現(xiàn)方案系統(tǒng)分析員選擇一個(gè)最佳方案向用戶推薦并制定詳細(xì)的實(shí)現(xiàn)計(jì)劃。3.設(shè)計(jì)軟件結(jié)構(gòu)確定模塊及其之間的關(guān)系程序結(jié)構(gòu)程序的系統(tǒng)結(jié)構(gòu)圖4.1.2數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)常采用逐步細(xì)化的方法,在需求分析的基礎(chǔ)上進(jìn)一步細(xì)化,可使用抽象的數(shù)據(jù)類型描述。數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)
3、計(jì)主要是數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)。其依據(jù)為需求分析階段用的E-R圖表示的數(shù)據(jù)模型。數(shù)據(jù)庫(kù)的概念設(shè)計(jì)對(duì)應(yīng)于需求分析階段,數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)對(duì)應(yīng)于概要設(shè)計(jì)階段,數(shù)據(jù)庫(kù)的物理設(shè)計(jì)對(duì)應(yīng)于詳細(xì)設(shè)計(jì)階段。4.1.3系統(tǒng)接口設(shè)計(jì)系統(tǒng)接口包括內(nèi)部接口、外部接口和用戶接口。接口設(shè)計(jì)的任務(wù)是描述系統(tǒng)內(nèi)部各模塊之間如何通信、系統(tǒng)與其他系統(tǒng)之間如何通信,以及系統(tǒng)與用戶之間如何通信。接口包括了數(shù)據(jù)流和控制等信息。概要設(shè)計(jì)階段的接口設(shè)計(jì),是在需求分析的基礎(chǔ)上進(jìn)一步明確系統(tǒng)的內(nèi)部接口、外部接口和用戶接口。4.2軟件結(jié)構(gòu)設(shè)計(jì)的基本原理4.2.1模塊與信息隱蔽模塊(Module)是能夠
4、單獨(dú)命名,能獨(dú)立地完成一定功能,由邊界元素限定的相鄰的程序元素的序列,模塊是可以組合、分解和更換的單元。像Pascal或Ada這樣的塊結(jié)構(gòu)語(yǔ)言中的Begin…end對(duì),或者C,C++和Java語(yǔ)言中的{…}對(duì),都是邊界元素的例子。因此,過(guò)程、函數(shù)、子程序和宏等,都可作為模塊。面向?qū)ο蠓椒ㄕ撝械膶?duì)象是模塊,對(duì)象內(nèi)的方法也是模塊。模塊是構(gòu)成程序的基本構(gòu)件。圖4.2模塊化和軟件成本模塊劃分模塊有以下基本屬性:名稱:模塊的名稱必須表達(dá)該模塊的功能,指明每次調(diào)用它時(shí)應(yīng)完成的功能。模塊的名稱由一個(gè)動(dòng)詞和一個(gè)名詞組成。接口:模塊的輸入和輸出功能:模塊實(shí)現(xiàn)
5、的功能邏輯:模塊內(nèi)部如何實(shí)現(xiàn)功能及所需要的數(shù)據(jù)狀態(tài):模塊的調(diào)用與被調(diào)用關(guān)系信息隱藏應(yīng)用模塊化原理時(shí),自然會(huì)產(chǎn)生的一個(gè)問(wèn)題是:“為了得到最好的一組模塊,應(yīng)該怎樣分解軟件”。信息隱藏原理指出:應(yīng)該這樣設(shè)計(jì)和確定模塊,使得一個(gè)模塊內(nèi)包含的信息(過(guò)程和數(shù)據(jù))對(duì)于不需要這些信息的模塊來(lái)說(shuō),是不能訪問(wèn)的。模塊化就是把系統(tǒng)劃分成獨(dú)立命名且可獨(dú)立訪問(wèn)的模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集成起來(lái)構(gòu)成一個(gè)整體,可以完成指定的功能,滿足用戶的需求。其目的是降低復(fù)雜性。4.2.2模塊化采用模塊化策略的優(yōu)點(diǎn):(1)減少?gòu)?fù)雜性(2)提高軟件的可靠性(3)提高可
6、維護(hù)性(4)有助于軟件開(kāi)發(fā)工程的組織管理模塊分割的方法:(1)抽象與詳細(xì)化抽象就是抽出事物的本質(zhì)特性而暫時(shí)不考慮它們的細(xì)節(jié)。抽象(abstract)的結(jié)果是抽象(abstraction)。求精實(shí)際上是細(xì)化過(guò)程。求精要求設(shè)計(jì)者細(xì)化原始陳述,隨著每個(gè)后續(xù)求精(細(xì)化)步驟的完成而提供越來(lái)越多的細(xì)節(jié)。(2)根據(jù)功能來(lái)劃分模塊橫向分割:根據(jù)系統(tǒng)所包含的功能來(lái)分割縱向分割:根據(jù)系統(tǒng)對(duì)信息進(jìn)行處理的過(guò)程中不同的變換功能來(lái)分割Meyer標(biāo)準(zhǔn)1模塊可分解性2模塊可組裝性3模塊可理解性4模塊連續(xù)性5模塊保護(hù)性我們可以用這五條標(biāo)準(zhǔn)來(lái)評(píng)價(jià)一種設(shè)計(jì)方法定義有效的模塊系
7、統(tǒng)的能力。Meyer提出了五條標(biāo)準(zhǔn),我們可以用這五條標(biāo)準(zhǔn)來(lái)評(píng)價(jià)一種設(shè)計(jì)方法定義有效的模塊系統(tǒng)的能力。下面列出這五條標(biāo)準(zhǔn)。1模塊可分解性2模塊可組裝性3模塊可理解性4模塊連續(xù)性5模塊保護(hù)性1模塊可分解性如果一種設(shè)計(jì)方法提供了把問(wèn)題分解為子問(wèn)題的系統(tǒng)化機(jī)制,它就能降低整個(gè)問(wèn)題的復(fù)雜性,從而可以實(shí)現(xiàn)一種有效的模塊化解決方案。1模塊可分解性2模塊可組裝性3模塊可理解性4模塊連續(xù)性5模塊保護(hù)性2模塊可組裝性如果一種設(shè)計(jì)方法能把現(xiàn)有的(可重用的)設(shè)計(jì)構(gòu)件組裝成新系統(tǒng),它就能提供一種并非一切都從頭開(kāi)始做的模塊化解決方案。1模塊可分解性2模塊可組裝性3
8、模塊可理解性4模塊連續(xù)性5模塊保護(hù)性3模塊可理解性如果可以把一個(gè)模塊作為一種獨(dú)立單元(無(wú)需參考其他模塊)來(lái)理解,那么,這樣的模塊是易于構(gòu)造和易于修改的。1模塊可