




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1第六章第六章 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)o 第一部分:結(jié)構(gòu)設(shè)計(jì),回答用什么方法進(jìn)行第一部分:結(jié)構(gòu)設(shè)計(jì),回答用什么方法進(jìn)行詳細(xì)設(shè)計(jì)。詳細(xì)設(shè)計(jì)。o 第二部分:人機(jī)界面設(shè)計(jì)第二部分:人機(jī)界面設(shè)計(jì)o 第三部分:過程設(shè)計(jì)的工具(程序流程圖、第三部分:過程設(shè)計(jì)的工具(程序流程圖、盒圖、盒圖、pad圖、判定表、判定樹等)圖、判定表、判定樹等)o 第四部分:面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法(第四部分:面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法(jackson方法)方法)o 第五部分:程序復(fù)雜程度的定量度量第五部分:程序復(fù)雜程度的定量度量23詳細(xì)設(shè)計(jì)的目標(biāo)詳細(xì)設(shè)計(jì)的目標(biāo)o 詳細(xì)設(shè)計(jì)階段的根本目標(biāo)是確定怎樣具體地詳細(xì)設(shè)計(jì)階段的根本目標(biāo)是確定怎樣具體地
2、實(shí)現(xiàn)所要求的系統(tǒng),也就是說,經(jīng)過這個(gè)階實(shí)現(xiàn)所要求的系統(tǒng),也就是說,經(jīng)過這個(gè)階段的設(shè)計(jì)工作,應(yīng)該得出對(duì)目標(biāo)系統(tǒng)的精確段的設(shè)計(jì)工作,應(yīng)該得出對(duì)目標(biāo)系統(tǒng)的精確描述,從而在編碼階段可以把這個(gè)描述直接描述,從而在編碼階段可以把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語言書寫的程序。翻譯成用某種程序設(shè)計(jì)語言書寫的程序。o 詳細(xì)設(shè)計(jì)的目標(biāo)詳細(xì)設(shè)計(jì)的目標(biāo): 設(shè)計(jì)出的處理過程應(yīng)該盡設(shè)計(jì)出的處理過程應(yīng)該盡可能簡明易懂??赡芎喢饕锥?。 46.1 結(jié)構(gòu)程序設(shè)計(jì)結(jié)構(gòu)程序設(shè)計(jì)o 結(jié)構(gòu)程序設(shè)計(jì)的概念最早由結(jié)構(gòu)程序設(shè)計(jì)的概念最早由e.w.dijkstra提出。提出。o 1965年,他在一次會(huì)議上指出:年,他在一次會(huì)議上指出:“可以從
3、高級(jí)語可以從高級(jí)語言中取消言中取消goto語句語句”,“程序的質(zhì)量與程序中所程序的質(zhì)量與程序中所包含的包含的goto語句的數(shù)量成反比語句的數(shù)量成反比”。o 1966年年bohm和和jacopini證明了,只用三種基證明了,只用三種基本的控制結(jié)構(gòu)就能實(shí)現(xiàn)任何單入口單出口的程序。本的控制結(jié)構(gòu)就能實(shí)現(xiàn)任何單入口單出口的程序。這三種基本的控制結(jié)構(gòu)是這三種基本的控制結(jié)構(gòu)是“順序順序”、“選擇選擇”和和“循環(huán)循環(huán)”。o 1972年年ibm公司的公司的mills進(jìn)一步提出,程序應(yīng)該進(jìn)一步提出,程序應(yīng)該只有一個(gè)入口和一個(gè)出口,從而補(bǔ)充了結(jié)構(gòu)程序設(shè)只有一個(gè)入口和一個(gè)出口,從而補(bǔ)充了結(jié)構(gòu)程序設(shè)計(jì)的規(guī)則。計(jì)的規(guī)則。
4、 5三種基本的控制結(jié)構(gòu)三種基本的控制結(jié)構(gòu) o順序結(jié)構(gòu)順序結(jié)構(gòu),先執(zhí)行,先執(zhí)行a再執(zhí)行再執(zhí)行boif_then_else型型選擇(分支)結(jié)構(gòu)選擇(分支)結(jié)構(gòu)odo_while型型循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu):n在循環(huán)控制條件成立時(shí),重復(fù)執(zhí)行特定的加工。在循環(huán)控制條件成立時(shí),重復(fù)執(zhí)行特定的加工。o實(shí)際上用順序結(jié)構(gòu)和循環(huán)結(jié)構(gòu)(又稱實(shí)際上用順序結(jié)構(gòu)和循環(huán)結(jié)構(gòu)(又稱do_while結(jié)構(gòu))完全可以實(shí)現(xiàn)選擇結(jié)構(gòu)(又結(jié)構(gòu))完全可以實(shí)現(xiàn)選擇結(jié)構(gòu)(又稱稱if_then_else結(jié)構(gòu)),因此,理論上最基結(jié)構(gòu)),因此,理論上最基本的控制結(jié)構(gòu)只有兩種。本的控制結(jié)構(gòu)只有兩種。 6三種基本的控制結(jié)構(gòu)三種基本的控制結(jié)構(gòu)7結(jié)構(gòu)程序設(shè)計(jì)的定
5、義結(jié)構(gòu)程序設(shè)計(jì)的定義 o結(jié)構(gòu)程序設(shè)計(jì)是一種設(shè)計(jì)程序的技術(shù),它采用自結(jié)構(gòu)程序設(shè)計(jì)是一種設(shè)計(jì)程序的技術(shù),它采用自頂向下逐步求精的設(shè)計(jì)方法和單入口單出口的控頂向下逐步求精的設(shè)計(jì)方法和單入口單出口的控制結(jié)構(gòu)。制結(jié)構(gòu)。n在總體設(shè)計(jì)階段采用自頂向下逐步求精的方法:把一個(gè)在總體設(shè)計(jì)階段采用自頂向下逐步求精的方法:把一個(gè)復(fù)雜問題的解法分解和細(xì)化成一個(gè)由許多模塊組成的層復(fù)雜問題的解法分解和細(xì)化成一個(gè)由許多模塊組成的層次結(jié)構(gòu)的軟件系統(tǒng)。次結(jié)構(gòu)的軟件系統(tǒng)。n詳細(xì)設(shè)計(jì)或編碼階段采用自頂向下逐步求精的方法:可詳細(xì)設(shè)計(jì)或編碼階段采用自頂向下逐步求精的方法:可以把一個(gè)模塊的功能逐步分解細(xì)化為一系列具體的處理以把一個(gè)模塊的功
6、能逐步分解細(xì)化為一系列具體的處理步驟或某種高級(jí)語言的語句。步驟或某種高級(jí)語言的語句。 8結(jié)構(gòu)程序設(shè)計(jì)的優(yōu)點(diǎn)結(jié)構(gòu)程序設(shè)計(jì)的優(yōu)點(diǎn) 1. 可以顯著提高軟件開發(fā)工程的成功率和生產(chǎn)率可以顯著提高軟件開發(fā)工程的成功率和生產(chǎn)率 。2. 程序有清晰的層次結(jié)構(gòu),因此容易閱讀和理解。程序有清晰的層次結(jié)構(gòu),因此容易閱讀和理解。 3. 開發(fā)時(shí)比較容易保證程序的正確性,即使出現(xiàn)錯(cuò)開發(fā)時(shí)比較容易保證程序的正確性,即使出現(xiàn)錯(cuò)誤也比較容易診斷和糾正。誤也比較容易診斷和糾正。4. 源程序清晰流暢,易讀易懂而且容易測(cè)試。源程序清晰流暢,易讀易懂而且容易測(cè)試。 5. 程序清晰和模塊化使得在修改和重新設(shè)計(jì)一個(gè)軟程序清晰和模塊化使得在
7、修改和重新設(shè)計(jì)一個(gè)軟件時(shí)可以重用的代碼量最大。件時(shí)可以重用的代碼量最大。6. 程序的邏輯結(jié)構(gòu)清晰,有利于程序正確性證明。程序的邏輯結(jié)構(gòu)清晰,有利于程序正確性證明。 9擴(kuò)充的控制結(jié)構(gòu)擴(kuò)充的控制結(jié)構(gòu)o 為了實(shí)際使用方便起見,常常還允許使用為了實(shí)際使用方便起見,常常還允許使用do_case型型多分支結(jié)構(gòu)多分支結(jié)構(gòu)和和do_until型型循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)。o 有時(shí)需要立即從循環(huán)(甚至嵌套的循環(huán))中有時(shí)需要立即從循環(huán)(甚至嵌套的循環(huán))中轉(zhuǎn)移出來,如果允許使用轉(zhuǎn)移出來,如果允許使用leave(或(或break)結(jié)構(gòu),則不僅方便而且會(huì)使效率)結(jié)構(gòu),則不僅方便而且會(huì)使效率提高很多。提高很多。10擴(kuò)充的控制結(jié)構(gòu)
8、擴(kuò)充的控制結(jié)構(gòu)11結(jié)構(gòu)程序設(shè)計(jì)結(jié)構(gòu)程序設(shè)計(jì)o 經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì):經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì):n 只允許使用順序、只允許使用順序、if_then_else型分支和型分支和do_while型循環(huán)這三種基本控制結(jié)構(gòu)。型循環(huán)這三種基本控制結(jié)構(gòu)。o 擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì):擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì):n 還允許使用還允許使用do_case型多分支結(jié)構(gòu)和型多分支結(jié)構(gòu)和do_until型循環(huán)結(jié)構(gòu)。型循環(huán)結(jié)構(gòu)。o 修正的結(jié)構(gòu)程序設(shè)計(jì):修正的結(jié)構(gòu)程序設(shè)計(jì):n 再加上允許使用再加上允許使用leave(或(或break)結(jié)構(gòu)。)結(jié)構(gòu)。126.2 人機(jī)界面設(shè)計(jì)人機(jī)界面設(shè)計(jì)o 人機(jī)界面設(shè)計(jì)是接口設(shè)計(jì)的一個(gè)重要的組成人機(jī)界面設(shè)計(jì)是接口設(shè)計(jì)
9、的一個(gè)重要的組成部分部分 。o 人機(jī)界面的設(shè)計(jì)質(zhì)量,直接影響用戶對(duì)軟件人機(jī)界面的設(shè)計(jì)質(zhì)量,直接影響用戶對(duì)軟件產(chǎn)品的評(píng)價(jià),從而影響軟件產(chǎn)品的競爭力和產(chǎn)品的評(píng)價(jià),從而影響軟件產(chǎn)品的競爭力和壽命,因此,必須對(duì)人機(jī)界面設(shè)計(jì)給予足夠壽命,因此,必須對(duì)人機(jī)界面設(shè)計(jì)給予足夠重視。重視。13621 設(shè)計(jì)問題設(shè)計(jì)問題o 在設(shè)計(jì)人機(jī)界面的過程中,幾乎總會(huì)遇到下在設(shè)計(jì)人機(jī)界面的過程中,幾乎總會(huì)遇到下述述4個(gè)問題:個(gè)問題:系統(tǒng)響應(yīng)時(shí)間、用戶幫助設(shè)施、系統(tǒng)響應(yīng)時(shí)間、用戶幫助設(shè)施、出錯(cuò)信息處理和命令交互出錯(cuò)信息處理和命令交互。o 許多設(shè)計(jì)者直到設(shè)計(jì)過程后期才開始考慮這許多設(shè)計(jì)者直到設(shè)計(jì)過程后期才開始考慮這些問題,這樣做往
10、往導(dǎo)致出現(xiàn)不必要的設(shè)計(jì)些問題,這樣做往往導(dǎo)致出現(xiàn)不必要的設(shè)計(jì)反復(fù)、項(xiàng)目延期和用戶產(chǎn)生挫折感。最好在反復(fù)、項(xiàng)目延期和用戶產(chǎn)生挫折感。最好在設(shè)計(jì)初期就把這些問題作為重要的設(shè)計(jì)問題設(shè)計(jì)初期就把這些問題作為重要的設(shè)計(jì)問題來考慮,這時(shí)修改比較容易,代價(jià)也低。來考慮,這時(shí)修改比較容易,代價(jià)也低。 141系統(tǒng)響應(yīng)時(shí)間系統(tǒng)響應(yīng)時(shí)間o 定義:系統(tǒng)響應(yīng)時(shí)間指從用戶完成某個(gè)控制定義:系統(tǒng)響應(yīng)時(shí)間指從用戶完成某個(gè)控制動(dòng)作動(dòng)作(例如,按回車鍵或點(diǎn)擊鼠標(biāo)例如,按回車鍵或點(diǎn)擊鼠標(biāo)),到軟件,到軟件給出預(yù)期的響應(yīng)給出預(yù)期的響應(yīng)(輸出信息或做動(dòng)作輸出信息或做動(dòng)作)之間的之間的這段時(shí)間。這段時(shí)間。 o 系統(tǒng)響應(yīng)時(shí)間有兩個(gè)重要屬性
11、,分別是長度系統(tǒng)響應(yīng)時(shí)間有兩個(gè)重要屬性,分別是長度和易變性:和易變性:1、長度:如果系統(tǒng)響應(yīng)時(shí)間過長,用戶就會(huì)、長度:如果系統(tǒng)響應(yīng)時(shí)間過長,用戶就會(huì)感到緊張和沮喪。系統(tǒng)響應(yīng)時(shí)間過短也不好,感到緊張和沮喪。系統(tǒng)響應(yīng)時(shí)間過短也不好,這會(huì)迫使用戶加快操作節(jié)奏,從而可能會(huì)犯這會(huì)迫使用戶加快操作節(jié)奏,從而可能會(huì)犯錯(cuò)誤。錯(cuò)誤。 15o 易變性指系統(tǒng)響應(yīng)時(shí)間相對(duì)于平均響應(yīng)時(shí)間易變性指系統(tǒng)響應(yīng)時(shí)間相對(duì)于平均響應(yīng)時(shí)間的偏差。即使系統(tǒng)響應(yīng)時(shí)間較長,響應(yīng)時(shí)間的偏差。即使系統(tǒng)響應(yīng)時(shí)間較長,響應(yīng)時(shí)間易變性低也有助于用戶建立起穩(wěn)定的工作節(jié)易變性低也有助于用戶建立起穩(wěn)定的工作節(jié)奏。奏。 162用戶幫助設(shè)施用戶幫助設(shè)施o 常
12、見的幫助設(shè)施可分為集成的和附加的兩常見的幫助設(shè)施可分為集成的和附加的兩類類 。1、集成的幫助設(shè)施從一開始就設(shè)計(jì)在軟件里、集成的幫助設(shè)施從一開始就設(shè)計(jì)在軟件里面,通常,它對(duì)用戶工作內(nèi)容是敏感的,因面,通常,它對(duì)用戶工作內(nèi)容是敏感的,因此用戶可以從與剛剛完成的操作有關(guān)的主題此用戶可以從與剛剛完成的操作有關(guān)的主題中選擇一個(gè)請(qǐng)求幫助。顯然,這可以縮短用中選擇一個(gè)請(qǐng)求幫助。顯然,這可以縮短用戶獲得幫助的時(shí)間,增加界面的友好性。戶獲得幫助的時(shí)間,增加界面的友好性。 2、附加的幫助設(shè)施是在系統(tǒng)建成后再添加到、附加的幫助設(shè)施是在系統(tǒng)建成后再添加到軟件中的,在多數(shù)情況下它實(shí)際上是一種查軟件中的,在多數(shù)情況下它實(shí)
13、際上是一種查詢能力有限的聯(lián)機(jī)用戶手冊(cè)。詢能力有限的聯(lián)機(jī)用戶手冊(cè)。 17o 具體設(shè)計(jì)幫助設(shè)施時(shí),必須解決下述的一系具體設(shè)計(jì)幫助設(shè)施時(shí),必須解決下述的一系列問題列問題(1)在用戶與系統(tǒng)交互期間,是否在任何時(shí)候在用戶與系統(tǒng)交互期間,是否在任何時(shí)候都能獲得關(guān)于系統(tǒng)任何功能的幫助信息都能獲得關(guān)于系統(tǒng)任何功能的幫助信息?有有兩種選擇;提供部分功能的幫助信息和提供兩種選擇;提供部分功能的幫助信息和提供全部功能的幫助信息。全部功能的幫助信息。 (2)用戶怎樣請(qǐng)求幫助用戶怎樣請(qǐng)求幫助?有有3種選擇:幫助菜單,種選擇:幫助菜單,特殊功能鍵和特殊功能鍵和help命令。命令。 18(3)怎樣顯示幫助信息怎樣顯示幫助信
14、息?有有3種選擇,在獨(dú)立的種選擇,在獨(dú)立的窗口中,指出參考某個(gè)文檔窗口中,指出參考某個(gè)文檔(不理想不理想)和在屏和在屏幕固定位置顯示簡短提示。幕固定位置顯示簡短提示。(4)用戶怎樣返回到正常的交互方式中用戶怎樣返回到正常的交互方式中?有兩種有兩種選擇:屏幕上的返回按鈕和功能鍵。選擇:屏幕上的返回按鈕和功能鍵。(5)怎樣組織幫助信息怎樣組織幫助信息?有有3種選擇:平面結(jié)構(gòu)種選擇:平面結(jié)構(gòu)(所有信息都通過關(guān)鍵字訪問所有信息都通過關(guān)鍵字訪問),信息的層次,信息的層次結(jié)構(gòu)結(jié)構(gòu)(用戶可在該結(jié)構(gòu)中查到更詳細(xì)的信息用戶可在該結(jié)構(gòu)中查到更詳細(xì)的信息)和超文本結(jié)構(gòu)。和超文本結(jié)構(gòu)。 193出錯(cuò)信息處理出錯(cuò)信息處理
15、o 出錯(cuò)信息和警告信息,是出現(xiàn)問題時(shí)交互式出錯(cuò)信息和警告信息,是出現(xiàn)問題時(shí)交互式系統(tǒng)給出的系統(tǒng)給出的“壞消息壞消息”。出錯(cuò)信息設(shè)計(jì)得不。出錯(cuò)信息設(shè)計(jì)得不好,將向用戶提供無用的甚至誤導(dǎo)的信息,好,將向用戶提供無用的甚至誤導(dǎo)的信息,反而會(huì)加重用戶的挫折感。反而會(huì)加重用戶的挫折感。 o 應(yīng)該具有下述屬性應(yīng)該具有下述屬性 (1)信息應(yīng)該用用戶可以理解的術(shù)語描述問題。信息應(yīng)該用用戶可以理解的術(shù)語描述問題。(2)信息應(yīng)該提供有助于從錯(cuò)誤中恢復(fù)的建設(shè)信息應(yīng)該提供有助于從錯(cuò)誤中恢復(fù)的建設(shè)性意見。性意見。 20(3)信息應(yīng)該指出錯(cuò)誤可能導(dǎo)致哪些負(fù)面后果信息應(yīng)該指出錯(cuò)誤可能導(dǎo)致哪些負(fù)面后果(例如,破壞數(shù)據(jù)文件例如
16、,破壞數(shù)據(jù)文件),以便用戶檢查是否,以便用戶檢查是否出現(xiàn)了這些問題,并在確實(shí)出現(xiàn)問題時(shí)及時(shí)出現(xiàn)了這些問題,并在確實(shí)出現(xiàn)問題時(shí)及時(shí)解決。解決。(4)信息應(yīng)該伴隨著聽覺上或視覺上的提示,信息應(yīng)該伴隨著聽覺上或視覺上的提示,例如,在顯示信息時(shí)同時(shí)發(fā)出警告鈴聲,或例如,在顯示信息時(shí)同時(shí)發(fā)出警告鈴聲,或者信息用閃爍方式顯示,或者信息用明顯表者信息用閃爍方式顯示,或者信息用明顯表示出錯(cuò)的顏色顯示。示出錯(cuò)的顏色顯示。(5)信息不能帶有指責(zé)色彩,也就是說,不能信息不能帶有指責(zé)色彩,也就是說,不能責(zé)怪用戶。責(zé)怪用戶。 214命令交互命令交互o 命令行曾經(jīng)是用戶和系統(tǒng)軟件交互的最常用命令行曾經(jīng)是用戶和系統(tǒng)軟件交互
17、的最常用的方式,并且也曾經(jīng)廣泛地用于各種應(yīng)用軟的方式,并且也曾經(jīng)廣泛地用于各種應(yīng)用軟件中?,F(xiàn)在,面向窗口的、點(diǎn)擊和拾取方式件中。現(xiàn)在,面向窗口的、點(diǎn)擊和拾取方式的界面已經(jīng)減少了用戶對(duì)命令行的依賴,但的界面已經(jīng)減少了用戶對(duì)命令行的依賴,但是,許多高級(jí)用戶仍然偏愛面向命令行的交是,許多高級(jí)用戶仍然偏愛面向命令行的交互方式。在多數(shù)情況下,用戶既可以從菜單互方式。在多數(shù)情況下,用戶既可以從菜單中選擇軟件功能,也可以通過鍵盤命令序列中選擇軟件功能,也可以通過鍵盤命令序列調(diào)用軟件功能。調(diào)用軟件功能。 o 必須考慮下列設(shè)計(jì)問題必須考慮下列設(shè)計(jì)問題 22(1)是否每個(gè)菜單選項(xiàng)都有對(duì)應(yīng)的命令是否每個(gè)菜單選項(xiàng)都有
18、對(duì)應(yīng)的命令?(2)采用何種命令形式采用何種命令形式?有有3種選擇:控制序列種選擇:控制序列(例如,例如,ctrl十十p),功能鍵和鍵入命令。,功能鍵和鍵入命令。(3)學(xué)習(xí)和記憶命令的難度有多大學(xué)習(xí)和記憶命令的難度有多大?忘記了命令忘記了命令怎么辦怎么辦?(4)用戶是否可以定制或縮寫命令用戶是否可以定制或縮寫命令? o 在越來越多的應(yīng)用軟件中,人機(jī)界面設(shè)計(jì)者在越來越多的應(yīng)用軟件中,人機(jī)界面設(shè)計(jì)者都提供了都提供了“命令宏機(jī)制命令宏機(jī)制” o 在理想的情況下,所有應(yīng)用軟件都有一致的在理想的情況下,所有應(yīng)用軟件都有一致的命令使用方法。命令使用方法。 p.12023622 設(shè)計(jì)過程設(shè)計(jì)過程o 用戶界面設(shè)
19、計(jì)是一個(gè)迭代的過程,也就是說,用戶界面設(shè)計(jì)是一個(gè)迭代的過程,也就是說,通常先創(chuàng)建設(shè)計(jì)模型,再用原型實(shí)現(xiàn)這個(gè)設(shè)通常先創(chuàng)建設(shè)計(jì)模型,再用原型實(shí)現(xiàn)這個(gè)設(shè)計(jì)模型,并由用戶試用和評(píng)估,然后根據(jù)用計(jì)模型,并由用戶試用和評(píng)估,然后根據(jù)用戶意見進(jìn)行修改。戶意見進(jìn)行修改。 o 運(yùn)用下述評(píng)估標(biāo)準(zhǔn)對(duì)設(shè)計(jì)進(jìn)行早期復(fù)審運(yùn)用下述評(píng)估標(biāo)準(zhǔn)對(duì)設(shè)計(jì)進(jìn)行早期復(fù)審(1)系統(tǒng)及其界面的規(guī)格說明書的長度和復(fù)雜系統(tǒng)及其界面的規(guī)格說明書的長度和復(fù)雜程度。程度。(2)命令或動(dòng)作的數(shù)量、命令的平均參數(shù)個(gè)數(shù)命令或動(dòng)作的數(shù)量、命令的平均參數(shù)個(gè)數(shù)或動(dòng)作中單個(gè)操作的個(gè)數(shù)。或動(dòng)作中單個(gè)操作的個(gè)數(shù)。24(3)設(shè)計(jì)模型中包含的動(dòng)作、命令和系統(tǒng)狀態(tài)設(shè)計(jì)模型中
20、包含的動(dòng)作、命令和系統(tǒng)狀態(tài)的數(shù)量。的數(shù)量。(4)界面風(fēng)格、幫助設(shè)施和出錯(cuò)處理協(xié)議。界面風(fēng)格、幫助設(shè)施和出錯(cuò)處理協(xié)議。 25623 人機(jī)界面設(shè)計(jì)指南人機(jī)界面設(shè)計(jì)指南o 用戶界面設(shè)計(jì)主要依靠設(shè)計(jì)者的經(jīng)驗(yàn)用戶界面設(shè)計(jì)主要依靠設(shè)計(jì)者的經(jīng)驗(yàn) o 介紹介紹3類人機(jī)界面設(shè)計(jì)指南。類人機(jī)界面設(shè)計(jì)指南。1一般交互指南一般交互指南2信息顯示指南信息顯示指南3數(shù)據(jù)輸入指南數(shù)據(jù)輸入指南261一般交互指南一般交互指南o 一般交互指南涉及信息顯示、數(shù)據(jù)輸入和系統(tǒng)整體一般交互指南涉及信息顯示、數(shù)據(jù)輸入和系統(tǒng)整體控制控制 (1)保持一致性。應(yīng)該為人機(jī)界面中的菜單選擇、命保持一致性。應(yīng)該為人機(jī)界面中的菜單選擇、命令輸入、數(shù)據(jù)顯
21、示以及眾多的其他功能,使用一致令輸入、數(shù)據(jù)顯示以及眾多的其他功能,使用一致的格式。的格式。(2)提供有意義的反饋。應(yīng)向用戶提供視覺的和聽覺提供有意義的反饋。應(yīng)向用戶提供視覺的和聽覺的反饋,以保證在用戶和系統(tǒng)之間建立雙向通信。的反饋,以保證在用戶和系統(tǒng)之間建立雙向通信。(3)在執(zhí)行有較大破壞性的動(dòng)作之前要求用戶確認(rèn)。在執(zhí)行有較大破壞性的動(dòng)作之前要求用戶確認(rèn)。如果用戶要?jiǎng)h除一個(gè)文件,或覆蓋一些重要信息,如果用戶要?jiǎng)h除一個(gè)文件,或覆蓋一些重要信息,或終止一個(gè)程序的運(yùn)行,應(yīng)該給出或終止一個(gè)程序的運(yùn)行,應(yīng)該給出“您是否確實(shí)您是否確實(shí)要要”的信息,以請(qǐng)求用戶確認(rèn)他的命令。的信息,以請(qǐng)求用戶確認(rèn)他的命令。2
22、7(4)允許取消絕大多數(shù)操作。允許取消絕大多數(shù)操作。undo或或reverse功功能曾經(jīng)使眾多終端用戶避免了大量時(shí)間浪費(fèi)。每個(gè)能曾經(jīng)使眾多終端用戶避免了大量時(shí)間浪費(fèi)。每個(gè)交互式系統(tǒng)都應(yīng)該能方便地取消已完成的操作。交互式系統(tǒng)都應(yīng)該能方便地取消已完成的操作。(5)減少在兩次操作之間必須記憶的信息量。不應(yīng)該減少在兩次操作之間必須記憶的信息量。不應(yīng)該期望用戶能記住在下一步操作中需使用的一大串?dāng)?shù)期望用戶能記住在下一步操作中需使用的一大串?dāng)?shù)字或標(biāo)識(shí)符。應(yīng)該盡量減少記憶量。字或標(biāo)識(shí)符。應(yīng)該盡量減少記憶量。(6)提高對(duì)話、移動(dòng)和思考的效率。應(yīng)該盡量減少用提高對(duì)話、移動(dòng)和思考的效率。應(yīng)該盡量減少用戶擊鍵的次數(shù),
23、設(shè)計(jì)屏幕布局時(shí)應(yīng)該考慮盡量減少戶擊鍵的次數(shù),設(shè)計(jì)屏幕布局時(shí)應(yīng)該考慮盡量減少鼠標(biāo)移動(dòng)的距離,應(yīng)該盡量避免出現(xiàn)用戶問鼠標(biāo)移動(dòng)的距離,應(yīng)該盡量避免出現(xiàn)用戶問“這是這是什么意思什么意思?”的情況。的情況。(7)允許犯錯(cuò)誤。系統(tǒng)應(yīng)該能保護(hù)自己不受嚴(yán)重錯(cuò)誤允許犯錯(cuò)誤。系統(tǒng)應(yīng)該能保護(hù)自己不受嚴(yán)重錯(cuò)誤的破壞。的破壞。 28(8)按功能對(duì)動(dòng)作分類,并據(jù)此設(shè)計(jì)屏幕布局。按功能對(duì)動(dòng)作分類,并據(jù)此設(shè)計(jì)屏幕布局。下拉菜單的一個(gè)主要優(yōu)點(diǎn)就是能按動(dòng)作類型下拉菜單的一個(gè)主要優(yōu)點(diǎn)就是能按動(dòng)作類型組織命令。實(shí)際上,設(shè)計(jì)者應(yīng)該盡力提高命組織命令。實(shí)際上,設(shè)計(jì)者應(yīng)該盡力提高命令和動(dòng)作組織的令和動(dòng)作組織的“內(nèi)聚性內(nèi)聚性”。(9)提供對(duì)
24、用戶工作內(nèi)容敏感的幫助設(shè)施提供對(duì)用戶工作內(nèi)容敏感的幫助設(shè)施(參見參見621節(jié)節(jié))。(10)用簡單動(dòng)詞或動(dòng)詞短語作為命令名。過用簡單動(dòng)詞或動(dòng)詞短語作為命令名。過長的命令名難于識(shí)別和記憶,也會(huì)占用過多長的命令名難于識(shí)別和記憶,也會(huì)占用過多的菜單空間。的菜單空間。 292信息顯示指南信息顯示指南o 如果人機(jī)界面顯示的信息是不完整的、含糊如果人機(jī)界面顯示的信息是不完整的、含糊的或難于理解的,可以用多種不同方式的或難于理解的,可以用多種不同方式“顯顯示示”信息:用文字、圖形和聲音;按位置、信息:用文字、圖形和聲音;按位置、移動(dòng)和大??;使用顏色、分辨率和省略。移動(dòng)和大??;使用顏色、分辨率和省略。 o 關(guān)于
25、信息顯示的設(shè)計(jì)指南關(guān)于信息顯示的設(shè)計(jì)指南 (1)只顯示與當(dāng)前工作內(nèi)容有關(guān)的信息。只顯示與當(dāng)前工作內(nèi)容有關(guān)的信息。(2)不要用數(shù)據(jù)淹沒用戶,應(yīng)該用便于用戶迅不要用數(shù)據(jù)淹沒用戶,應(yīng)該用便于用戶迅速吸取信息的方式來表示數(shù)據(jù)。速吸取信息的方式來表示數(shù)據(jù)。 30(3)使用一致的標(biāo)記、標(biāo)準(zhǔn)的縮寫和可預(yù)知的使用一致的標(biāo)記、標(biāo)準(zhǔn)的縮寫和可預(yù)知的顏色。顯示的含義應(yīng)該非常明確,用戶無須顏色。顯示的含義應(yīng)該非常明確,用戶無須參照其他信息源就能理解。參照其他信息源就能理解。(4)允許用戶保持可視化的語境。允許用戶保持可視化的語境。(5)產(chǎn)生有意義的出錯(cuò)信息產(chǎn)生有意義的出錯(cuò)信息(參見參見621節(jié)節(jié))。(6)使用大小寫、
26、縮進(jìn)和文本分組以幫助理解。使用大小寫、縮進(jìn)和文本分組以幫助理解。31(7)使用窗口分隔不同類型的信息。使用窗口分隔不同類型的信息。 (8)使用使用“模擬模擬”顯示方式表示信息,以使信息更容顯示方式表示信息,以使信息更容易被用戶提取。例如,顯示煉油廠儲(chǔ)油罐的壓力時(shí),易被用戶提取。例如,顯示煉油廠儲(chǔ)油罐的壓力時(shí),如果簡單地用數(shù)字表示壓力,則不易引起用戶注意。如果簡單地用數(shù)字表示壓力,則不易引起用戶注意。但是,如果用類似溫度計(jì)的形式來表示壓力,用垂但是,如果用類似溫度計(jì)的形式來表示壓力,用垂直移動(dòng)和顏色變化來指示危險(xiǎn)的壓力狀況,就容易直移動(dòng)和顏色變化來指示危險(xiǎn)的壓力狀況,就容易引起用戶的警覺,因?yàn)檫@
27、樣做為用戶提供了絕對(duì)和引起用戶的警覺,因?yàn)檫@樣做為用戶提供了絕對(duì)和相對(duì)兩方面的信息。相對(duì)兩方面的信息。(9)高效率地使用顯示屏。當(dāng)使用多窗口時(shí),應(yīng)該有高效率地使用顯示屏。當(dāng)使用多窗口時(shí),應(yīng)該有足夠的空間使得每個(gè)窗口至少都能顯示出一部分。足夠的空間使得每個(gè)窗口至少都能顯示出一部分。此外,屏幕大小應(yīng)該選得和應(yīng)用系統(tǒng)的類型相配套此外,屏幕大小應(yīng)該選得和應(yīng)用系統(tǒng)的類型相配套(這實(shí)際上是一個(gè)系統(tǒng)工程問題這實(shí)際上是一個(gè)系統(tǒng)工程問題)。 323數(shù)據(jù)輸入指南數(shù)據(jù)輸入指南(1)盡量減少用戶的輸入動(dòng)作。盡量減少用戶的輸入動(dòng)作。 (2)保持信息顯示和數(shù)據(jù)輸入之間的一致性。保持信息顯示和數(shù)據(jù)輸入之間的一致性。(3)允
28、許用戶自定義輸入。允許用戶自定義輸入。(4)交互應(yīng)該是靈活的,并且可調(diào)整成用戶最交互應(yīng)該是靈活的,并且可調(diào)整成用戶最喜歡的輸入方式。喜歡的輸入方式。(5)使在當(dāng)前動(dòng)作語境中不適用的命令不起作使在當(dāng)前動(dòng)作語境中不適用的命令不起作用。用。(6)讓用戶控制交互流。讓用戶控制交互流。 (7)對(duì)所有輸入動(dòng)作都提供幫助對(duì)所有輸入動(dòng)作都提供幫助 (8)消除冗余的輸入。消除冗余的輸入。 336.3 詳細(xì)設(shè)計(jì)的工具詳細(xì)設(shè)計(jì)的工具o 程序流程圖程序流程圖o 盒圖(盒圖(n-s圖)圖)o pad圖圖o 判定表判定表o 判定樹判定樹o 過程設(shè)計(jì)語言(過程設(shè)計(jì)語言(pdl)346.3.1 程序流程圖程序流程圖o 程序流
29、程圖又稱為程序框圖,它是歷史最悠程序流程圖又稱為程序框圖,它是歷史最悠久使用最廣泛的描述軟件設(shè)計(jì)的方法,然而久使用最廣泛的描述軟件設(shè)計(jì)的方法,然而它也是用得最混亂的一種方法。它也是用得最混亂的一種方法。o 從從20世紀(jì)世紀(jì)40年代末到年代末到70年代中期,程序年代中期,程序流程圖一直是軟件設(shè)計(jì)的主要工具。流程圖一直是軟件設(shè)計(jì)的主要工具。 35例子例子36程序流程圖的優(yōu)缺點(diǎn)程序流程圖的優(yōu)缺點(diǎn)o主要優(yōu)點(diǎn):主要優(yōu)點(diǎn):n對(duì)控制流程的描繪很直觀,便于初學(xué)者掌握。對(duì)控制流程的描繪很直觀,便于初學(xué)者掌握。o主要缺點(diǎn):主要缺點(diǎn):1. 程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序程序流程圖本質(zhì)上不是逐步求精
30、的好工具,它誘使程序員過早地考慮程序的控制流程,而不去考慮程序的全局員過早地考慮程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。結(jié)構(gòu)。2. 程序流程圖中用箭頭代表控制流,因此程序員不受任何程序流程圖中用箭頭代表控制流,因此程序員不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計(jì)的精神,隨意轉(zhuǎn)移控約束,可以完全不顧結(jié)構(gòu)程序設(shè)計(jì)的精神,隨意轉(zhuǎn)移控制。制。3. 程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。 37asp檢索程序流程圖:檢索程序流程圖:開 始加載include文件定義記數(shù)變量、作物變量創(chuàng)建數(shù)據(jù)庫鏈接對(duì)象、記錄集對(duì)象打開數(shù)據(jù)庫用客戶提交的值對(duì)作物變量賦值sql查詢語句賦值通過記錄集對(duì)象打開sql
31、語句設(shè)定的記錄記錄集末端?記數(shù)變量加1,輸出記錄字段值及圖像轉(zhuǎn)跳下一記錄關(guān)閉數(shù)據(jù)庫鏈接對(duì)象、記錄集對(duì)象,并釋放資源輸出記錄數(shù)和提示結(jié) 束yn386.3.2 盒圖(盒圖(n_s圖)圖)o 出于要有一種不允許違背結(jié)構(gòu)程序設(shè)計(jì)精神出于要有一種不允許違背結(jié)構(gòu)程序設(shè)計(jì)精神的圖形工具的考慮,的圖形工具的考慮,nassi和和shneider-man提出了盒圖,又稱為提出了盒圖,又稱為n_s圖。圖。39順序結(jié)構(gòu)順序結(jié)構(gòu)40if_then_else型分支型分支41case型多分支結(jié)構(gòu)型多分支結(jié)構(gòu) 42循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)43調(diào)用子程序調(diào)用子程序 44例子例子45n-s圖的特點(diǎn)圖的特點(diǎn)o 功能域功能域(即一個(gè)特定控制
32、結(jié)構(gòu)的作用域即一個(gè)特定控制結(jié)構(gòu)的作用域)明明確,可以從盒圖上一眼就看出來。確,可以從盒圖上一眼就看出來。o 不可能任意轉(zhuǎn)移控制。不可能任意轉(zhuǎn)移控制。o 很容易確定局部和全程數(shù)據(jù)的作用域。很容易確定局部和全程數(shù)據(jù)的作用域。o 很容易表示嵌套關(guān)系,也可以表示模塊的很容易表示嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。層次結(jié)構(gòu)。o 盒圖沒有箭頭,因此不允許隨意轉(zhuǎn)移控制。盒圖沒有箭頭,因此不允許隨意轉(zhuǎn)移控制。 466.3.3 pad圖圖 o pad是問題分析圖(是問題分析圖(problem analysis diagram)的英文縮寫,自)的英文縮寫,自1973年由日年由日本日立公司發(fā)明以后,已得到一定程度的
33、推本日立公司發(fā)明以后,已得到一定程度的推廣。廣。o 它用二維樹形結(jié)構(gòu)的圖來表示程序的控制流,它用二維樹形結(jié)構(gòu)的圖來表示程序的控制流,將這種圖翻譯成程序代碼比較容易。將這種圖翻譯成程序代碼比較容易。47基本控制結(jié)構(gòu)基本控制結(jié)構(gòu)48基本控制結(jié)構(gòu)基本控制結(jié)構(gòu)49基本控制結(jié)構(gòu)基本控制結(jié)構(gòu)50例子例子51pad圖的主要優(yōu)點(diǎn)圖的主要優(yōu)點(diǎn) o 使用表示結(jié)構(gòu)化控制結(jié)構(gòu)的使用表示結(jié)構(gòu)化控制結(jié)構(gòu)的pad符號(hào)所設(shè)符號(hào)所設(shè)計(jì)出來的程序必然是結(jié)構(gòu)化程序。計(jì)出來的程序必然是結(jié)構(gòu)化程序。o pad圖所描繪的程序結(jié)構(gòu)十分清晰。圖所描繪的程序結(jié)構(gòu)十分清晰。n圖中最左面的豎線是程序的主線,即第一層結(jié)圖中最左面的豎線是程序的主線,
34、即第一層結(jié)構(gòu)。構(gòu)。n隨著程序?qū)哟蔚脑黾?,隨著程序?qū)哟蔚脑黾?,pad圖逐漸向右延伸,圖逐漸向右延伸,每增加一個(gè)層次,圖形向右擴(kuò)展一條豎線。每增加一個(gè)層次,圖形向右擴(kuò)展一條豎線。npad圖中豎線的總條數(shù)就是程序的層次數(shù)。圖中豎線的總條數(shù)就是程序的層次數(shù)。52pad圖的主要優(yōu)點(diǎn)圖的主要優(yōu)點(diǎn)o 用用pad圖表現(xiàn)程序邏輯,易讀、易懂、易圖表現(xiàn)程序邏輯,易讀、易懂、易記。記。npad圖是二維樹形結(jié)構(gòu)的圖形,程序從圖中最圖是二維樹形結(jié)構(gòu)的圖形,程序從圖中最左豎線上端的結(jié)點(diǎn)開始執(zhí)行,自上而下,從左左豎線上端的結(jié)點(diǎn)開始執(zhí)行,自上而下,從左向右順序執(zhí)行,遍歷所有結(jié)點(diǎn)。向右順序執(zhí)行,遍歷所有結(jié)點(diǎn)。o 容易將容易將p
35、ad圖轉(zhuǎn)換成高級(jí)語言源程序。圖轉(zhuǎn)換成高級(jí)語言源程序。n這種轉(zhuǎn)換可用軟件工具自動(dòng)完成,從而可省去這種轉(zhuǎn)換可用軟件工具自動(dòng)完成,從而可省去人工編碼的工作,有利于提高軟件可靠性和軟人工編碼的工作,有利于提高軟件可靠性和軟件生產(chǎn)率。件生產(chǎn)率。53pad圖的主要優(yōu)點(diǎn)圖的主要優(yōu)點(diǎn)o 既可用于表示程序邏輯,也可用于描繪數(shù)既可用于表示程序邏輯,也可用于描繪數(shù)據(jù)結(jié)構(gòu)。據(jù)結(jié)構(gòu)。o pad圖的符號(hào)支持自頂向下、逐步求精方圖的符號(hào)支持自頂向下、逐步求精方法的使用。法的使用。n開始設(shè)計(jì)者可以定義一個(gè)抽象的程序,隨著設(shè)開始設(shè)計(jì)者可以定義一個(gè)抽象的程序,隨著設(shè)計(jì)工作的深入而使用計(jì)工作的深入而使用def符號(hào)逐步增加細(xì)節(jié),符號(hào)
36、逐步增加細(xì)節(jié),直至完成詳細(xì)設(shè)計(jì)。直至完成詳細(xì)設(shè)計(jì)。 546.3.4 判定表判定表o 當(dāng)算法中包含多重嵌套的條件選擇時(shí),用程當(dāng)算法中包含多重嵌套的條件選擇時(shí),用程序流程圖、盒圖、序流程圖、盒圖、pad圖或后面即將介紹圖或后面即將介紹的過程設(shè)計(jì)語言(的過程設(shè)計(jì)語言(pdl)都不易清楚地描述。)都不易清楚地描述。o 然而判定表卻能夠清晰地表示復(fù)雜的條件組然而判定表卻能夠清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系。合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系。55判定表組成判定表組成o 一張判定表由一張判定表由4部分組成。部分組成。o 左上部列出所有條件,左下部是所有可能的左上部列出所有條件,左下部是所有可能
37、的動(dòng)作。動(dòng)作。o 右上部是表示各種條件組合的一個(gè)矩陣,右右上部是表示各種條件組合的一個(gè)矩陣,右下部是和每種條件組合相對(duì)應(yīng)的動(dòng)作。下部是和每種條件組合相對(duì)應(yīng)的動(dòng)作。o 判定表右半部的每一列實(shí)質(zhì)上是一條規(guī)則,判定表右半部的每一列實(shí)質(zhì)上是一條規(guī)則,規(guī)定了與特定的條件組合相對(duì)應(yīng)的操作。規(guī)定了與特定的條件組合相對(duì)應(yīng)的操作。56例子:計(jì)算行李費(fèi)例子:計(jì)算行李費(fèi)o 假設(shè)某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重假設(shè)某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重量不超過量不超過30公斤的行李。公斤的行李。o 當(dāng)行李重量超過當(dāng)行李重量超過30公斤時(shí):公斤時(shí):n 對(duì)頭等艙的國內(nèi)乘客超重部分每公斤收費(fèi)對(duì)頭等艙的國內(nèi)乘客超重部分每公斤收
38、費(fèi)4元;元;n 對(duì)其他艙的國內(nèi)乘客超重部分每公斤收費(fèi)對(duì)其他艙的國內(nèi)乘客超重部分每公斤收費(fèi)6元;元;n 對(duì)外國乘客超重部分每公斤收費(fèi)比國內(nèi)乘客多一對(duì)外國乘客超重部分每公斤收費(fèi)比國內(nèi)乘客多一倍;倍;n 對(duì)殘疾乘客超重部分每公斤收費(fèi)比正常乘客少一對(duì)殘疾乘客超重部分每公斤收費(fèi)比正常乘客少一半。半。 57用判定表表示計(jì)算行李費(fèi)算法用判定表表示計(jì)算行李費(fèi)算法586.3.5 判定樹判定樹o 判定樹是判定表的變種,也能清晰地表示復(fù)判定樹是判定表的變種,也能清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系。雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系。o 判定樹的優(yōu)點(diǎn)在于,它的形式簡單到不需任判定樹的優(yōu)點(diǎn)在于,它的
39、形式簡單到不需任何說明,一眼就可以看出其含義,因此易于何說明,一眼就可以看出其含義,因此易于掌握和使用。掌握和使用。o 多年來判定樹一直受到人們的重視,是一種多年來判定樹一直受到人們的重視,是一種比較常用的系統(tǒng)分析和設(shè)計(jì)的工具。比較常用的系統(tǒng)分析和設(shè)計(jì)的工具。59用判定樹表示計(jì)算行李費(fèi)算法用判定樹表示計(jì)算行李費(fèi)算法606.3.6 過程設(shè)計(jì)語言(過程設(shè)計(jì)語言(pdl)o pdl也稱為偽碼,這是一個(gè)籠統(tǒng)的名稱,它也稱為偽碼,這是一個(gè)籠統(tǒng)的名稱,它是用正文形式表示數(shù)據(jù)和處理過程的設(shè)計(jì)工是用正文形式表示數(shù)據(jù)和處理過程的設(shè)計(jì)工具。具。o 一般說來一般說來pdl是一種是一種“混雜混雜”語言,它使用語言,它
40、使用一種語言(通常是某種自然語言)的詞匯,一種語言(通常是某種自然語言)的詞匯,同時(shí)卻使用另一種語言(某種結(jié)構(gòu)化的程序同時(shí)卻使用另一種語言(某種結(jié)構(gòu)化的程序設(shè)計(jì)語言)的語法。設(shè)計(jì)語言)的語法。 61pdl(作為一種設(shè)計(jì)工具)的特點(diǎn)(作為一種設(shè)計(jì)工具)的特點(diǎn)o關(guān)鍵字的固定語法,它提供了結(jié)構(gòu)化控制結(jié)構(gòu)、關(guān)鍵字的固定語法,它提供了結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說明和模塊化的特點(diǎn)。為了使結(jié)構(gòu)清晰和可數(shù)據(jù)說明和模塊化的特點(diǎn)。為了使結(jié)構(gòu)清晰和可讀性好,通常在所有可能嵌套使用的控制結(jié)構(gòu)的讀性好,通常在所有可能嵌套使用的控制結(jié)構(gòu)的頭和尾都有關(guān)鍵字。頭和尾都有關(guān)鍵字。o自然語言的自由語法,它描述處理特點(diǎn)。自然語言的自由語
41、法,它描述處理特點(diǎn)。o數(shù)據(jù)說明的手段。應(yīng)該既包括簡單的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)說明的手段。應(yīng)該既包括簡單的數(shù)據(jù)結(jié)構(gòu),又包括復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。又包括復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。o模塊定義和調(diào)用的技術(shù),應(yīng)該提供各種接口描述模塊定義和調(diào)用的技術(shù),應(yīng)該提供各種接口描述模式。模式。62pdl(作為一種設(shè)計(jì)工具)的優(yōu)點(diǎn)(作為一種設(shè)計(jì)工具)的優(yōu)點(diǎn)o 可以作為注釋直接插在源程序中間。這樣可以作為注釋直接插在源程序中間。這樣做能促使維護(hù)人員在修改程序代碼的同時(shí)做能促使維護(hù)人員在修改程序代碼的同時(shí)也相應(yīng)地修改也相應(yīng)地修改pdl注釋,因此有助于保持注釋,因此有助于保持文檔和程序的一致性,提高了文檔的質(zhì)量。文檔和程序的一致性,提高了文檔的質(zhì)
42、量。o 可以使用普通的正文編輯程序或文字處理可以使用普通的正文編輯程序或文字處理系統(tǒng),很方便地完成系統(tǒng),很方便地完成pdl的書寫和編輯工的書寫和編輯工作。作。o 已經(jīng)有自動(dòng)處理程序存在,而且可以自動(dòng)已經(jīng)有自動(dòng)處理程序存在,而且可以自動(dòng)由由pdl生成程序代碼。生成程序代碼。63pdl的缺點(diǎn)的缺點(diǎn)o 不如圖形工具形象直觀;不如圖形工具形象直觀;o 描述復(fù)雜的條件組合與動(dòng)作間的對(duì)應(yīng)關(guān)系時(shí),描述復(fù)雜的條件組合與動(dòng)作間的對(duì)應(yīng)關(guān)系時(shí),不如判定表清晰簡單。不如判定表清晰簡單。646.4 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法 o 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法就是用數(shù)據(jù)結(jié)構(gòu)作為程序面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法就是用
43、數(shù)據(jù)結(jié)構(gòu)作為程序設(shè)計(jì)的基礎(chǔ)。設(shè)計(jì)的基礎(chǔ)。o 這種方法的最終目標(biāo)是得出對(duì)程序處理過程的描述,這種方法的最終目標(biāo)是得出對(duì)程序處理過程的描述,最適合于在詳細(xì)設(shè)計(jì)階段使用,也就是說,在完成最適合于在詳細(xì)設(shè)計(jì)階段使用,也就是說,在完成了軟件結(jié)構(gòu)設(shè)計(jì)之后,可以使用面向數(shù)據(jù)結(jié)構(gòu)的方了軟件結(jié)構(gòu)設(shè)計(jì)之后,可以使用面向數(shù)據(jù)結(jié)構(gòu)的方法來設(shè)計(jì)每個(gè)模塊的處理過程。法來設(shè)計(jì)每個(gè)模塊的處理過程。o 使用面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,當(dāng)然首先需要分析使用面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,當(dāng)然首先需要分析確定數(shù)據(jù)結(jié)構(gòu),并且用適當(dāng)?shù)墓ぞ咔逦孛枋鰯?shù)據(jù)確定數(shù)據(jù)結(jié)構(gòu),并且用適當(dāng)?shù)墓ぞ咔逦孛枋鰯?shù)據(jù)結(jié)構(gòu)。結(jié)構(gòu)。 656.4.1 jackson程序設(shè)計(jì)
44、方法程序設(shè)計(jì)方法o jackson圖圖o 改進(jìn)的改進(jìn)的jackson圖圖o jackson方法方法66邏輯數(shù)據(jù)結(jié)構(gòu)邏輯數(shù)據(jù)結(jié)構(gòu) o 雖然程序中實(shí)際使用的數(shù)據(jù)結(jié)構(gòu)種類繁多,雖然程序中實(shí)際使用的數(shù)據(jù)結(jié)構(gòu)種類繁多,但是它們的數(shù)據(jù)元素彼此間的邏輯關(guān)系卻只但是它們的數(shù)據(jù)元素彼此間的邏輯關(guān)系卻只有三類:有三類:n 順序結(jié)構(gòu)順序結(jié)構(gòu)n 選擇結(jié)構(gòu)選擇結(jié)構(gòu)n 重復(fù)結(jié)構(gòu)重復(fù)結(jié)構(gòu)n可選結(jié)構(gòu)可選結(jié)構(gòu)67順序結(jié)構(gòu)順序結(jié)構(gòu)o 順序結(jié)構(gòu)的數(shù)據(jù)由一個(gè)或多個(gè)數(shù)據(jù)元素組成,每個(gè)順序結(jié)構(gòu)的數(shù)據(jù)由一個(gè)或多個(gè)數(shù)據(jù)元素組成,每個(gè)元素按確定次序出現(xiàn)一次。元素按確定次序出現(xiàn)一次。o a由由b、c、d三個(gè)元素順序組成。三個(gè)元素順序組成。68順
45、序結(jié)構(gòu)對(duì)應(yīng)的偽碼順序結(jié)構(gòu)對(duì)應(yīng)的偽碼o 順序結(jié)構(gòu)對(duì)應(yīng)的偽碼,其中順序結(jié)構(gòu)對(duì)應(yīng)的偽碼,其中seq和和end是關(guān)鍵字:是關(guān)鍵字:a seq b c da end69選擇結(jié)構(gòu)選擇結(jié)構(gòu)o 選擇結(jié)構(gòu)的數(shù)據(jù)包含兩個(gè)或多個(gè)數(shù)據(jù)元素,每次使選擇結(jié)構(gòu)的數(shù)據(jù)包含兩個(gè)或多個(gè)數(shù)據(jù)元素,每次使用這個(gè)數(shù)據(jù)時(shí)按一定條件從這些數(shù)據(jù)元素中選擇一用這個(gè)數(shù)據(jù)時(shí)按一定條件從這些數(shù)據(jù)元素中選擇一個(gè)。個(gè)。o 根據(jù)條件根據(jù)條件a是是b或或c或或d中的某一個(gè)。中的某一個(gè)。70選擇結(jié)構(gòu)對(duì)應(yīng)的偽碼選擇結(jié)構(gòu)對(duì)應(yīng)的偽碼o 選擇結(jié)構(gòu)對(duì)應(yīng)的偽碼,其中選擇結(jié)構(gòu)對(duì)應(yīng)的偽碼,其中select、or和和end是關(guān)鍵字,是關(guān)鍵字,cond1、cond2和和cond
46、3分分別是執(zhí)行別是執(zhí)行b、c或或d的條件:的條件:a select cond1 ba or cond2 ca or cond3 da end71重復(fù)結(jié)構(gòu)重復(fù)結(jié)構(gòu)o 重復(fù)結(jié)構(gòu)的數(shù)據(jù),根據(jù)使用時(shí)的條件由一個(gè)數(shù)據(jù)元重復(fù)結(jié)構(gòu)的數(shù)據(jù),根據(jù)使用時(shí)的條件由一個(gè)數(shù)據(jù)元素出現(xiàn)零次或多次構(gòu)成。素出現(xiàn)零次或多次構(gòu)成。o a由由b出現(xiàn)出現(xiàn)n次(次(n0)組成或)組成或a由由b循環(huán)組成,循環(huán)組成,結(jié)束條件的編號(hào)是結(jié)束條件的編號(hào)是i。72重復(fù)結(jié)構(gòu)對(duì)應(yīng)的偽碼重復(fù)結(jié)構(gòu)對(duì)應(yīng)的偽碼o 重復(fù)結(jié)構(gòu)對(duì)應(yīng)的偽碼,其中重復(fù)結(jié)構(gòu)對(duì)應(yīng)的偽碼,其中iter、until、while和和end是關(guān)鍵字是關(guān)鍵字(重復(fù)結(jié)構(gòu)有(重復(fù)結(jié)構(gòu)有until和和w
47、hile兩種形式),兩種形式),cond是條件:是條件:a iter until(或(或while)condba end73可選結(jié)構(gòu)可選結(jié)構(gòu)o a由元素由元素b或者出現(xiàn)或者不出現(xiàn)組成或者出現(xiàn)或者不出現(xiàn)組成74jackson圖的優(yōu)點(diǎn)圖的優(yōu)點(diǎn) o 便于表示層次結(jié)構(gòu),而且是對(duì)結(jié)構(gòu)進(jìn)行自頂便于表示層次結(jié)構(gòu),而且是對(duì)結(jié)構(gòu)進(jìn)行自頂向下分解的有力工具;向下分解的有力工具;o 形象直觀可讀性好;形象直觀可讀性好;o 既能表示數(shù)據(jù)結(jié)構(gòu)也能表示程序結(jié)構(gòu)。既能表示數(shù)據(jù)結(jié)構(gòu)也能表示程序結(jié)構(gòu)。75jackson圖與層次方框圖的比較圖與層次方框圖的比較o jackson圖實(shí)質(zhì)上是對(duì)層次方框圖的精化。圖實(shí)質(zhì)上是對(duì)層次方框圖
48、的精化。o 但兩者含義很不相同:但兩者含義很不相同:n 層次圖中的一個(gè)方框通常代表一個(gè)模塊;層次圖中的一個(gè)方框通常代表一個(gè)模塊;jackson圖即使在描繪程序結(jié)構(gòu)時(shí),一個(gè)方框圖即使在描繪程序結(jié)構(gòu)時(shí),一個(gè)方框也并不代表一個(gè)模塊,通常一個(gè)方框只代表幾也并不代表一個(gè)模塊,通常一個(gè)方框只代表幾個(gè)語句。個(gè)語句。n 層次圖表現(xiàn)的是調(diào)用關(guān)系,通常一個(gè)模塊除了層次圖表現(xiàn)的是調(diào)用關(guān)系,通常一個(gè)模塊除了調(diào)用下級(jí)模塊外,還完成其他操作;調(diào)用下級(jí)模塊外,還完成其他操作;jackson圖表現(xiàn)的是組成關(guān)系,也就是說,一個(gè)方框中圖表現(xiàn)的是組成關(guān)系,也就是說,一個(gè)方框中包括的操作僅僅由它下層框中的那些操作組成。包括的操作僅僅
49、由它下層框中的那些操作組成。76例子例子o 一個(gè)正文文件由若干個(gè)記錄組成,每個(gè)記錄一個(gè)正文文件由若干個(gè)記錄組成,每個(gè)記錄是一個(gè)字符串。是一個(gè)字符串。n 要求統(tǒng)計(jì)每個(gè)記錄中空格字符的個(gè)數(shù),以及文要求統(tǒng)計(jì)每個(gè)記錄中空格字符的個(gè)數(shù),以及文件中空格字符的總個(gè)數(shù)。件中空格字符的總個(gè)數(shù)。n 要求的輸出數(shù)據(jù)格式是,每復(fù)制一行輸入字符要求的輸出數(shù)據(jù)格式是,每復(fù)制一行輸入字符串之后,另起一行印出這個(gè)字符串中的空格數(shù),串之后,另起一行印出這個(gè)字符串中的空格數(shù),最后印出文件中空格的總個(gè)數(shù)。最后印出文件中空格的總個(gè)數(shù)。 776.4.2jackson方法方法o jackson結(jié)構(gòu)程序設(shè)計(jì)方法的五個(gè)步驟:結(jié)構(gòu)程序設(shè)計(jì)方法
50、的五個(gè)步驟:1. 分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用并用jackson圖描繪這些數(shù)據(jù)結(jié)構(gòu)。圖描繪這些數(shù)據(jù)結(jié)構(gòu)。2. 找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元。系的數(shù)據(jù)單元。所謂有對(duì)應(yīng)關(guān)系是指有直接的因果關(guān)系,在程序中所謂有對(duì)應(yīng)關(guān)系是指有直接的因果關(guān)系,在程序中可以同時(shí)處理的數(shù)據(jù)單元(對(duì)于重復(fù)出現(xiàn)的數(shù)據(jù)單可以同時(shí)處理的數(shù)據(jù)單元(對(duì)于重復(fù)出現(xiàn)的數(shù)據(jù)單元必須重復(fù)的次序和次數(shù)都相同才可能有對(duì)應(yīng)關(guān)元必須重復(fù)的次序和次數(shù)都相同才可能有對(duì)應(yīng)關(guān)系)。系)。78用用jackson方法進(jìn)行程序設(shè)計(jì)方法進(jìn)行程序設(shè)計(jì)
51、1. 用用jackson圖描繪的輸入輸出數(shù)據(jù)結(jié)構(gòu)。圖描繪的輸入輸出數(shù)據(jù)結(jié)構(gòu)。79用用jackson方法進(jìn)行程序設(shè)計(jì)方法進(jìn)行程序設(shè)計(jì)2. 找有對(duì)應(yīng)關(guān)系的單元:找有對(duì)應(yīng)關(guān)系的單元:a. 經(jīng)過程序的處理由正文文件得到輸出表格。經(jīng)過程序的處理由正文文件得到輸出表格。n 輸出數(shù)據(jù)總是通過對(duì)輸入數(shù)據(jù)的處理而得到的,輸出數(shù)據(jù)總是通過對(duì)輸入數(shù)據(jù)的處理而得到的,因此在輸入輸出數(shù)據(jù)結(jié)構(gòu)最高層次的兩個(gè)單因此在輸入輸出數(shù)據(jù)結(jié)構(gòu)最高層次的兩個(gè)單元(在這個(gè)例子中是元(在這個(gè)例子中是“正文文件正文文件”和和“輸出表輸出表格格”)總是有對(duì)應(yīng)關(guān)系的。)總是有對(duì)應(yīng)關(guān)系的。n 這一對(duì)單元將和程序結(jié)構(gòu)圖中最頂層的方框這一對(duì)單元將和程
52、序結(jié)構(gòu)圖中最頂層的方框(代表程序)相對(duì)應(yīng)。(代表程序)相對(duì)應(yīng)。80用用jackson方法進(jìn)行程序設(shè)計(jì)方法進(jìn)行程序設(shè)計(jì)o 找有對(duì)應(yīng)關(guān)系的單元:找有對(duì)應(yīng)關(guān)系的單元:b. “字符串字符串”和和“串信息串信息”。n 每處理輸入數(shù)據(jù)中一個(gè)每處理輸入數(shù)據(jù)中一個(gè)“字符串字符串”之后,就可之后,就可以得到輸出數(shù)據(jù)中一個(gè)以得到輸出數(shù)據(jù)中一個(gè)“串信息串信息”,它們都是,它們都是重復(fù)出現(xiàn)的數(shù)據(jù)單元,而且出現(xiàn)次序和重復(fù)次重復(fù)出現(xiàn)的數(shù)據(jù)單元,而且出現(xiàn)次序和重復(fù)次數(shù)都完全相同。數(shù)都完全相同。n 因此,因此,“字符串字符串”和和“串信息串信息”也是一對(duì)有對(duì)也是一對(duì)有對(duì)應(yīng)關(guān)系的單元應(yīng)關(guān)系的單元81jackson方法方法3.
53、用下述三條規(guī)則從描繪數(shù)據(jù)結(jié)構(gòu)的用下述三條規(guī)則從描繪數(shù)據(jù)結(jié)構(gòu)的jackson圖導(dǎo)圖導(dǎo)出描繪程序結(jié)構(gòu)的出描繪程序結(jié)構(gòu)的jackson圖:圖:n為每對(duì)有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元,按照它們?cè)跀?shù)據(jù)結(jié)構(gòu)圖為每對(duì)有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元,按照它們?cè)跀?shù)據(jù)結(jié)構(gòu)圖中的層次在程序結(jié)構(gòu)圖的相應(yīng)層次畫一個(gè)處理框(注意,中的層次在程序結(jié)構(gòu)圖的相應(yīng)層次畫一個(gè)處理框(注意,如果這對(duì)數(shù)據(jù)單元在輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中所如果這對(duì)數(shù)據(jù)單元在輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中所處的層次不同,則和它們對(duì)應(yīng)的處理框在程序結(jié)構(gòu)圖中處的層次不同,則和它們對(duì)應(yīng)的處理框在程序結(jié)構(gòu)圖中所處的層次與它們之中在數(shù)據(jù)結(jié)構(gòu)圖中層次低的那個(gè)對(duì)所處的層次與它們之中在數(shù)據(jù)
54、結(jié)構(gòu)圖中層次低的那個(gè)對(duì)應(yīng));應(yīng));n根據(jù)輸入數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次,根據(jù)輸入數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對(duì)應(yīng)的處理框;在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對(duì)應(yīng)的處理框;n根據(jù)輸出數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次,根據(jù)輸出數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對(duì)應(yīng)的處理框。在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對(duì)應(yīng)的處理框。 82用用jackson方法進(jìn)行程序設(shè)計(jì)方法進(jìn)行程序設(shè)計(jì)3. 從數(shù)據(jù)結(jié)構(gòu)圖從數(shù)據(jù)結(jié)構(gòu)圖導(dǎo)出程序結(jié)構(gòu)導(dǎo)出程序結(jié)構(gòu)圖。圖。 83用用jackson方法進(jìn)行程序設(shè)計(jì)方法進(jìn)行程序
55、設(shè)計(jì)o 從數(shù)據(jù)結(jié)構(gòu)圖導(dǎo)出程序結(jié)構(gòu)圖:從數(shù)據(jù)結(jié)構(gòu)圖導(dǎo)出程序結(jié)構(gòu)圖:a. 在描繪程序結(jié)構(gòu)的在描繪程序結(jié)構(gòu)的jackson圖的最頂層畫圖的最頂層畫一個(gè)處理框一個(gè)處理框“統(tǒng)計(jì)空格統(tǒng)計(jì)空格”,它與,它與“正文文正文文件件”和和“輸出表格輸出表格”這對(duì)最頂層的數(shù)據(jù)單這對(duì)最頂層的數(shù)據(jù)單元相對(duì)應(yīng)。元相對(duì)應(yīng)。84用用jackson方法進(jìn)行程序設(shè)計(jì)方法進(jìn)行程序設(shè)計(jì)b. 接下來還不能立即畫與另一對(duì)數(shù)據(jù)單元(接下來還不能立即畫與另一對(duì)數(shù)據(jù)單元(“字符字符串串”和和“串信息串信息”)相對(duì)應(yīng)的處理框。)相對(duì)應(yīng)的處理框。o在輸出數(shù)據(jù)結(jié)構(gòu)中在輸出數(shù)據(jù)結(jié)構(gòu)中“串信息串信息”的上層還有的上層還有“表格表格體體”和和“空格總數(shù)空格
56、總數(shù)”兩個(gè)數(shù)據(jù)單元,在程序結(jié)構(gòu)兩個(gè)數(shù)據(jù)單元,在程序結(jié)構(gòu)圖的第二層應(yīng)該有與這兩個(gè)單元對(duì)應(yīng)的處理框圖的第二層應(yīng)該有與這兩個(gè)單元對(duì)應(yīng)的處理框“程序體程序體”和和“總數(shù)總數(shù)”。o在程序結(jié)構(gòu)圖的第三層才是與在程序結(jié)構(gòu)圖的第三層才是與“字符串字符串”和和“串串信息信息”相對(duì)應(yīng)的處理框相對(duì)應(yīng)的處理框“處理字符串處理字符串”。85用用jackson方法進(jìn)行程序設(shè)計(jì)方法進(jìn)行程序設(shè)計(jì)c. 在程序結(jié)構(gòu)圖的第四層似乎應(yīng)該是和在程序結(jié)構(gòu)圖的第四層似乎應(yīng)該是和“字符串字符串”、“字符字符”及及“空格數(shù)空格數(shù)”等數(shù)據(jù)單元對(duì)應(yīng)的處理框等數(shù)據(jù)單元對(duì)應(yīng)的處理框“印字符串印字符串”、“分析字符分析字符”及及“印空格數(shù)印空格數(shù)”,這
57、三個(gè)處理是順序執(zhí)行的。這三個(gè)處理是順序執(zhí)行的。o但是,但是,“字符字符”是重復(fù)出現(xiàn)的數(shù)據(jù)單元,因此是重復(fù)出現(xiàn)的數(shù)據(jù)單元,因此“分析字符分析字符”也應(yīng)該是重復(fù)執(zhí)行的處理。也應(yīng)該是重復(fù)執(zhí)行的處理。o改進(jìn)的改進(jìn)的jackson圖規(guī)定順序執(zhí)行的處理中不允許圖規(guī)定順序執(zhí)行的處理中不允許混有重復(fù)執(zhí)行或選擇執(zhí)行的處理,所以在混有重復(fù)執(zhí)行或選擇執(zhí)行的處理,所以在“分析分析字符字符”這個(gè)處理框上面又增加了這個(gè)處理框上面又增加了 “分析字符串分析字符串”處理框。處理框。86jackson方法方法4. 列出所有操作和條件(包括分支條件和循列出所有操作和條件(包括分支條件和循環(huán)結(jié)束條件),并且把它們分配到程序結(jié)環(huán)結(jié)束
58、條件),并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。構(gòu)圖的適當(dāng)位置。5. 用偽碼表示程序。用偽碼表示程序。87用用jackson方法進(jìn)行程序設(shè)計(jì)方法進(jìn)行程序設(shè)計(jì)4. 列出所有操作和條件,并且把它們分配到程序列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。結(jié)構(gòu)圖的適當(dāng)位置。(1)停止)停止(2)打開文件)打開文件(3)關(guān)閉文件)關(guān)閉文件(4)印出字符串)印出字符串(5)印出空格數(shù)目)印出空格數(shù)目(6)印出空格總數(shù))印出空格總數(shù)(7)sum:=sum1 / sum是保存空格個(gè)數(shù)的變量是保存空格個(gè)數(shù)的變量(8)totalsum:=totalsumsum/ totalsum保存空格總數(shù)保存空格總數(shù)
59、(9)讀入字符串)讀入字符串(10) sum:=0 (11)totalsum:=0(12)pointer:=1 /指示當(dāng)前分析的字符在字符串中的位置指示當(dāng)前分析的字符在字符串中的位置(13)pointer:=pointer1 i(1) 文件結(jié)束、文件結(jié)束、i(2) 字符串結(jié)束字符串結(jié)束 s(3) 字符是空格字符是空格88用用jackson方法進(jìn)行程序設(shè)計(jì)方法進(jìn)行程序設(shè)計(jì)o 經(jīng)過簡單分析經(jīng)過簡單分析不難把這些操不難把這些操作和條件分配作和條件分配到程序結(jié)構(gòu)圖到程序結(jié)構(gòu)圖的適當(dāng)位置。的適當(dāng)位置。89用用jackson方法進(jìn)行程序設(shè)計(jì)方法進(jìn)行程序設(shè)計(jì)5. 用偽碼表示程序處理過程。用偽碼表示程序處理過
60、程。統(tǒng)計(jì)空格統(tǒng)計(jì)空格seq 打開文件打開文件 讀入字符串讀入字符串 totalsum:= 0 程序體程序體iter until文件結(jié)束文件結(jié)束 處理字符串處理字符串seq 印字符串印字符串seq 印出字符串印出字符串 印字符串印字符串end sum:= 0 .統(tǒng)計(jì)空格統(tǒng)計(jì)空格seq906.5 程序復(fù)雜程度的定量度量程序復(fù)雜程度的定量度量o 定量度量程序復(fù)雜程度的方法很有價(jià)值:定量度量程序復(fù)雜程度的方法很有價(jià)值:n 把程序的復(fù)雜程度乘以適當(dāng)常數(shù)即可估算出軟把程序的復(fù)雜程度乘以適當(dāng)常數(shù)即可估算出軟件中故障的數(shù)量以及軟件開發(fā)需要用的工作量,件中故障的數(shù)量以及軟件開發(fā)需要用的工作量,n 定量度量的結(jié)果
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國雙漿混合機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2031年中國石英火頭行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國不銹鋼茶具行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年安徽商貿(mào)職業(yè)技術(shù)學(xué)院單招職業(yè)技能測(cè)試題庫a4版
- 2025年安徽工貿(mào)職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性考試題庫匯編
- 2025年包頭輕工職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試題庫往年題考
- 2025年安徽工業(yè)經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試題庫一套
- 2025年安徽城市管理職業(yè)學(xué)院單招職業(yè)傾向性測(cè)試題庫a4版
- 2025年安徽省池州市單招職業(yè)適應(yīng)性考試題庫1套
- 2025年安徽城市管理職業(yè)學(xué)院單招職業(yè)技能考試題庫新版
- 法規(guī)解讀丨2024新版《突發(fā)事件應(yīng)對(duì)法》及其應(yīng)用案例
- JGJ46-2024 建筑與市政工程施工現(xiàn)場(chǎng)臨時(shí)用電安全技術(shù)標(biāo)準(zhǔn)
- 旅游地產(chǎn)開發(fā)模式和創(chuàng)新(含案例)
- 診斷學(xué)完整教案(共167頁)
- 《汽車文化》全套教案
- 拆除工程檢驗(yàn)批質(zhì)量檢驗(yàn)記錄
- 甲狀腺腫瘤PPT課件
- 城市燃?xì)夤こ瘫O(jiān)理實(shí)施細(xì)則
- 項(xiàng)目總工崗位職責(zé)
- 鋁合金和工藝課件:硬質(zhì)陽極氧化處理
- (完整版)部編四年級(jí)語文下詞語表
評(píng)論
0/150
提交評(píng)論