資源描述:
《軟件工程導(dǎo)論(第6章).ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、1第六章詳細(xì)設(shè)計(jì)第一部分:結(jié)構(gòu)設(shè)計(jì),回答用什么方法進(jìn)行詳細(xì)設(shè)計(jì)。第二部分:人機(jī)界面設(shè)計(jì)第三部分:過程設(shè)計(jì)的工具(程序流程圖、盒圖、PAD圖、判定表、判定樹等)第四部分:面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法(Jackson方法)第五部分:程序復(fù)雜程度的定量度量23詳細(xì)設(shè)計(jì)的目標(biāo)詳細(xì)設(shè)計(jì)階段的根本目標(biāo)是確定怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng),也就是說,經(jīng)過這個(gè)階段的設(shè)計(jì)工作,應(yīng)該得出對(duì)目標(biāo)系統(tǒng)的精確描述,從而在編碼階段可以把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語言書寫的程序。詳細(xì)設(shè)計(jì)的目標(biāo):設(shè)計(jì)出的處理過程應(yīng)該盡可能簡(jiǎn)明易懂。46.1結(jié)構(gòu)程序設(shè)計(jì)結(jié)構(gòu)程序設(shè)計(jì)的概念最早由E.W
2、.Dijkstra提出。1965年,他在一次會(huì)議上指出:“可以從高級(jí)語言中取消GOTO語句”,“程序的質(zhì)量與程序中所包含的GOTO語句的數(shù)量成反比”。1966年Bohm和Jacopini證明了,只用三種基本的控制結(jié)構(gòu)就能實(shí)現(xiàn)任何單入口單出口的程序。這三種基本的控制結(jié)構(gòu)是“順序”、“選擇”和“循環(huán)”。1972年IBM公司的Mills進(jìn)一步提出,程序應(yīng)該只有一個(gè)入口和一個(gè)出口,從而補(bǔ)充了結(jié)構(gòu)程序設(shè)計(jì)的規(guī)則。5三種基本的控制結(jié)構(gòu)順序結(jié)構(gòu),先執(zhí)行A再執(zhí)行BIF_THEN_ELSE型選擇(分支)結(jié)構(gòu)DO_WHILE型循環(huán)結(jié)構(gòu):在循環(huán)控制條件成立時(shí),重復(fù)執(zhí)行
3、特定的加工。實(shí)際上用順序結(jié)構(gòu)和循環(huán)結(jié)構(gòu)(又稱DO_WHILE結(jié)構(gòu))完全可以實(shí)現(xiàn)選擇結(jié)構(gòu)(又稱IF_THEN_ELSE結(jié)構(gòu)),因此,理論上最基本的控制結(jié)構(gòu)只有兩種。6三種基本的控制結(jié)構(gòu)7結(jié)構(gòu)程序設(shè)計(jì)的定義結(jié)構(gòu)程序設(shè)計(jì)是一種設(shè)計(jì)程序的技術(shù),它采用自頂向下逐步求精的設(shè)計(jì)方法和單入口單出口的控制結(jié)構(gòu)。在總體設(shè)計(jì)階段采用自頂向下逐步求精的方法:把一個(gè)復(fù)雜問題的解法分解和細(xì)化成一個(gè)由許多模塊組成的層次結(jié)構(gòu)的軟件系統(tǒng)。詳細(xì)設(shè)計(jì)或編碼階段采用自頂向下逐步求精的方法:可以把一個(gè)模塊的功能逐步分解細(xì)化為一系列具體的處理步驟或某種高級(jí)語言的語句。8結(jié)構(gòu)程序設(shè)計(jì)的優(yōu)點(diǎn)可
4、以顯著提高軟件開發(fā)工程的成功率和生產(chǎn)率。程序有清晰的層次結(jié)構(gòu),因此容易閱讀和理解。開發(fā)時(shí)比較容易保證程序的正確性,即使出現(xiàn)錯(cuò)誤也比較容易診斷和糾正。源程序清晰流暢,易讀易懂而且容易測(cè)試。程序清晰和模塊化使得在修改和重新設(shè)計(jì)一個(gè)軟件時(shí)可以重用的代碼量最大。程序的邏輯結(jié)構(gòu)清晰,有利于程序正確性證明。9擴(kuò)充的控制結(jié)構(gòu)為了實(shí)際使用方便起見,常常還允許使用DO_CASE型多分支結(jié)構(gòu)和DO_UNTIL型循環(huán)結(jié)構(gòu)。有時(shí)需要立即從循環(huán)(甚至嵌套的循環(huán))中轉(zhuǎn)移出來,如果允許使用LEAVE(或BREAK)結(jié)構(gòu),則不僅方便而且會(huì)使效率提高很多。10擴(kuò)充的控制結(jié)構(gòu)11結(jié)
5、構(gòu)程序設(shè)計(jì)經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì):只允許使用順序、IF_THEN_ELSE型分支和DO_WHILE型循環(huán)這三種基本控制結(jié)構(gòu)。擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì):還允許使用DO_CASE型多分支結(jié)構(gòu)和DO_UNTIL型循環(huán)結(jié)構(gòu)。修正的結(jié)構(gòu)程序設(shè)計(jì):再加上允許使用LEAVE(或BREAK)結(jié)構(gòu)。126.2人機(jī)界面設(shè)計(jì)人機(jī)界面設(shè)計(jì)是接口設(shè)計(jì)的一個(gè)重要的組成部分。人機(jī)界面的設(shè)計(jì)質(zhì)量,直接影響用戶對(duì)軟件產(chǎn)品的評(píng)價(jià),從而影響軟件產(chǎn)品的競(jìng)爭(zhēng)力和壽命,因此,必須對(duì)人機(jī)界面設(shè)計(jì)給予足夠重視。136.2.1設(shè)計(jì)問題在設(shè)計(jì)人機(jī)界面的過程中,幾乎總會(huì)遇到下述4個(gè)問題:系統(tǒng)響應(yīng)時(shí)間、用戶幫助
6、設(shè)施、出錯(cuò)信息處理和命令交互。許多設(shè)計(jì)者直到設(shè)計(jì)過程后期才開始考慮這些問題,這樣做往往導(dǎo)致出現(xiàn)不必要的設(shè)計(jì)反復(fù)、項(xiàng)目延期和用戶產(chǎn)生挫折感。最好在設(shè)計(jì)初期就把這些問題作為重要的設(shè)計(jì)問題來考慮,這時(shí)修改比較容易,代價(jià)也低。141.系統(tǒng)響應(yīng)時(shí)間定義:系統(tǒng)響應(yīng)時(shí)間指從用戶完成某個(gè)控制動(dòng)作(例如,按回車鍵或點(diǎn)擊鼠標(biāo)),到軟件給出預(yù)期的響應(yīng)(輸出信息或做動(dòng)作)之間的這段時(shí)間。系統(tǒng)響應(yīng)時(shí)間有兩個(gè)重要屬性,分別是長(zhǎng)度和易變性:1、長(zhǎng)度:如果系統(tǒng)響應(yīng)時(shí)間過長(zhǎng),用戶就會(huì)感到緊張和沮喪。系統(tǒng)響應(yīng)時(shí)間過短也不好,這會(huì)迫使用戶加快操作節(jié)奏,從而可能會(huì)犯錯(cuò)誤。15易變性指系
7、統(tǒng)響應(yīng)時(shí)間相對(duì)于平均響應(yīng)時(shí)間的偏差。即使系統(tǒng)響應(yīng)時(shí)間較長(zhǎng),響應(yīng)時(shí)間易變性低也有助于用戶建立起穩(wěn)定的工作節(jié)奏。162.用戶幫助設(shè)施常見的幫助設(shè)施可分為集成的和附加的兩類。1、集成的幫助設(shè)施從一開始就設(shè)計(jì)在軟件里面,通常,它對(duì)用戶工作內(nèi)容是敏感的,因此用戶可以從與剛剛完成的操作有關(guān)的主題中選擇一個(gè)請(qǐng)求幫助。顯然,這可以縮短用戶獲得幫助的時(shí)間,增加界面的友好性。2、附加的幫助設(shè)施是在系統(tǒng)建成后再添加到軟件中的,在多數(shù)情況下它實(shí)際上是一種查詢能力有限的聯(lián)機(jī)用戶手冊(cè)。17具體設(shè)計(jì)幫助設(shè)施時(shí),必須解決下述的一系列問題(1)在用戶與系統(tǒng)交互期間,是否在任何時(shí)候
8、都能獲得關(guān)于系統(tǒng)任何功能的幫助信息?有兩種選擇;提供部分功能的幫助信息和提供全部功能的幫助信息。(2)用戶怎樣請(qǐng)求幫助?有3種選擇:幫助