




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第6章章 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)6.1 結(jié)構(gòu)程序設(shè)計(jì)結(jié)構(gòu)程序設(shè)計(jì)6.2 人機(jī)界面設(shè)計(jì)人機(jī)界面設(shè)計(jì)6.3 過(guò)程設(shè)計(jì)的工具過(guò)程設(shè)計(jì)的工具6.4 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法6.5 程序復(fù)雜程度的定量度量程序復(fù)雜程度的定量度量6.6 小結(jié)小結(jié)習(xí)題習(xí)題詳細(xì)設(shè)計(jì)階段的根本目標(biāo)是確定應(yīng)該怎樣具體地實(shí)詳細(xì)設(shè)計(jì)階段的根本目標(biāo)是確定應(yīng)該怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng),也就是說(shuō),經(jīng)過(guò)這個(gè)階段的設(shè)計(jì)現(xiàn)所要求的系統(tǒng),也就是說(shuō),經(jīng)過(guò)這個(gè)階段的設(shè)計(jì)工作,應(yīng)該得出對(duì)目標(biāo)系統(tǒng)的精確描述,從而在編工作,應(yīng)該得出對(duì)目標(biāo)系統(tǒng)的精確描述,從而在編碼階段可以把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)碼階段可以把這個(gè)描述直接翻譯成用某種
2、程序設(shè)計(jì)語(yǔ)言書寫的程序。語(yǔ)言書寫的程序。詳細(xì)設(shè)計(jì)階段的任務(wù)還不是具體地編寫程序,而是詳細(xì)設(shè)計(jì)階段的任務(wù)還不是具體地編寫程序,而是要設(shè)計(jì)出程序的要設(shè)計(jì)出程序的“藍(lán)圖藍(lán)圖”,以后程序員將根據(jù)這個(gè),以后程序員將根據(jù)這個(gè)藍(lán)圖寫出實(shí)際的程序代碼。因此,詳細(xì)設(shè)計(jì)的結(jié)果藍(lán)圖寫出實(shí)際的程序代碼。因此,詳細(xì)設(shè)計(jì)的結(jié)果基本上決定了最終的程序代碼的質(zhì)量??紤]程序代基本上決定了最終的程序代碼的質(zhì)量??紤]程序代碼的質(zhì)量時(shí)必須注意,程序的碼的質(zhì)量時(shí)必須注意,程序的“讀者讀者”有兩個(gè),那有兩個(gè),那就是計(jì)算機(jī)和人。就是計(jì)算機(jī)和人。在軟件的生命周期中,設(shè)計(jì)測(cè)試方案、診斷程序錯(cuò)在軟件的生命周期中,設(shè)計(jì)測(cè)試方案、診斷程序錯(cuò)誤、修改
3、和改進(jìn)程序等等都必須首先讀懂程序。實(shí)誤、修改和改進(jìn)程序等等都必須首先讀懂程序。實(shí)際上對(duì)于長(zhǎng)期使用的軟件系統(tǒng)而言,人讀程序的時(shí)際上對(duì)于長(zhǎng)期使用的軟件系統(tǒng)而言,人讀程序的時(shí)間可能比寫程序的時(shí)間還要長(zhǎng)得多。因此,衡量程間可能比寫程序的時(shí)間還要長(zhǎng)得多。因此,衡量程序的質(zhì)量不僅要看它的邏輯是否正確,性能是否滿序的質(zhì)量不僅要看它的邏輯是否正確,性能是否滿足要求,更主要的是要看它是否容易閱讀和理解。足要求,更主要的是要看它是否容易閱讀和理解。詳細(xì)設(shè)計(jì)的目標(biāo)不僅僅是邏輯上正確地實(shí)現(xiàn)每個(gè)模詳細(xì)設(shè)計(jì)的目標(biāo)不僅僅是邏輯上正確地實(shí)現(xiàn)每個(gè)模塊的功能,更重要的是設(shè)計(jì)出的處理過(guò)程應(yīng)該盡可塊的功能,更重要的是設(shè)計(jì)出的處理過(guò)程
4、應(yīng)該盡可能簡(jiǎn)明易懂。結(jié)構(gòu)程序設(shè)計(jì)技術(shù)是實(shí)現(xiàn)上述目標(biāo)的能簡(jiǎn)明易懂。結(jié)構(gòu)程序設(shè)計(jì)技術(shù)是實(shí)現(xiàn)上述目標(biāo)的關(guān)鍵技術(shù),因此是詳細(xì)設(shè)計(jì)的邏輯基礎(chǔ)。關(guān)鍵技術(shù),因此是詳細(xì)設(shè)計(jì)的邏輯基礎(chǔ)。結(jié)構(gòu)程序設(shè)計(jì)的概念最早由結(jié)構(gòu)程序設(shè)計(jì)的概念最早由E.W.Dijkstra提出。提出。1965年他在一次會(huì)議上指出:年他在一次會(huì)議上指出:“可以從高級(jí)語(yǔ)言中可以從高級(jí)語(yǔ)言中取消取消GO TO語(yǔ)句語(yǔ)句”,“程序的質(zhì)量與程序中所包程序的質(zhì)量與程序中所包含的含的GO TO 語(yǔ)句的數(shù)量成反比語(yǔ)句的數(shù)量成反比”。1966年年Bohm和和Jacopini證明了,只用證明了,只用3種基本的控制結(jié)構(gòu)就能實(shí)現(xiàn)種基本的控制結(jié)構(gòu)就能實(shí)現(xiàn)任何單入口單出口
5、的程序。這任何單入口單出口的程序。這3種基本的控制結(jié)構(gòu)種基本的控制結(jié)構(gòu)是是“順序順序”、“選擇選擇”和和“循環(huán)循環(huán)”,它們的流程圖,它們的流程圖分別為圖分別為圖6.1(a),6.1(b)和和6.1(c)。6.1 結(jié)構(gòu)程序設(shè)計(jì)結(jié)構(gòu)程序設(shè)計(jì)6.1 3種基本的控制結(jié)構(gòu)種基本的控制結(jié)構(gòu)實(shí)際上用順序結(jié)構(gòu)和循環(huán)結(jié)構(gòu)實(shí)際上用順序結(jié)構(gòu)和循環(huán)結(jié)構(gòu)(又稱又稱DO-WHILE結(jié)結(jié)構(gòu)構(gòu))完全可以實(shí)現(xiàn)選擇結(jié)構(gòu)完全可以實(shí)現(xiàn)選擇結(jié)構(gòu)(又稱又稱IF-THEN-ELSE結(jié)結(jié)構(gòu)構(gòu)),因此,理論上最基本的控制結(jié)構(gòu)只有兩種。,因此,理論上最基本的控制結(jié)構(gòu)只有兩種。Bohm和和Jacopini的證明給結(jié)構(gòu)程序設(shè)計(jì)技術(shù)奠定了的證明給結(jié)構(gòu)
6、程序設(shè)計(jì)技術(shù)奠定了理論基礎(chǔ)。理論基礎(chǔ)。1968年年Dijkstra再次建議從一切高級(jí)語(yǔ)言中取消再次建議從一切高級(jí)語(yǔ)言中取消GO TO語(yǔ)句,只使用語(yǔ)句,只使用3種基本控制結(jié)構(gòu)寫程序。他的建種基本控制結(jié)構(gòu)寫程序。他的建議引起了激烈爭(zhēng)論,經(jīng)過(guò)討論人們認(rèn)識(shí)到,不是簡(jiǎn)議引起了激烈爭(zhēng)論,經(jīng)過(guò)討論人們認(rèn)識(shí)到,不是簡(jiǎn)單地去掉單地去掉GO TO 語(yǔ)句的問(wèn)題,而是要?jiǎng)?chuàng)立一種新語(yǔ)句的問(wèn)題,而是要?jiǎng)?chuàng)立一種新的程序設(shè)計(jì)思想、方法和風(fēng)格,以顯著地提高軟件的程序設(shè)計(jì)思想、方法和風(fēng)格,以顯著地提高軟件生產(chǎn)率和降低軟件維護(hù)代價(jià)。生產(chǎn)率和降低軟件維護(hù)代價(jià)。1971年年IBM公司在紐約時(shí)報(bào)信息庫(kù)管理系統(tǒng)的設(shè)計(jì)公司在紐約時(shí)報(bào)信息庫(kù)管
7、理系統(tǒng)的設(shè)計(jì)中成功地使用了結(jié)構(gòu)程序設(shè)計(jì)技術(shù),隨后在美國(guó)宇中成功地使用了結(jié)構(gòu)程序設(shè)計(jì)技術(shù),隨后在美國(guó)宇航局空間實(shí)驗(yàn)室飛行模擬系統(tǒng)的設(shè)計(jì)中,結(jié)構(gòu)程序航局空間實(shí)驗(yàn)室飛行模擬系統(tǒng)的設(shè)計(jì)中,結(jié)構(gòu)程序設(shè)計(jì)技術(shù)再次獲得圓滿成功。這兩個(gè)系統(tǒng)都相當(dāng)龐設(shè)計(jì)技術(shù)再次獲得圓滿成功。這兩個(gè)系統(tǒng)都相當(dāng)龐大,前者包含大,前者包含83 000行高級(jí)語(yǔ)言源程序,后者包含行高級(jí)語(yǔ)言源程序,后者包含40萬(wàn)行源程序,而且在設(shè)計(jì)過(guò)程中用戶需求又曾有萬(wàn)行源程序,而且在設(shè)計(jì)過(guò)程中用戶需求又曾有過(guò)很多改變,然而兩個(gè)系統(tǒng)的開(kāi)發(fā)工作都按時(shí)并且過(guò)很多改變,然而兩個(gè)系統(tǒng)的開(kāi)發(fā)工作都按時(shí)并且高質(zhì)量地完成了。這表明,軟件生產(chǎn)率比以前提高高質(zhì)量地完成了。
8、這表明,軟件生產(chǎn)率比以前提高了一倍,結(jié)構(gòu)程序設(shè)計(jì)技術(shù)成功地經(jīng)受了實(shí)踐的檢了一倍,結(jié)構(gòu)程序設(shè)計(jì)技術(shù)成功地經(jīng)受了實(shí)踐的檢驗(yàn)。驗(yàn)。1972年年IBM公司的公司的Mills進(jìn)一步提出,程序應(yīng)該只有進(jìn)一步提出,程序應(yīng)該只有一個(gè)入口和一個(gè)出口,從而補(bǔ)充了結(jié)構(gòu)程序設(shè)計(jì)的一個(gè)入口和一個(gè)出口,從而補(bǔ)充了結(jié)構(gòu)程序設(shè)計(jì)的規(guī)則。規(guī)則。結(jié)構(gòu)程序設(shè)計(jì)的經(jīng)典定義如下所述:結(jié)構(gòu)程序設(shè)計(jì)的經(jīng)典定義如下所述:“如果一個(gè)程如果一個(gè)程序的代碼塊僅僅通過(guò)順序、選擇和循環(huán)這序的代碼塊僅僅通過(guò)順序、選擇和循環(huán)這3種基本種基本控制結(jié)構(gòu)進(jìn)行連接,并且每個(gè)代碼塊只有一個(gè)入口控制結(jié)構(gòu)進(jìn)行連接,并且每個(gè)代碼塊只有一個(gè)入口和一個(gè)出口,則稱這個(gè)程序是結(jié)
9、構(gòu)化的。和一個(gè)出口,則稱這個(gè)程序是結(jié)構(gòu)化的?!鄙鲜鼋?jīng)典定義過(guò)于狹隘了,結(jié)構(gòu)程序設(shè)計(jì)本質(zhì)上并上述經(jīng)典定義過(guò)于狹隘了,結(jié)構(gòu)程序設(shè)計(jì)本質(zhì)上并不是無(wú)不是無(wú)GO TO語(yǔ)句的編程方法,而是一種使程序語(yǔ)句的編程方法,而是一種使程序代碼容易閱讀、容易理解的編程方法。在多數(shù)情況代碼容易閱讀、容易理解的編程方法。在多數(shù)情況下,無(wú)下,無(wú)GO TO語(yǔ)句的代碼確實(shí)是容易閱讀、容易語(yǔ)句的代碼確實(shí)是容易閱讀、容易理解的代碼,但是,在某些情況下,為了達(dá)到容易理解的代碼,但是,在某些情況下,為了達(dá)到容易閱讀和容易理解的目的,反而需要使用閱讀和容易理解的目的,反而需要使用GO TO語(yǔ)語(yǔ)句。因此,下述的結(jié)構(gòu)程序設(shè)計(jì)的定義可能更全面
10、句。因此,下述的結(jié)構(gòu)程序設(shè)計(jì)的定義可能更全面一些:一些:“結(jié)構(gòu)程序設(shè)計(jì)是盡可能少用結(jié)構(gòu)程序設(shè)計(jì)是盡可能少用GO TO語(yǔ)句的程序語(yǔ)句的程序設(shè)計(jì)方法。最好僅在檢測(cè)出錯(cuò)誤時(shí)才使用設(shè)計(jì)方法。最好僅在檢測(cè)出錯(cuò)誤時(shí)才使用GO TO語(yǔ)句,而且應(yīng)該總是使用前向語(yǔ)句,而且應(yīng)該總是使用前向GO TO語(yǔ)句。語(yǔ)句?!彪m然從理論上說(shuō)只用上述雖然從理論上說(shuō)只用上述3種基本控制結(jié)構(gòu)就可以種基本控制結(jié)構(gòu)就可以實(shí)現(xiàn)任何單入口單出口的程序,但是為了實(shí)際使用實(shí)現(xiàn)任何單入口單出口的程序,但是為了實(shí)際使用方便起見(jiàn),常常還允許使用方便起見(jiàn),常常還允許使用DO-UNTIL和和DO-CASE兩種控制結(jié)構(gòu),它們的流程圖分別是圖兩種控制結(jié)構(gòu),它
11、們的流程圖分別是圖6.2(a)和圖和圖6.2(b)。有時(shí)需要立即從循環(huán)有時(shí)需要立即從循環(huán)(甚至嵌套的循環(huán)甚至嵌套的循環(huán))中轉(zhuǎn)移出來(lái),中轉(zhuǎn)移出來(lái),如果允許使用如果允許使用LEAVE(或或BREAK)結(jié)構(gòu),則不僅方結(jié)構(gòu),則不僅方便而且會(huì)使效率提高很多。便而且會(huì)使效率提高很多。LEAVE或或BREAK結(jié)構(gòu)結(jié)構(gòu)實(shí)質(zhì)上是受限制的實(shí)質(zhì)上是受限制的GO TO 語(yǔ)句,用于轉(zhuǎn)移到循環(huán)語(yǔ)句,用于轉(zhuǎn)移到循環(huán)結(jié)構(gòu)后面的語(yǔ)句。結(jié)構(gòu)后面的語(yǔ)句。如果只允許使用順序、如果只允許使用順序、IF-THEN-ELSE型分支和型分支和DO-WHILE型循環(huán)這型循環(huán)這3種基本控制結(jié)構(gòu),則稱為經(jīng)種基本控制結(jié)構(gòu),則稱為經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì);
12、如果除了上述典的結(jié)構(gòu)程序設(shè)計(jì);如果除了上述3種基本控制結(jié)種基本控制結(jié)構(gòu)之外,還允許使用構(gòu)之外,還允許使用DO-CASE型多分支結(jié)構(gòu)和型多分支結(jié)構(gòu)和DO-UNTIL型循環(huán)結(jié)構(gòu),則稱為擴(kuò)展的結(jié)構(gòu)程序設(shè)型循環(huán)結(jié)構(gòu),則稱為擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì);如果再加上允許使用計(jì);如果再加上允許使用LEAVE(或或BREAK)結(jié)構(gòu),結(jié)構(gòu),則稱為修正的結(jié)構(gòu)程序設(shè)計(jì)。則稱為修正的結(jié)構(gòu)程序設(shè)計(jì)。圖圖6.2 其他常用的控制結(jié)構(gòu)其他常用的控制結(jié)構(gòu)人機(jī)界面設(shè)計(jì)是接口設(shè)計(jì)的一個(gè)重要的組成部分。人機(jī)界面設(shè)計(jì)是接口設(shè)計(jì)的一個(gè)重要的組成部分。對(duì)于交互式系統(tǒng)來(lái)說(shuō),人機(jī)界面設(shè)計(jì)和數(shù)據(jù)設(shè)計(jì)、對(duì)于交互式系統(tǒng)來(lái)說(shuō),人機(jī)界面設(shè)計(jì)和數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)
13、計(jì)及過(guò)程設(shè)計(jì)一樣重要。近年來(lái),人機(jī)體系結(jié)構(gòu)設(shè)計(jì)及過(guò)程設(shè)計(jì)一樣重要。近年來(lái),人機(jī)界面在系統(tǒng)中所占的比例越來(lái)越大,在個(gè)別系統(tǒng)中界面在系統(tǒng)中所占的比例越來(lái)越大,在個(gè)別系統(tǒng)中人機(jī)界面的設(shè)計(jì)工作量甚至占總設(shè)計(jì)量的一半以上。人機(jī)界面的設(shè)計(jì)工作量甚至占總設(shè)計(jì)量的一半以上。人機(jī)界面的設(shè)計(jì)質(zhì)量,直接影響用戶對(duì)軟件產(chǎn)品的人機(jī)界面的設(shè)計(jì)質(zhì)量,直接影響用戶對(duì)軟件產(chǎn)品的評(píng)價(jià),從而影響軟件產(chǎn)品的競(jìng)爭(zhēng)力和壽命,因此,評(píng)價(jià),從而影響軟件產(chǎn)品的競(jìng)爭(zhēng)力和壽命,因此,必須對(duì)人機(jī)界面設(shè)計(jì)給予足夠重視。必須對(duì)人機(jī)界面設(shè)計(jì)給予足夠重視。6.2 人機(jī)界面設(shè)計(jì)人機(jī)界面設(shè)計(jì)在設(shè)計(jì)人機(jī)界面的過(guò)程中,幾乎總會(huì)遇到下述在設(shè)計(jì)人機(jī)界面的過(guò)程中,幾乎總
14、會(huì)遇到下述4個(gè)個(gè)問(wèn)題:系統(tǒng)響應(yīng)時(shí)間、用戶幫助設(shè)施、出錯(cuò)信息處問(wèn)題:系統(tǒng)響應(yīng)時(shí)間、用戶幫助設(shè)施、出錯(cuò)信息處理和命令交互。不幸的是,許多設(shè)計(jì)者直到設(shè)計(jì)過(guò)理和命令交互。不幸的是,許多設(shè)計(jì)者直到設(shè)計(jì)過(guò)程后期才開(kāi)始考慮這些問(wèn)題,這樣做往往導(dǎo)致出現(xiàn)程后期才開(kāi)始考慮這些問(wèn)題,這樣做往往導(dǎo)致出現(xiàn)不必要的設(shè)計(jì)反復(fù)、項(xiàng)目延期和用戶產(chǎn)生挫折感。不必要的設(shè)計(jì)反復(fù)、項(xiàng)目延期和用戶產(chǎn)生挫折感。最好在設(shè)計(jì)初期就把這些問(wèn)題作為重要的設(shè)計(jì)問(wèn)題最好在設(shè)計(jì)初期就把這些問(wèn)題作為重要的設(shè)計(jì)問(wèn)題來(lái)考慮,這時(shí)修改比較容易,代價(jià)也低。下面討論來(lái)考慮,這時(shí)修改比較容易,代價(jià)也低。下面討論這這4個(gè)設(shè)計(jì)問(wèn)題。個(gè)設(shè)計(jì)問(wèn)題。6.2.1 設(shè)計(jì)問(wèn)題設(shè)計(jì)問(wèn)
15、題1. 系統(tǒng)響應(yīng)時(shí)間系統(tǒng)響應(yīng)時(shí)間系統(tǒng)響應(yīng)時(shí)間是許多交互式系統(tǒng)用戶經(jīng)常抱怨的問(wèn)系統(tǒng)響應(yīng)時(shí)間是許多交互式系統(tǒng)用戶經(jīng)常抱怨的問(wèn)題。一般說(shuō)來(lái),系統(tǒng)響應(yīng)時(shí)間指從用戶完成某個(gè)控題。一般說(shuō)來(lái),系統(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í)間。系統(tǒng)響應(yīng)時(shí)間有兩個(gè)重要屬性,分別是長(zhǎng)度和易變系統(tǒng)響應(yīng)時(shí)間有兩個(gè)重要屬性,分別是長(zhǎng)度和易變性。如果系統(tǒng)響應(yīng)時(shí)間過(guò)長(zhǎng),用戶就會(huì)感到緊張和性。如果系統(tǒng)響應(yīng)時(shí)間過(guò)長(zhǎng),用戶就會(huì)感到緊張和沮喪。但是,當(dāng)用戶工作速度是由人機(jī)界面決
16、定的沮喪。但是,當(dāng)用戶工作速度是由人機(jī)界面決定的時(shí)候,系統(tǒng)響應(yīng)時(shí)間過(guò)短也不好,這會(huì)迫使用戶加時(shí)候,系統(tǒng)響應(yīng)時(shí)間過(guò)短也不好,這會(huì)迫使用戶加快操作節(jié)奏,從而可能會(huì)犯錯(cuò)誤??觳僮鞴?jié)奏,從而可能會(huì)犯錯(cuò)誤。易變性指系統(tǒng)響應(yīng)時(shí)間相對(duì)于平均響應(yīng)時(shí)間的偏差,易變性指系統(tǒng)響應(yīng)時(shí)間相對(duì)于平均響應(yīng)時(shí)間的偏差,在許多情況下,這是系統(tǒng)響應(yīng)時(shí)間的更重要的屬性。在許多情況下,這是系統(tǒng)響應(yīng)時(shí)間的更重要的屬性。即使系統(tǒng)響應(yīng)時(shí)間較長(zhǎng),響應(yīng)時(shí)間易變性低也有助即使系統(tǒng)響應(yīng)時(shí)間較長(zhǎng),響應(yīng)時(shí)間易變性低也有助于用戶建立起穩(wěn)定的工作節(jié)奏。例如,穩(wěn)定在于用戶建立起穩(wěn)定的工作節(jié)奏。例如,穩(wěn)定在1秒秒的響應(yīng)時(shí)間比從的響應(yīng)時(shí)間比從0.1秒到秒到2.
17、5秒變化的響應(yīng)時(shí)間要好。秒變化的響應(yīng)時(shí)間要好。用戶往往比較敏感,他們總是擔(dān)心響應(yīng)時(shí)間變化暗用戶往往比較敏感,他們總是擔(dān)心響應(yīng)時(shí)間變化暗示系統(tǒng)工作出現(xiàn)了異常。示系統(tǒng)工作出現(xiàn)了異常。2. 用戶幫助設(shè)施用戶幫助設(shè)施幾乎交互式系統(tǒng)的每個(gè)用戶都需要幫助,當(dāng)遇到復(fù)幾乎交互式系統(tǒng)的每個(gè)用戶都需要幫助,當(dāng)遇到復(fù)雜問(wèn)題時(shí)甚至需要查看用戶手冊(cè)以尋找答案。大多雜問(wèn)題時(shí)甚至需要查看用戶手冊(cè)以尋找答案。大多數(shù)現(xiàn)代軟件都提供聯(lián)機(jī)幫助設(shè)施,這使得用戶無(wú)須數(shù)現(xiàn)代軟件都提供聯(lián)機(jī)幫助設(shè)施,這使得用戶無(wú)須離開(kāi)用戶界面就能解決自己的問(wèn)題。離開(kāi)用戶界面就能解決自己的問(wèn)題。常見(jiàn)的幫助設(shè)施可分為集成的和附加的兩類。集成常見(jiàn)的幫助設(shè)施可分為
18、集成的和附加的兩類。集成的幫助設(shè)施從一開(kāi)始就設(shè)計(jì)在軟件里面,通常,它的幫助設(shè)施從一開(kāi)始就設(shè)計(jì)在軟件里面,通常,它對(duì)用戶工作內(nèi)容是敏感的,因此用戶可以從與剛剛對(duì)用戶工作內(nèi)容是敏感的,因此用戶可以從與剛剛完成的操作有關(guān)的主題中選擇一個(gè)請(qǐng)求幫助。顯然,完成的操作有關(guān)的主題中選擇一個(gè)請(qǐng)求幫助。顯然,這可以縮短用戶獲得幫助的時(shí)間,增加界面的友好這可以縮短用戶獲得幫助的時(shí)間,增加界面的友好性。附加的幫助設(shè)施是在系統(tǒng)建成后再添加到軟件性。附加的幫助設(shè)施是在系統(tǒng)建成后再添加到軟件中的,在多數(shù)情況下它實(shí)際上是一種查詢能力有限中的,在多數(shù)情況下它實(shí)際上是一種查詢能力有限的聯(lián)機(jī)用戶手冊(cè)。人們普遍認(rèn)為,集成的幫助設(shè)施
19、的聯(lián)機(jī)用戶手冊(cè)。人們普遍認(rèn)為,集成的幫助設(shè)施優(yōu)于附加的幫助設(shè)施。優(yōu)于附加的幫助設(shè)施。具體設(shè)計(jì)幫助設(shè)施時(shí),必須解決下述的一系列問(wèn)題。具體設(shè)計(jì)幫助設(shè)施時(shí),必須解決下述的一系列問(wèn)題。(1) 在用戶與系統(tǒng)交互期間,是否在任何時(shí)候都能在用戶與系統(tǒng)交互期間,是否在任何時(shí)候都能獲得關(guān)于系統(tǒng)任何功能的幫助信息獲得關(guān)于系統(tǒng)任何功能的幫助信息?有兩種選擇:有兩種選擇:提供部分功能的幫助信息和提供全部功能的幫助信提供部分功能的幫助信息和提供全部功能的幫助信息。息。(2) 用戶怎樣請(qǐng)求幫助用戶怎樣請(qǐng)求幫助?有有3種選擇:幫助菜單,特種選擇:幫助菜單,特殊功能鍵和殊功能鍵和HELP命令。命令。(3) 怎樣顯示幫助信息怎
20、樣顯示幫助信息?有有3種選擇:在獨(dú)立的窗口種選擇:在獨(dú)立的窗口中,指出參考某個(gè)文檔中,指出參考某個(gè)文檔(不理想不理想)和在屏幕固定位置和在屏幕固定位置顯示簡(jiǎn)短提示。顯示簡(jiǎn)短提示。(4) 用戶怎樣返回到正常的交互方式中用戶怎樣返回到正常的交互方式中?有兩種選擇:有兩種選擇:屏幕上的返回按鈕和功能鍵。屏幕上的返回按鈕和功能鍵。(5) 怎樣組織幫助信息怎樣組織幫助信息?有有3種選擇:平面結(jié)構(gòu),信種選擇:平面結(jié)構(gòu),信息的層次結(jié)構(gòu)和超文本結(jié)構(gòu)。息的層次結(jié)構(gòu)和超文本結(jié)構(gòu)。3. 出錯(cuò)信息處理出錯(cuò)信息處理出錯(cuò)信息和警告信息,是出現(xiàn)問(wèn)題時(shí)交互式系統(tǒng)給出錯(cuò)信息和警告信息,是出現(xiàn)問(wèn)題時(shí)交互式系統(tǒng)給出的出的“壞消息壞
21、消息”。出錯(cuò)信息設(shè)計(jì)得不好,將向用戶。出錯(cuò)信息設(shè)計(jì)得不好,將向用戶提供無(wú)用的甚至誤導(dǎo)的信息,反而會(huì)加重用戶的挫提供無(wú)用的甚至誤導(dǎo)的信息,反而會(huì)加重用戶的挫折感。折感。一般說(shuō)來(lái),交互式系統(tǒng)給出的出錯(cuò)信息或警告信息,一般說(shuō)來(lái),交互式系統(tǒng)給出的出錯(cuò)信息或警告信息,應(yīng)該具有下述屬性。應(yīng)該具有下述屬性。(1) 信息應(yīng)該用用戶可以理解的術(shù)語(yǔ)描述問(wèn)題。信息應(yīng)該用用戶可以理解的術(shù)語(yǔ)描述問(wèn)題。(2) 信息應(yīng)該提供有助于從錯(cuò)誤中恢復(fù)的建設(shè)性意信息應(yīng)該提供有助于從錯(cuò)誤中恢復(fù)的建設(shè)性意見(jiàn)。見(jiàn)。(3) 信息應(yīng)該指出錯(cuò)誤可能導(dǎo)致哪些負(fù)面后果信息應(yīng)該指出錯(cuò)誤可能導(dǎo)致哪些負(fù)面后果(例如,例如,破壞數(shù)據(jù)文件破壞數(shù)據(jù)文件),以便
22、用戶檢查是否出現(xiàn)了這些問(wèn),以便用戶檢查是否出現(xiàn)了這些問(wèn)題,并在確實(shí)出現(xiàn)問(wèn)題時(shí)及時(shí)解決。題,并在確實(shí)出現(xiàn)問(wèn)題時(shí)及時(shí)解決。(4) 信息應(yīng)該伴隨著聽(tīng)覺(jué)上或視覺(jué)上的提示,例如,信息應(yīng)該伴隨著聽(tīng)覺(jué)上或視覺(jué)上的提示,例如,在顯示信息時(shí)同時(shí)發(fā)出警告鈴聲,或者信息用閃爍在顯示信息時(shí)同時(shí)發(fā)出警告鈴聲,或者信息用閃爍方式顯示,或者信息用明顯表示出錯(cuò)的顏色顯示。方式顯示,或者信息用明顯表示出錯(cuò)的顏色顯示。(5) 信息不能帶有指責(zé)色彩,也就是說(shuō),不能責(zé)怪信息不能帶有指責(zé)色彩,也就是說(shuō),不能責(zé)怪用戶。用戶。當(dāng)確實(shí)出現(xiàn)了問(wèn)題的時(shí)候,有效的出錯(cuò)信息能提高當(dāng)確實(shí)出現(xiàn)了問(wèn)題的時(shí)候,有效的出錯(cuò)信息能提高交互式系統(tǒng)的質(zhì)量,減輕用戶
23、的挫折感。交互式系統(tǒng)的質(zhì)量,減輕用戶的挫折感。4. 命令交互命令交互命令行曾經(jīng)是用戶和系統(tǒng)軟件交互的最常用的方式,命令行曾經(jīng)是用戶和系統(tǒng)軟件交互的最常用的方式,并且也曾經(jīng)廣泛地用于各種應(yīng)用軟件中?,F(xiàn)在,面并且也曾經(jīng)廣泛地用于各種應(yīng)用軟件中。現(xiàn)在,面向窗口的、點(diǎn)擊和拾取方式的界面已經(jīng)減少了用戶向窗口的、點(diǎn)擊和拾取方式的界面已經(jīng)減少了用戶對(duì)命令行的依賴,但是,許多高級(jí)用戶仍然偏愛(ài)面對(duì)命令行的依賴,但是,許多高級(jí)用戶仍然偏愛(ài)面向命令行的交互方式。在多數(shù)情況下,用戶既可以向命令行的交互方式。在多數(shù)情況下,用戶既可以從菜單中選擇軟件功能,也可以通過(guò)鍵盤命令序列從菜單中選擇軟件功能,也可以通過(guò)鍵盤命令序列
24、調(diào)用軟件功能。調(diào)用軟件功能。在提供命令交互方式時(shí),必須考慮下列設(shè)計(jì)問(wèn)題。在提供命令交互方式時(shí),必須考慮下列設(shè)計(jì)問(wèn)題。(1) 是否每個(gè)菜單選項(xiàng)都有對(duì)應(yīng)的命令是否每個(gè)菜單選項(xiàng)都有對(duì)應(yīng)的命令?(2) 采用何種命令形式采用何種命令形式?有有3種選擇:控制序列種選擇:控制序列(例如,例如,Ctrl+P),功能鍵和鍵入命令。,功能鍵和鍵入命令。(3) 學(xué)習(xí)和記憶命令的難度有多大學(xué)習(xí)和記憶命令的難度有多大?忘記了命令怎么忘記了命令怎么辦辦?(4) 用戶是否可以定制或縮寫命令用戶是否可以定制或縮寫命令?在越來(lái)越多的應(yīng)用軟件中,人機(jī)界面設(shè)計(jì)者都提供在越來(lái)越多的應(yīng)用軟件中,人機(jī)界面設(shè)計(jì)者都提供了了“命令宏機(jī)制命令
25、宏機(jī)制”,利用這種機(jī)制用戶可以用自己,利用這種機(jī)制用戶可以用自己定義的名字代表一個(gè)常用的命令序列。需要使用這定義的名字代表一個(gè)常用的命令序列。需要使用這個(gè)命令序列時(shí),用戶無(wú)須依次鍵入每個(gè)命令,只需個(gè)命令序列時(shí),用戶無(wú)須依次鍵入每個(gè)命令,只需輸入命令宏的名字就可以順序執(zhí)行它所代表的全部輸入命令宏的名字就可以順序執(zhí)行它所代表的全部命令。命令。在理想的情況下,所有應(yīng)用軟件都有一致的命令使在理想的情況下,所有應(yīng)用軟件都有一致的命令使用方法。如果在一個(gè)應(yīng)用軟件中命令用方法。如果在一個(gè)應(yīng)用軟件中命令Ctrl+D表示復(fù)表示復(fù)制一個(gè)圖形對(duì)象,而在另一個(gè)應(yīng)用軟件中制一個(gè)圖形對(duì)象,而在另一個(gè)應(yīng)用軟件中Ctrl+D
26、命命令的含義是刪除一個(gè)圖形對(duì)象,顯然會(huì)使用戶感到令的含義是刪除一個(gè)圖形對(duì)象,顯然會(huì)使用戶感到困惑,并且往往會(huì)導(dǎo)致用錯(cuò)命令。困惑,并且往往會(huì)導(dǎo)致用錯(cuò)命令。用戶界面設(shè)計(jì)是一個(gè)迭代的過(guò)程,也就是說(shuō),通常用戶界面設(shè)計(jì)是一個(gè)迭代的過(guò)程,也就是說(shuō),通常先創(chuàng)建設(shè)計(jì)模型,再用原型實(shí)現(xiàn)這個(gè)設(shè)計(jì)模型,并先創(chuàng)建設(shè)計(jì)模型,再用原型實(shí)現(xiàn)這個(gè)設(shè)計(jì)模型,并由用戶試用和評(píng)估,然后根據(jù)用戶意見(jiàn)進(jìn)行修改。由用戶試用和評(píng)估,然后根據(jù)用戶意見(jiàn)進(jìn)行修改。為了支持上述迭代過(guò)程,各種用于界面設(shè)計(jì)和原型為了支持上述迭代過(guò)程,各種用于界面設(shè)計(jì)和原型開(kāi)發(fā)的軟件工具應(yīng)運(yùn)而生。這些工具被稱為用戶界開(kāi)發(fā)的軟件工具應(yīng)運(yùn)而生。這些工具被稱為用戶界面工具箱
27、或用戶界面開(kāi)發(fā)系統(tǒng),它們?yōu)楹?jiǎn)化窗口、面工具箱或用戶界面開(kāi)發(fā)系統(tǒng),它們?yōu)楹?jiǎn)化窗口、菜單、設(shè)備交互、出錯(cuò)信息、命令及交互環(huán)境的許菜單、設(shè)備交互、出錯(cuò)信息、命令及交互環(huán)境的許多其他元素的創(chuàng)建,提供了各種例程或?qū)ο?。這些多其他元素的創(chuàng)建,提供了各種例程或?qū)ο?。這些工具所提供的功能,既可以用基于語(yǔ)言的方式也可工具所提供的功能,既可以用基于語(yǔ)言的方式也可以用基于圖形的方式來(lái)實(shí)現(xiàn)。以用基于圖形的方式來(lái)實(shí)現(xiàn)。6.2.2 設(shè)計(jì)過(guò)程設(shè)計(jì)過(guò)程一旦建立起用戶界面的原型,就必須對(duì)它進(jìn)行評(píng)估,一旦建立起用戶界面的原型,就必須對(duì)它進(jìn)行評(píng)估,以確定其是否滿足用戶的需求。評(píng)估可以是非正式以確定其是否滿足用戶的需求。評(píng)估可以是非
28、正式的,例如,用戶即興發(fā)表一些反饋意見(jiàn);評(píng)估也可的,例如,用戶即興發(fā)表一些反饋意見(jiàn);評(píng)估也可以十分正式,例如,運(yùn)用統(tǒng)計(jì)學(xué)方法評(píng)價(jià)全體終端以十分正式,例如,運(yùn)用統(tǒng)計(jì)學(xué)方法評(píng)價(jià)全體終端用戶填寫的調(diào)查表。用戶填寫的調(diào)查表。用戶界面的評(píng)估周期如下所述:完成初步設(shè)計(jì)之后用戶界面的評(píng)估周期如下所述:完成初步設(shè)計(jì)之后就創(chuàng)建第一級(jí)原型;用戶試用并評(píng)估該原型,直接就創(chuàng)建第一級(jí)原型;用戶試用并評(píng)估該原型,直接向設(shè)計(jì)者表述對(duì)界面的評(píng)價(jià);設(shè)計(jì)者根據(jù)用戶意見(jiàn)向設(shè)計(jì)者表述對(duì)界面的評(píng)價(jià);設(shè)計(jì)者根據(jù)用戶意見(jiàn)修改設(shè)計(jì)并實(shí)現(xiàn)下一級(jí)原型。上述評(píng)估過(guò)程持續(xù)進(jìn)修改設(shè)計(jì)并實(shí)現(xiàn)下一級(jí)原型。上述評(píng)估過(guò)程持續(xù)進(jìn)行下去,直到用戶感到滿意,不需要
29、再修改界面設(shè)行下去,直到用戶感到滿意,不需要再修改界面設(shè)計(jì)時(shí)為止。計(jì)時(shí)為止。當(dāng)然,也可以在創(chuàng)建原型之前就對(duì)用戶界面的設(shè)計(jì)當(dāng)然,也可以在創(chuàng)建原型之前就對(duì)用戶界面的設(shè)計(jì)質(zhì)量進(jìn)行初步評(píng)估。如果能及早發(fā)現(xiàn)并改正潛在的質(zhì)量進(jìn)行初步評(píng)估。如果能及早發(fā)現(xiàn)并改正潛在的問(wèn)題,就可以減少評(píng)估周期的執(zhí)行次數(shù),從而縮短問(wèn)題,就可以減少評(píng)估周期的執(zhí)行次數(shù),從而縮短軟件的開(kāi)發(fā)時(shí)間。在創(chuàng)建了用戶界面的設(shè)計(jì)模型之軟件的開(kāi)發(fā)時(shí)間。在創(chuàng)建了用戶界面的設(shè)計(jì)模型之后,可以運(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ī)格說(shuō)明書的長(zhǎng)度和復(fù)雜程度,系統(tǒng)及其界面的規(guī)格說(shuō)明書的長(zhǎng)度和復(fù)
30、雜程度,預(yù)示了用戶學(xué)習(xí)使用該系統(tǒng)所需要的工作量。預(yù)示了用戶學(xué)習(xí)使用該系統(tǒng)所需要的工作量。(2) 命令或動(dòng)作的數(shù)量、命令的平均參數(shù)個(gè)數(shù)或動(dòng)命令或動(dòng)作的數(shù)量、命令的平均參數(shù)個(gè)數(shù)或動(dòng)作中單個(gè)操作的個(gè)數(shù),預(yù)示了系統(tǒng)的交互時(shí)間和總作中單個(gè)操作的個(gè)數(shù),預(yù)示了系統(tǒng)的交互時(shí)間和總體效率。體效率。(3) 設(shè)計(jì)模型中包含的動(dòng)作、命令和系統(tǒng)狀態(tài)的數(shù)設(shè)計(jì)模型中包含的動(dòng)作、命令和系統(tǒng)狀態(tài)的數(shù)量,預(yù)示了用戶學(xué)習(xí)使用該系統(tǒng)時(shí)需要記憶的內(nèi)容量,預(yù)示了用戶學(xué)習(xí)使用該系統(tǒng)時(shí)需要記憶的內(nèi)容的多少。的多少。(4) 界面風(fēng)格、幫助設(shè)施和出錯(cuò)處理協(xié)議,預(yù)示了界面風(fēng)格、幫助設(shè)施和出錯(cuò)處理協(xié)議,預(yù)示了界面的復(fù)雜程度及用戶接受該界面的程度。界
31、面的復(fù)雜程度及用戶接受該界面的程度。用戶界面設(shè)計(jì)主要依靠設(shè)計(jì)者的經(jīng)驗(yàn)。總結(jié)眾多設(shè)用戶界面設(shè)計(jì)主要依靠設(shè)計(jì)者的經(jīng)驗(yàn)。總結(jié)眾多設(shè)計(jì)者的經(jīng)驗(yàn)得出的設(shè)計(jì)指南,有助于設(shè)計(jì)者設(shè)計(jì)出計(jì)者的經(jīng)驗(yàn)得出的設(shè)計(jì)指南,有助于設(shè)計(jì)者設(shè)計(jì)出友好、高效的人機(jī)界面。下面介紹友好、高效的人機(jī)界面。下面介紹3類人機(jī)界面設(shè)類人機(jī)界面設(shè)計(jì)指南。計(jì)指南。1. 一般交互指南一般交互指南一般交互指南涉及信息顯示、數(shù)據(jù)輸入和系統(tǒng)整體一般交互指南涉及信息顯示、數(shù)據(jù)輸入和系統(tǒng)整體控制,因此,這類指南是全局性的,忽略它們將承控制,因此,這類指南是全局性的,忽略它們將承擔(dān)較大風(fēng)險(xiǎn)。下面講述一般交互指南。擔(dān)較大風(fēng)險(xiǎn)。下面講述一般交互指南。6.2.3
32、人機(jī)界面設(shè)計(jì)指南人機(jī)界面設(shè)計(jì)指南(1) 保持一致性。應(yīng)該為人機(jī)界面中的菜單選擇、保持一致性。應(yīng)該為人機(jī)界面中的菜單選擇、命令輸入、數(shù)據(jù)顯示以及眾多的其他功能,使用一命令輸入、數(shù)據(jù)顯示以及眾多的其他功能,使用一致的格式。致的格式。(2) 提供有意義的反饋。應(yīng)向用戶提供視覺(jué)的和聽(tīng)提供有意義的反饋。應(yīng)向用戶提供視覺(jué)的和聽(tīng)覺(jué)的反饋,以保證在用戶和系統(tǒng)之間建立雙向通信。覺(jué)的反饋,以保證在用戶和系統(tǒng)之間建立雙向通信。(3) 在執(zhí)行有較大破壞性的動(dòng)作之前要求用戶確認(rèn)。在執(zhí)行有較大破壞性的動(dòng)作之前要求用戶確認(rèn)。如果用戶要?jiǎng)h除一個(gè)文件,或覆蓋一些重要信息,如果用戶要?jiǎng)h除一個(gè)文件,或覆蓋一些重要信息,或終止一個(gè)程
33、序的運(yùn)行,應(yīng)該給出或終止一個(gè)程序的運(yùn)行,應(yīng)該給出“您是否確實(shí)您是否確實(shí)要要”的信息,以請(qǐng)求用戶確認(rèn)他的命令。的信息,以請(qǐng)求用戶確認(rèn)他的命令。(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ù)字或標(biāo)識(shí)符。應(yīng)該盡量減少記憶
34、量。數(shù)字或標(biāo)識(shí)符。應(yīng)該盡量減少記憶量。(6) 提高對(duì)話、移動(dòng)和思考的效率。應(yīng)該盡量減少提高對(duì)話、移動(dòng)和思考的效率。應(yīng)該盡量減少用戶擊鍵的次數(shù),設(shè)計(jì)屏幕布局時(shí)應(yīng)該考慮盡量減用戶擊鍵的次數(shù),設(shè)計(jì)屏幕布局時(shí)應(yīng)該考慮盡量減少鼠標(biāo)移動(dòng)的距離,應(yīng)該盡量避免出現(xiàn)用戶問(wèn)少鼠標(biāo)移動(dòng)的距離,應(yīng)該盡量避免出現(xiàn)用戶問(wèn)“這這是什么意思是什么意思?”的情況。的情況。(7) 允許犯錯(cuò)誤。系統(tǒng)應(yīng)該能保護(hù)自己不受嚴(yán)重錯(cuò)允許犯錯(cuò)誤。系統(tǒng)應(yīng)該能保護(hù)自己不受嚴(yán)重錯(cuò)誤的破壞。誤的破壞。(8) 按功能對(duì)動(dòng)作分類,并據(jù)此設(shè)計(jì)屏幕布局。下按功能對(duì)動(dòng)作分類,并據(jù)此設(shè)計(jì)屏幕布局。下拉菜單的一個(gè)主要優(yōu)點(diǎn)就是能按動(dòng)作類型組織命令。拉菜單的一個(gè)主要優(yōu)
35、點(diǎn)就是能按動(dòng)作類型組織命令。實(shí)際上,設(shè)計(jì)者應(yīng)該盡力提高命令和動(dòng)作組織的實(shí)際上,設(shè)計(jì)者應(yīng)該盡力提高命令和動(dòng)作組織的“內(nèi)聚性內(nèi)聚性”。(9) 提供對(duì)用戶工作內(nèi)容敏感的幫助設(shè)施提供對(duì)用戶工作內(nèi)容敏感的幫助設(shè)施(參見(jiàn)參見(jiàn)6.2.1節(jié)節(jié))。(10) 用簡(jiǎn)單動(dòng)詞或動(dòng)詞短語(yǔ)作為命令名。過(guò)長(zhǎng)的命用簡(jiǎn)單動(dòng)詞或動(dòng)詞短語(yǔ)作為命令名。過(guò)長(zhǎng)的命令名難于識(shí)別和記憶,也會(huì)占用過(guò)多的菜單空間。令名難于識(shí)別和記憶,也會(huì)占用過(guò)多的菜單空間。2. 信息顯示指南信息顯示指南如果人機(jī)界面顯示的信息是不完整的、含糊的或難如果人機(jī)界面顯示的信息是不完整的、含糊的或難于理解的,則該應(yīng)用系統(tǒng)顯然不能滿足用戶的需求。于理解的,則該應(yīng)用系統(tǒng)顯然不
36、能滿足用戶的需求。可以用多種不同方式可以用多種不同方式“顯示顯示”信息:用文字、圖形信息:用文字、圖形和聲音;按位置、移動(dòng)和大?。皇褂妙伾?、分辨率和聲音;按位置、移動(dòng)和大小;使用顏色、分辨率和省略。下面是關(guān)于信息顯示的設(shè)計(jì)指南。和省略。下面是關(guān)于信息顯示的設(shè)計(jì)指南。(1) 只顯示與當(dāng)前工作內(nèi)容有關(guān)的信息。用戶在獲只顯示與當(dāng)前工作內(nèi)容有關(guān)的信息。用戶在獲得有關(guān)系統(tǒng)的特定功能的信息時(shí),不必看到與之無(wú)得有關(guān)系統(tǒng)的特定功能的信息時(shí),不必看到與之無(wú)關(guān)的數(shù)據(jù)、菜單和圖形。關(guān)的數(shù)據(jù)、菜單和圖形。(2) 不要用數(shù)據(jù)淹沒(méi)用戶,應(yīng)該用便于用戶迅速吸不要用數(shù)據(jù)淹沒(méi)用戶,應(yīng)該用便于用戶迅速吸取信息的方式來(lái)表示數(shù)據(jù)。例
37、如,可以用圖形或圖取信息的方式來(lái)表示數(shù)據(jù)。例如,可以用圖形或圖表來(lái)取代龐大的表格。表來(lái)取代龐大的表格。(3) 使用一致的標(biāo)記、標(biāo)準(zhǔn)的縮寫和可預(yù)知的顏色。使用一致的標(biāo)記、標(biāo)準(zhǔn)的縮寫和可預(yù)知的顏色。顯示的含義應(yīng)該非常明確,用戶無(wú)須參照其他信息顯示的含義應(yīng)該非常明確,用戶無(wú)須參照其他信息源就能理解。源就能理解。(4) 允許用戶保持可視化的語(yǔ)境。如果對(duì)所顯示的允許用戶保持可視化的語(yǔ)境。如果對(duì)所顯示的圖形進(jìn)行縮放,原始的圖像應(yīng)該一直顯示著圖形進(jìn)行縮放,原始的圖像應(yīng)該一直顯示著(以縮以縮小的形式放在顯示屏的一角小的形式放在顯示屏的一角),以使用戶知道當(dāng)前,以使用戶知道當(dāng)前看到的圖像部分在原圖中所處的相對(duì)位
38、置。看到的圖像部分在原圖中所處的相對(duì)位置。(5) 產(chǎn)生有意義的出錯(cuò)信息產(chǎn)生有意義的出錯(cuò)信息(參見(jiàn)參見(jiàn)6.2.1節(jié)節(jié))。(6) 使用大小寫、縮進(jìn)和文本分組以幫助理解。人使用大小寫、縮進(jìn)和文本分組以幫助理解。人機(jī)界面顯示的信息大部分是文字,文字的布局和形機(jī)界面顯示的信息大部分是文字,文字的布局和形式對(duì)用戶從中提取信息的難易程度有很大影響。式對(duì)用戶從中提取信息的難易程度有很大影響。(7) 使用窗口分隔不同類型的信息。利用窗口用戶使用窗口分隔不同類型的信息。利用窗口用戶能夠方便地能夠方便地“保存保存”多種不同類型的信息。多種不同類型的信息。(8) 使用使用“模擬模擬”顯示方式表示信息,以使信息更顯示方
39、式表示信息,以使信息更容易被用戶提取。例如,顯示煉油廠儲(chǔ)油罐的壓力容易被用戶提取。例如,顯示煉油廠儲(chǔ)油罐的壓力時(shí),如果簡(jiǎn)單地用數(shù)字表示壓力,則不易引起用戶時(shí),如果簡(jiǎn)單地用數(shù)字表示壓力,則不易引起用戶注意。但是,如果用類似溫度計(jì)的形式來(lái)表示壓力,注意。但是,如果用類似溫度計(jì)的形式來(lái)表示壓力,用垂直移動(dòng)和顏色變化來(lái)指示危險(xiǎn)的壓力狀況,就用垂直移動(dòng)和顏色變化來(lái)指示危險(xiǎn)的壓力狀況,就容易引起用戶的警覺(jué),因?yàn)檫@樣做為用戶提供了絕容易引起用戶的警覺(jué),因?yàn)檫@樣做為用戶提供了絕對(duì)和相對(duì)兩方面的信息。對(duì)和相對(duì)兩方面的信息。(9) 高效率地使用顯示屏。當(dāng)使用多窗口時(shí),應(yīng)該高效率地使用顯示屏。當(dāng)使用多窗口時(shí),應(yīng)該有
40、足夠的空間使得每個(gè)窗口至少都能顯示出一部分。有足夠的空間使得每個(gè)窗口至少都能顯示出一部分。此外,屏幕大小應(yīng)該選得和應(yīng)用系統(tǒng)的類型相配套此外,屏幕大小應(yīng)該選得和應(yīng)用系統(tǒng)的類型相配套(這實(shí)際上是一個(gè)系統(tǒng)工程問(wèn)題這實(shí)際上是一個(gè)系統(tǒng)工程問(wèn)題)。3. 數(shù)據(jù)輸入指南數(shù)據(jù)輸入指南用戶的大部分時(shí)間用在選擇命令、鍵入數(shù)據(jù)和向系用戶的大部分時(shí)間用在選擇命令、鍵入數(shù)據(jù)和向系統(tǒng)提供輸入。在許多應(yīng)用系統(tǒng)中,鍵盤仍然是主要統(tǒng)提供輸入。在許多應(yīng)用系統(tǒng)中,鍵盤仍然是主要的輸入介質(zhì),但是,鼠標(biāo)、數(shù)字化儀和語(yǔ)音識(shí)別系的輸入介質(zhì),但是,鼠標(biāo)、數(shù)字化儀和語(yǔ)音識(shí)別系統(tǒng)正迅速地成為重要的輸入手段。下面是關(guān)于數(shù)據(jù)統(tǒng)正迅速地成為重要的輸入手
41、段。下面是關(guān)于數(shù)據(jù)輸入的設(shè)計(jì)指南。輸入的設(shè)計(jì)指南。(1) 盡量減少用戶的輸入動(dòng)作。最重要的是減少擊盡量減少用戶的輸入動(dòng)作。最重要的是減少擊鍵次數(shù),這可以用下列方法實(shí)現(xiàn):用鼠標(biāo)從預(yù)定義鍵次數(shù),這可以用下列方法實(shí)現(xiàn):用鼠標(biāo)從預(yù)定義的一組輸入中選一個(gè);用的一組輸入中選一個(gè);用“滑動(dòng)標(biāo)尺滑動(dòng)標(biāo)尺”在給定的值在給定的值域中指定輸入值;利用宏把一次擊鍵轉(zhuǎn)變成更復(fù)雜域中指定輸入值;利用宏把一次擊鍵轉(zhuǎn)變成更復(fù)雜的輸入數(shù)據(jù)集合。的輸入數(shù)據(jù)集合。(2) 保持信息顯示和數(shù)據(jù)輸入之間的一致性。顯示保持信息顯示和數(shù)據(jù)輸入之間的一致性。顯示的視覺(jué)特征應(yīng)該與輸入域一致。的視覺(jué)特征應(yīng)該與輸入域一致。(3) 允許用戶自定義輸入
42、。專家級(jí)的用戶可能希望允許用戶自定義輸入。專家級(jí)的用戶可能希望定義自己專用的命令或略去某些類型的警告信息和定義自己專用的命令或略去某些類型的警告信息和動(dòng)作確認(rèn),人機(jī)界面應(yīng)該為用戶提供這樣做的機(jī)制。動(dòng)作確認(rèn),人機(jī)界面應(yīng)該為用戶提供這樣做的機(jī)制。(4) 交互應(yīng)該是靈活的,并且可調(diào)整成用戶最喜歡交互應(yīng)該是靈活的,并且可調(diào)整成用戶最喜歡的輸入方式。用戶類型與喜好的輸入方式有關(guān),例的輸入方式。用戶類型與喜好的輸入方式有關(guān),例如,秘書可能非常喜歡鍵盤輸入,而經(jīng)理可能更喜如,秘書可能非常喜歡鍵盤輸入,而經(jīng)理可能更喜歡使用鼠標(biāo)之類的點(diǎn)擊設(shè)備。歡使用鼠標(biāo)之類的點(diǎn)擊設(shè)備。(5) 使在當(dāng)前動(dòng)作語(yǔ)境中不適用的命令不起
43、作用。使在當(dāng)前動(dòng)作語(yǔ)境中不適用的命令不起作用。這可使得用戶不去做那些肯定會(huì)導(dǎo)致錯(cuò)誤的動(dòng)作。這可使得用戶不去做那些肯定會(huì)導(dǎo)致錯(cuò)誤的動(dòng)作。(6) 讓用戶控制交互流。用戶應(yīng)該能夠跳過(guò)不必要讓用戶控制交互流。用戶應(yīng)該能夠跳過(guò)不必要的動(dòng)作,改變所需做的動(dòng)作的順序的動(dòng)作,改變所需做的動(dòng)作的順序(在應(yīng)用環(huán)境允在應(yīng)用環(huán)境允許的前提下許的前提下),以及在不退出程序的情況下從錯(cuò)誤,以及在不退出程序的情況下從錯(cuò)誤狀態(tài)中恢復(fù)正常。狀態(tài)中恢復(fù)正常。(7) 對(duì)所有輸入動(dòng)作都提供幫助對(duì)所有輸入動(dòng)作都提供幫助(參見(jiàn)參見(jiàn)6.2.1節(jié)節(jié))。(8) 消除冗余的輸入。除非可能發(fā)生誤解,否則不消除冗余的輸入。除非可能發(fā)生誤解,否則不要
44、要求用戶指定輸入數(shù)據(jù)的單位;盡可能提供默認(rèn)要要求用戶指定輸入數(shù)據(jù)的單位;盡可能提供默認(rèn)值;絕對(duì)不要要求用戶提供程序可以自動(dòng)獲得或計(jì)值;絕對(duì)不要要求用戶提供程序可以自動(dòng)獲得或計(jì)算出來(lái)的信息。算出來(lái)的信息。程序流程圖又稱為程序框圖,它是歷史最悠久、使程序流程圖又稱為程序框圖,它是歷史最悠久、使用最廣泛的描述過(guò)程設(shè)計(jì)的方法,然而它也是用得用最廣泛的描述過(guò)程設(shè)計(jì)的方法,然而它也是用得最混亂的一種方法。最混亂的一種方法。在在6.1節(jié)中已經(jīng)用程序流程圖描繪了一些常用的控節(jié)中已經(jīng)用程序流程圖描繪了一些常用的控制結(jié)構(gòu),相信讀者對(duì)程序流程圖中使用的基本符號(hào)制結(jié)構(gòu),相信讀者對(duì)程序流程圖中使用的基本符號(hào)已經(jīng)有了一些
45、了解。圖已經(jīng)有了一些了解。圖6.3(見(jiàn)書(見(jiàn)書115頁(yè))中列出了頁(yè))中列出了程序流程圖中使用的各種符號(hào)。程序流程圖中使用的各種符號(hào)。6.3 過(guò)程設(shè)計(jì)的工具過(guò)程設(shè)計(jì)的工具 6.3.1 程序流程圖程序流程圖從從20世紀(jì)世紀(jì)40年代末到年代末到70年代中期,程序流程圖一直年代中期,程序流程圖一直是軟件設(shè)計(jì)的主要工具。它的主要優(yōu)點(diǎn)是對(duì)控制流是軟件設(shè)計(jì)的主要工具。它的主要優(yōu)點(diǎn)是對(duì)控制流程的描繪很直觀,便于初學(xué)者掌握。由于程序流程程的描繪很直觀,便于初學(xué)者掌握。由于程序流程圖歷史悠久,為最廣泛的人所熟悉,盡管它有種種圖歷史悠久,為最廣泛的人所熟悉,盡管它有種種缺點(diǎn),許多人建議停止使用它,但至今仍在廣泛使缺
46、點(diǎn),許多人建議停止使用它,但至今仍在廣泛使用著。不過(guò)總的趨勢(shì)是越來(lái)越多的人不再使用程序用著。不過(guò)總的趨勢(shì)是越來(lái)越多的人不再使用程序流程圖了。流程圖了。程序流程圖的主要缺點(diǎn)如下:程序流程圖的主要缺點(diǎn)如下:(1) 程序流程圖本質(zhì)上不是逐步求精的好工具,它程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過(guò)早地考慮程序的控制流程,而不去考誘使程序員過(guò)早地考慮程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。慮程序的全局結(jié)構(gòu)。(2) 程序流程圖中用箭頭代表控制流,因此程序員程序流程圖中用箭頭代表控制流,因此程序員不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計(jì)的精神,不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計(jì)的精神,隨意轉(zhuǎn)
47、移控制。隨意轉(zhuǎn)移控制。(3) 程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。出于要有一種不允許違背結(jié)構(gòu)程序設(shè)計(jì)精神的圖形出于要有一種不允許違背結(jié)構(gòu)程序設(shè)計(jì)精神的圖形工具的考慮,工具的考慮,Nassi和和Shneiderman提出了盒圖,又提出了盒圖,又稱為稱為N-S圖。它有下述特點(diǎn):圖。它有下述特點(diǎn):(1) 功能域功能域(即,一個(gè)特定控制結(jié)構(gòu)的作用域即,一個(gè)特定控制結(jié)構(gòu)的作用域)明確,明確,可以從盒圖上一眼就看出來(lái)??梢詮暮袌D上一眼就看出來(lái)。(2) 不可能任意轉(zhuǎn)移控制。不可能任意轉(zhuǎn)移控制。(3) 很容易確定局部和全程數(shù)據(jù)的作用域。很容易確定局部和全程數(shù)據(jù)的作用域。(4) 很容易表現(xiàn)嵌
48、套關(guān)系,也可以表示模塊的層次很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。結(jié)構(gòu)。6.3.2 盒圖盒圖(N-S圖圖)圖圖6.4給出了結(jié)構(gòu)化控制結(jié)構(gòu)的盒圖表示,也給出給出了結(jié)構(gòu)化控制結(jié)構(gòu)的盒圖表示,也給出了調(diào)用子程序的盒圖表示方法。了調(diào)用子程序的盒圖表示方法。盒圖沒(méi)有箭頭,因此不允許隨意轉(zhuǎn)移控制。堅(jiān)持使盒圖沒(méi)有箭頭,因此不允許隨意轉(zhuǎn)移控制。堅(jiān)持使用盒圖作為詳細(xì)設(shè)計(jì)的工具,可以使程序員逐步養(yǎng)用盒圖作為詳細(xì)設(shè)計(jì)的工具,可以使程序員逐步養(yǎng)成用結(jié)構(gòu)化的方式思考問(wèn)題和解決問(wèn)題的習(xí)慣。成用結(jié)構(gòu)化的方式思考問(wèn)題和解決問(wèn)題的習(xí)慣。圖圖6.4 盒圖的基本符號(hào)盒圖的基本符號(hào)PAD是問(wèn)題分析圖是問(wèn)題分析圖(proble
49、m analysis diagram)的英的英文縮寫,自文縮寫,自1973年由日本日立公司發(fā)明以后,已得年由日本日立公司發(fā)明以后,已得到一定程度的推廣。它用二維樹(shù)形結(jié)構(gòu)的圖來(lái)表示到一定程度的推廣。它用二維樹(shù)形結(jié)構(gòu)的圖來(lái)表示程序的控制流,將這種圖翻譯成程序代碼比較容易。程序的控制流,將這種圖翻譯成程序代碼比較容易。圖圖6.5給出給出PAD圖的基本符號(hào)。圖的基本符號(hào)。PAD圖的主要優(yōu)點(diǎn)如下:圖的主要優(yōu)點(diǎn)如下:(1) 使用表示結(jié)構(gòu)化控制結(jié)構(gòu)的使用表示結(jié)構(gòu)化控制結(jié)構(gòu)的PAD符號(hào)所設(shè)計(jì)出符號(hào)所設(shè)計(jì)出來(lái)的程序必然是結(jié)構(gòu)化程序。來(lái)的程序必然是結(jié)構(gòu)化程序。6.3.3 PAD圖圖圖圖6.5 PAD圖的基本符號(hào)圖
50、的基本符號(hào)(2) PAD圖所描繪的程序結(jié)構(gòu)十分清晰。圖中最左圖所描繪的程序結(jié)構(gòu)十分清晰。圖中最左面的豎線是程序的主線,即第一層結(jié)構(gòu)。隨著程序面的豎線是程序的主線,即第一層結(jié)構(gòu)。隨著程序?qū)哟蔚脑黾?,層次的增加,PAD圖逐漸向右延伸,每增加一個(gè)層圖逐漸向右延伸,每增加一個(gè)層次,圖形向右擴(kuò)展一條豎線。次,圖形向右擴(kuò)展一條豎線。PAD圖中豎線的總條圖中豎線的總條數(shù)就是程序的層次數(shù)。數(shù)就是程序的層次數(shù)。(3) 用用PAD圖表現(xiàn)程序邏輯,易讀、易懂、易記。圖表現(xiàn)程序邏輯,易讀、易懂、易記。PAD圖是二維樹(shù)形結(jié)構(gòu)的圖形,程序從圖中最左豎圖是二維樹(shù)形結(jié)構(gòu)的圖形,程序從圖中最左豎線上端的結(jié)點(diǎn)開(kāi)始執(zhí)行,自上而下,
51、從左向右順序線上端的結(jié)點(diǎn)開(kāi)始執(zhí)行,自上而下,從左向右順序執(zhí)行,遍歷所有結(jié)點(diǎn)。執(zhí)行,遍歷所有結(jié)點(diǎn)。(4) 容易將容易將PAD圖轉(zhuǎn)換成高級(jí)語(yǔ)言源程序,這種轉(zhuǎn)圖轉(zhuǎn)換成高級(jí)語(yǔ)言源程序,這種轉(zhuǎn)換可用軟件工具自動(dòng)完成,從而可省去人工編碼的換可用軟件工具自動(dòng)完成,從而可省去人工編碼的工作,有利于提高軟件可靠性和軟件生產(chǎn)率。工作,有利于提高軟件可靠性和軟件生產(chǎn)率。(5) 即可用于表示程序邏輯,也可用于描繪數(shù)據(jù)結(jié)即可用于表示程序邏輯,也可用于描繪數(shù)據(jù)結(jié)構(gòu)。構(gòu)。(6) PAD圖的符號(hào)支持自頂向下、逐步求精方法的圖的符號(hào)支持自頂向下、逐步求精方法的使用。開(kāi)始時(shí)設(shè)計(jì)者可以定義一個(gè)抽象的程序,隨使用。開(kāi)始時(shí)設(shè)計(jì)者可以定
52、義一個(gè)抽象的程序,隨著設(shè)計(jì)工作的深入而使用著設(shè)計(jì)工作的深入而使用def符號(hào)逐步增加細(xì)節(jié),符號(hào)逐步增加細(xì)節(jié),直至完成詳細(xì)設(shè)計(jì),如圖直至完成詳細(xì)設(shè)計(jì),如圖6.6所示。所示。PAD圖是面向高級(jí)程序設(shè)計(jì)語(yǔ)言的,為圖是面向高級(jí)程序設(shè)計(jì)語(yǔ)言的,為FORTRAN,COBOL和和PASCAL等每種常用的高級(jí)程序設(shè)計(jì)語(yǔ)等每種常用的高級(jí)程序設(shè)計(jì)語(yǔ)言都提供了一整套相應(yīng)的圖形符號(hào)。由于每種控制言都提供了一整套相應(yīng)的圖形符號(hào)。由于每種控制語(yǔ)句都有一個(gè)圖形符號(hào)與之對(duì)應(yīng),顯然將語(yǔ)句都有一個(gè)圖形符號(hào)與之對(duì)應(yīng),顯然將PAD圖轉(zhuǎn)圖轉(zhuǎn)換成與之對(duì)應(yīng)的高級(jí)語(yǔ)言程序比較容易。換成與之對(duì)應(yīng)的高級(jí)語(yǔ)言程序比較容易。圖圖6.6 使用使用PAD
53、圖提供的定義功能圖提供的定義功能來(lái)逐步求精的例子來(lái)逐步求精的例子當(dāng)算法中包含多重嵌套的條件選擇時(shí),用程序流程當(dāng)算法中包含多重嵌套的條件選擇時(shí),用程序流程圖、盒圖、圖、盒圖、PAD圖或后面即將介紹的過(guò)程設(shè)計(jì)語(yǔ)言圖或后面即將介紹的過(guò)程設(shè)計(jì)語(yǔ)言(PDL)都不易清楚地描述。然而判定表卻能夠清晰都不易清楚地描述。然而判定表卻能夠清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系。系。一張判定表由一張判定表由4部分組成,左上部列出所有條件,部分組成,左上部列出所有條件,左下部是所有可能做的動(dòng)作,右上部是表示各種條左下部是所有可能做的動(dòng)作,右上部是表示各種條件組合
54、的一個(gè)矩陣,右下部是和每種條件組合相對(duì)件組合的一個(gè)矩陣,右下部是和每種條件組合相對(duì)應(yīng)的動(dòng)作。判定表右半部的每一列實(shí)質(zhì)上是一條規(guī)應(yīng)的動(dòng)作。判定表右半部的每一列實(shí)質(zhì)上是一條規(guī)則,規(guī)定了與特定的條件組合相對(duì)應(yīng)的動(dòng)作。則,規(guī)定了與特定的條件組合相對(duì)應(yīng)的動(dòng)作。6.3.4 判定表判定表下面以行李托運(yùn)費(fèi)的算法為例說(shuō)明判定表的組織方下面以行李托運(yùn)費(fèi)的算法為例說(shuō)明判定表的組織方法。假設(shè)某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重量法。假設(shè)某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重量不超過(guò)不超過(guò)30kg的行李。當(dāng)行李重量超過(guò)的行李。當(dāng)行李重量超過(guò)30kg時(shí),對(duì)頭時(shí),對(duì)頭等艙的國(guó)內(nèi)乘客超重部分每公斤收費(fèi)等艙的國(guó)內(nèi)乘客超重部分每公斤收
55、費(fèi)4元,對(duì)其他元,對(duì)其他艙的國(guó)內(nèi)乘客超重部分每公斤收費(fèi)艙的國(guó)內(nèi)乘客超重部分每公斤收費(fèi)6元,對(duì)外國(guó)乘元,對(duì)外國(guó)乘客超重部分每公斤收費(fèi)比國(guó)內(nèi)乘客多一倍,對(duì)殘疾客超重部分每公斤收費(fèi)比國(guó)內(nèi)乘客多一倍,對(duì)殘疾乘客超重部分每公斤收費(fèi)比正常乘客少一半。用判乘客超重部分每公斤收費(fèi)比正常乘客少一半。用判定表可以清楚地表示與上述每種條件組合相對(duì)應(yīng)的定表可以清楚地表示與上述每種條件組合相對(duì)應(yīng)的計(jì)算行李費(fèi)的算法,如表計(jì)算行李費(fèi)的算法,如表6.1(見(jiàn)書(見(jiàn)書118頁(yè))所示。頁(yè))所示。從上面這個(gè)例子可以看出,判定表能夠簡(jiǎn)潔而又無(wú)從上面這個(gè)例子可以看出,判定表能夠簡(jiǎn)潔而又無(wú)歧義地描述處理規(guī)則。當(dāng)把判定表和布爾代數(shù)或卡歧義地
56、描述處理規(guī)則。當(dāng)把判定表和布爾代數(shù)或卡諾圖結(jié)合起來(lái)使用時(shí),可以對(duì)判定表進(jìn)行校驗(yàn)或化諾圖結(jié)合起來(lái)使用時(shí),可以對(duì)判定表進(jìn)行校驗(yàn)或化簡(jiǎn)。但是,判定表并不適于作為一種通用的設(shè)計(jì)工簡(jiǎn)。但是,判定表并不適于作為一種通用的設(shè)計(jì)工具,沒(méi)有一種簡(jiǎn)單的方法使它能同時(shí)清晰地表示順具,沒(méi)有一種簡(jiǎn)單的方法使它能同時(shí)清晰地表示順序和重復(fù)等處理特性。序和重復(fù)等處理特性。判定表雖然能清晰地表示復(fù)雜的條件組合與應(yīng)做的判定表雖然能清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系,但其含義卻不是一眼就能看動(dòng)作之間的對(duì)應(yīng)關(guān)系,但其含義卻不是一眼就能看出來(lái)的,初次接觸這種工具的人理解它需要有一個(gè)出來(lái)的,初次接觸這種工具的人理解它需要
57、有一個(gè)簡(jiǎn)短的學(xué)習(xí)過(guò)程。此外,當(dāng)數(shù)據(jù)元素的值多于兩個(gè)簡(jiǎn)短的學(xué)習(xí)過(guò)程。此外,當(dāng)數(shù)據(jù)元素的值多于兩個(gè)時(shí)時(shí)(例如,例如,6.3.4例子中假設(shè)對(duì)機(jī)票需細(xì)分為頭等艙、例子中假設(shè)對(duì)機(jī)票需細(xì)分為頭等艙、二等艙和經(jīng)濟(jì)艙等多種級(jí)別時(shí)二等艙和經(jīng)濟(jì)艙等多種級(jí)別時(shí)),判定表的簡(jiǎn)潔程,判定表的簡(jiǎn)潔程度也將下降。度也將下降。6.3.5 判定樹(shù)判定樹(shù)判定樹(shù)是判定表的變種,也能清晰地表示復(fù)雜的條判定樹(shù)是判定表的變種,也能清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系。判定樹(shù)的優(yōu)件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系。判定樹(shù)的優(yōu)點(diǎn)在于,它的形式簡(jiǎn)單到不需任何說(shuō)明,一眼就可點(diǎn)在于,它的形式簡(jiǎn)單到不需任何說(shuō)明,一眼就可以看出其含義,因
58、此易于掌握和使用。多年來(lái)判定以看出其含義,因此易于掌握和使用。多年來(lái)判定樹(shù)一直受到人們的重視,是一種比較常用的系統(tǒng)分樹(shù)一直受到人們的重視,是一種比較常用的系統(tǒng)分析和設(shè)計(jì)的工具。圖析和設(shè)計(jì)的工具。圖6.7是和表是和表6.1等價(jià)的判定樹(shù)。等價(jià)的判定樹(shù)。圖圖6.7 用判定樹(shù)表示計(jì)算行李費(fèi)的算法用判定樹(shù)表示計(jì)算行李費(fèi)的算法過(guò)程設(shè)計(jì)語(yǔ)言(過(guò)程設(shè)計(jì)語(yǔ)言(PDL)也稱為偽碼,這是一個(gè)籠統(tǒng))也稱為偽碼,這是一個(gè)籠統(tǒng)的名稱,現(xiàn)在有許多種不同的過(guò)程設(shè)計(jì)語(yǔ)言在使用。的名稱,現(xiàn)在有許多種不同的過(guò)程設(shè)計(jì)語(yǔ)言在使用。它是用正文形式表示數(shù)據(jù)和處理過(guò)程的設(shè)計(jì)工具。它是用正文形式表示數(shù)據(jù)和處理過(guò)程的設(shè)計(jì)工具。PDL具有嚴(yán)格的關(guān)
59、鍵字外部語(yǔ)法,用于定義控制結(jié)具有嚴(yán)格的關(guān)鍵字外部語(yǔ)法,用于定義控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu);另一方面,構(gòu)和數(shù)據(jù)結(jié)構(gòu);另一方面,PDL表示實(shí)際操作和條表示實(shí)際操作和條件的內(nèi)部語(yǔ)法通常又是靈活自由的,可以適應(yīng)各種件的內(nèi)部語(yǔ)法通常又是靈活自由的,可以適應(yīng)各種工程項(xiàng)目的需要。因此,一般說(shuō)來(lái),工程項(xiàng)目的需要。因此,一般說(shuō)來(lái),PDL是一種是一種“混雜混雜”語(yǔ)言,它使用一種語(yǔ)言的詞匯,同時(shí)卻使語(yǔ)言,它使用一種語(yǔ)言的詞匯,同時(shí)卻使用另一種語(yǔ)言用另一種語(yǔ)言(某種結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言某種結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言)的語(yǔ)法。的語(yǔ)法。6.3.6 過(guò)程設(shè)計(jì)語(yǔ)言過(guò)程設(shè)計(jì)語(yǔ)言PDL應(yīng)該具有下述特點(diǎn):應(yīng)該具有下述特點(diǎn):(1) 關(guān)鍵字的固定語(yǔ)
60、法,它提供了結(jié)構(gòu)化控制結(jié)構(gòu)、關(guān)鍵字的固定語(yǔ)法,它提供了結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說(shuō)明和模塊化的特點(diǎn)。為了使結(jié)構(gòu)清晰和可讀數(shù)據(jù)說(shuō)明和模塊化的特點(diǎn)。為了使結(jié)構(gòu)清晰和可讀性好,通常在所有可能嵌套使用的控制結(jié)構(gòu)的頭和性好,通常在所有可能嵌套使用的控制結(jié)構(gòu)的頭和尾都有關(guān)鍵字,例如,尾都有關(guān)鍵字,例如,iffi(或或endif)等等。等等。(2) 自然語(yǔ)言的自由語(yǔ)法,它描述處理特點(diǎn)。自然語(yǔ)言的自由語(yǔ)法,它描述處理特點(diǎn)。(3) 數(shù)據(jù)說(shuō)明的手段。應(yīng)該既包括簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)說(shuō)明的手段。應(yīng)該既包括簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)(例如純量和數(shù)組例如純量和數(shù)組),又包括復(fù)雜的數(shù)據(jù)結(jié)構(gòu),又包括復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(例如,例如,鏈表或?qū)哟蔚臄?shù)據(jù)結(jié)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 光學(xué)軟件測(cè)試題及答案
- 美術(shù)培訓(xùn)講座
- 2025年 阜陽(yáng)臨泉城關(guān)街道桃花源幼兒園教師招聘考試筆試試卷附答案
- 2025年 北京公務(wù)員考試筆試考試試卷附答案
- 2025年主題團(tuán)日活動(dòng)策劃與實(shí)施
- 小學(xué)交通教育課件
- 左膝關(guān)節(jié)置換術(shù)后護(hù)理
- 2025年中國(guó)墨西哥胡椒鹽行業(yè)市場(chǎng)全景分析及前景機(jī)遇研判報(bào)告
- 子宮畸形超聲分類及診斷
- 支氣管肺炎相關(guān)疾病知識(shí)
- 2025年河南省高考物理真題(解析版)
- 2025中國(guó)心肌病綜合管理指南要點(diǎn)解讀課件
- 7數(shù)滬科版期末考試卷-2024-2025學(xué)年七年級(jí)(初一)數(shù)學(xué)下冊(cè)期末考試模擬卷03
- 涼山州木里縣選聘社區(qū)工作者筆試真題2024
- 2025年中國(guó)太平洋人壽保險(xiǎn)股份有限公司勞動(dòng)合同
- 配電線路高級(jí)工練習(xí)試題附答案
- 護(hù)士N2理論考試試題及答案
- 2025年河北省中考麒麟卷地理(二)
- 第23課+和平發(fā)展合作共贏的時(shí)代潮流+課件高一歷史下學(xué)期統(tǒng)編版(2019)必修中外歷史綱要下
- 公共組織績(jī)效評(píng)估-形考任務(wù)一(占10%)-國(guó)開(kāi)(ZJ)-參考資料
- GB/T 45439-2025燃?xì)鈿馄亢腿細(xì)馄块y溯源二維碼應(yīng)用技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論