版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、大連理工大學(xué)軟件學(xué)院軟件工程2021-12-9大連理工大學(xué)軟件學(xué)院2第第6章章 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) 目標(biāo)目標(biāo)怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng)怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng) 目標(biāo)系統(tǒng)的精確描述目標(biāo)系統(tǒng)的精確描述 設(shè)計(jì)代碼的設(shè)計(jì)代碼的“藍(lán)圖藍(lán)圖” 決定代碼質(zhì)量決定代碼質(zhì)量 程序的讀者程序的讀者計(jì)算機(jī)和人計(jì)算機(jī)和人2021-12-9大連理工大學(xué)軟件學(xué)院3 6.1 結(jié)構(gòu)程序設(shè)計(jì)結(jié)構(gòu)程序設(shè)計(jì) 6.2 人機(jī)界面設(shè)計(jì)人機(jī)界面設(shè)計(jì) 6.3 過程設(shè)計(jì)的工具過程設(shè)計(jì)的工具 6.4 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法 6.5 程序復(fù)雜程度的定量度量程序復(fù)雜程度的定量度量第第6章章 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)2021-12-9大
2、連理工大學(xué)軟件學(xué)院4 E.W Dijkstra “可以從高級語言中取消可以從高級語言中取消GO TO語句語句” “程序的質(zhì)量與程序中所包含的程序的質(zhì)量與程序中所包含的GO TO語句的數(shù)量成反比語句的數(shù)量成反比” Bohm和和Jacopini 只用三種基本的控制結(jié)構(gòu)就能實(shí)現(xiàn)任何單入口、單出口的程序只用三種基本的控制結(jié)構(gòu)就能實(shí)現(xiàn)任何單入口、單出口的程序 “順序順序”、“選擇選擇”、“循環(huán)循環(huán)”6.1 結(jié)構(gòu)程序設(shè)計(jì)結(jié)構(gòu)程序設(shè)計(jì)2021-12-9大連理工大學(xué)軟件學(xué)院5圖6.1 三種基本的控制結(jié)構(gòu)2021-12-9大連理工大學(xué)軟件學(xué)院6用順序用順序+循環(huán)構(gòu)成選擇循環(huán)構(gòu)成選擇2021-12-9大連理工大學(xué)
3、軟件學(xué)院7 結(jié)構(gòu)程序設(shè)計(jì)結(jié)構(gòu)程序設(shè)計(jì)的經(jīng)典定義:的經(jīng)典定義: 如果一個(gè)程序的代碼塊僅僅通過如果一個(gè)程序的代碼塊僅僅通過順序、選擇和循環(huán)順序、選擇和循環(huán)這三種控制結(jié)構(gòu)進(jìn)行連接,并且每個(gè)代碼塊只有這三種控制結(jié)構(gòu)進(jìn)行連接,并且每個(gè)代碼塊只有一一個(gè)入口和一個(gè)出口個(gè)入口和一個(gè)出口,則稱這個(gè)程序是結(jié)構(gòu)化的。,則稱這個(gè)程序是結(jié)構(gòu)化的。6.1 結(jié)構(gòu)程序設(shè)計(jì)結(jié)構(gòu)程序設(shè)計(jì)2021-12-9大連理工大學(xué)軟件學(xué)院8這個(gè)經(jīng)典定義過于狹隘,結(jié)構(gòu)程序設(shè)計(jì)這個(gè)經(jīng)典定義過于狹隘,結(jié)構(gòu)程序設(shè)計(jì)本質(zhì)本質(zhì)上并不是無上并不是無GO TO語句的編程方法,而是一種使程序代碼語句的編程方法,而是一種使程序代碼容易閱讀、容易理解容易閱讀、容易
4、理解的的編程方法。編程方法。大多數(shù)情況下,無大多數(shù)情況下,無GO TO的代碼確實(shí)是容易閱讀、容易理解,的代碼確實(shí)是容易閱讀、容易理解,但在某些情況下,為達(dá)到容易閱讀和容易理解的目的,需要使但在某些情況下,為達(dá)到容易閱讀和容易理解的目的,需要使用用GO TO語句。語句。結(jié)構(gòu)程序設(shè)計(jì)是結(jié)構(gòu)程序設(shè)計(jì)是盡可能少用盡可能少用GO TO語句語句的程序設(shè)計(jì)方法。最好的程序設(shè)計(jì)方法。最好僅在檢測出錯(cuò)誤時(shí)才使用僅在檢測出錯(cuò)誤時(shí)才使用GO TO語句,而且應(yīng)該總是使用語句,而且應(yīng)該總是使用前向前向GO TO語句語句。6.1 結(jié)構(gòu)程序設(shè)計(jì)結(jié)構(gòu)程序設(shè)計(jì)2021-12-9大連理工大學(xué)軟件學(xué)院9圖6.2 其他常用的控制結(jié)構(gòu)
5、(a) DO-UNTIL型循環(huán)結(jié)構(gòu);(b)多分支結(jié)構(gòu)2021-12-9大連理工大學(xué)軟件學(xué)院10 經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì):經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì):只允許使用順序、只允許使用順序、IF-THEN-ELSE型分支和型分支和DO-WHILE型循環(huán)這三種基本控制結(jié)構(gòu)。型循環(huán)這三種基本控制結(jié)構(gòu)。 擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì):擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì):除了上述三種基本控制結(jié)構(gòu)之外,除了上述三種基本控制結(jié)構(gòu)之外,還允許使用還允許使用DO-CASE型多分支結(jié)構(gòu)和型多分支結(jié)構(gòu)和DO-UNTIL型循環(huán)型循環(huán)結(jié)構(gòu)。結(jié)構(gòu)。 修正的結(jié)構(gòu)程序設(shè)計(jì):修正的結(jié)構(gòu)程序設(shè)計(jì):再加上允許使用再加上允許使用LEAVE(或或BREAK)結(jié)構(gòu)。結(jié)構(gòu)。6.1 結(jié)
6、構(gòu)程序設(shè)計(jì)結(jié)構(gòu)程序設(shè)計(jì)2021-12-9大連理工大學(xué)軟件學(xué)院116.2 人機(jī)界面設(shè)計(jì)人機(jī)界面設(shè)計(jì) 人機(jī)界面設(shè)計(jì)人機(jī)界面設(shè)計(jì)是是接口設(shè)計(jì)接口設(shè)計(jì)的一個(gè)組成部分。的一個(gè)組成部分。對于交互式系統(tǒng)來說,人機(jī)界面設(shè)計(jì)和數(shù)據(jù)設(shè)計(jì)、體系結(jié)對于交互式系統(tǒng)來說,人機(jī)界面設(shè)計(jì)和數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)、過程設(shè)計(jì)一樣重要。構(gòu)設(shè)計(jì)、過程設(shè)計(jì)一樣重要。近年來,人機(jī)界面在系統(tǒng)中所占的比例越來越大,在個(gè)別近年來,人機(jī)界面在系統(tǒng)中所占的比例越來越大,在個(gè)別系統(tǒng)中人機(jī)界面的設(shè)計(jì)工作量甚至占設(shè)計(jì)總量的一半以上。系統(tǒng)中人機(jī)界面的設(shè)計(jì)工作量甚至占設(shè)計(jì)總量的一半以上。 人機(jī)界面的設(shè)計(jì)質(zhì)量,直接影響用戶對軟件產(chǎn)品的人機(jī)界面的設(shè)計(jì)質(zhì)量,直接
7、影響用戶對軟件產(chǎn)品的評價(jià),從而影響軟件產(chǎn)品的競爭力和壽命評價(jià),從而影響軟件產(chǎn)品的競爭力和壽命,因此,因此,必須對人機(jī)界面設(shè)計(jì)給以足夠重視。必須對人機(jī)界面設(shè)計(jì)給以足夠重視。2021-12-9大連理工大學(xué)軟件學(xué)院12在設(shè)計(jì)用戶界面的過程中,幾乎總會遇到下述四個(gè)問題:在設(shè)計(jì)用戶界面的過程中,幾乎總會遇到下述四個(gè)問題:系統(tǒng)響應(yīng)時(shí)間、用戶幫助設(shè)施、出錯(cuò)信息處理和命令交系統(tǒng)響應(yīng)時(shí)間、用戶幫助設(shè)施、出錯(cuò)信息處理和命令交互互。1.系統(tǒng)響應(yīng)時(shí)間系統(tǒng)響應(yīng)時(shí)間系統(tǒng)響應(yīng)時(shí)間是許多交互式系統(tǒng)用戶經(jīng)常抱怨的問題。一系統(tǒng)響應(yīng)時(shí)間是許多交互式系統(tǒng)用戶經(jīng)常抱怨的問題。一般說來,系統(tǒng)響應(yīng)時(shí)間指從用戶完成某個(gè)控制動(dòng)作般說來,系統(tǒng)響
8、應(yīng)時(shí)間指從用戶完成某個(gè)控制動(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è)重要屬性:系統(tǒng)響應(yīng)時(shí)間有兩個(gè)重要屬性:長度和易變性長度和易變性。6.2.1 設(shè)計(jì)問題設(shè)計(jì)問題2021-12-9大連理工大學(xué)軟件學(xué)院132.用戶幫助設(shè)施用戶幫助設(shè)施幾乎交互式系統(tǒng)的每個(gè)用戶都需要幫助,當(dāng)遇到復(fù)雜問題時(shí)甚至幾乎交互式系統(tǒng)的每個(gè)用戶都需要幫助,當(dāng)遇到復(fù)雜問題時(shí)甚至需要查看用戶手冊以尋找答案。大多數(shù)現(xiàn)代軟件都提供需要查看用戶手冊以尋找答案。大多數(shù)現(xiàn)代軟件都提供聯(lián)機(jī)幫助聯(lián)機(jī)幫助設(shè)施,這使得用
9、戶可以不離開用戶界面就解決自己的問題。設(shè)施,這使得用戶可以不離開用戶界面就解決自己的問題。常見的幫助設(shè)施有常見的幫助設(shè)施有集成的和附加的集成的和附加的兩類。兩類。3.出錯(cuò)信息處理出錯(cuò)信息處理出錯(cuò)信息和警告信息出錯(cuò)信息和警告信息,是出現(xiàn)問題時(shí)交互式系統(tǒng)給出的,是出現(xiàn)問題時(shí)交互式系統(tǒng)給出的“壞消壞消息息”。出錯(cuò)信息設(shè)計(jì)得不好,將向用戶提供無用的或誤導(dǎo)的信息,。出錯(cuò)信息設(shè)計(jì)得不好,將向用戶提供無用的或誤導(dǎo)的信息,反而增加了用戶的挫折感。反而增加了用戶的挫折感。6.2.1 設(shè)計(jì)問題設(shè)計(jì)問題2021-12-9大連理工大學(xué)軟件學(xué)院146.2.1 設(shè)計(jì)問題設(shè)計(jì)問題面向系統(tǒng)的錯(cuò)誤信息面向系統(tǒng)的錯(cuò)誤信息面向用戶
10、的錯(cuò)誤信息面向用戶的錯(cuò)誤信息2021-12-9大連理工大學(xué)軟件學(xué)院154.命令交互命令交互命令行命令行曾經(jīng)是用戶和系統(tǒng)軟件交互的最常用方式,而且也曾經(jīng)廣泛曾經(jīng)是用戶和系統(tǒng)軟件交互的最常用方式,而且也曾經(jīng)廣泛地用于各種應(yīng)用軟件中。地用于各種應(yīng)用軟件中?,F(xiàn)在,面向窗口的、點(diǎn)擊和拾取方式的界面已經(jīng)減少了用戶對命令現(xiàn)在,面向窗口的、點(diǎn)擊和拾取方式的界面已經(jīng)減少了用戶對命令行的依賴,但是,許多高級用戶仍然偏愛面向命令的交互方式。行的依賴,但是,許多高級用戶仍然偏愛面向命令的交互方式。在多數(shù)情況下,用戶既可以從菜單中選擇軟件功能也可以通過鍵盤在多數(shù)情況下,用戶既可以從菜單中選擇軟件功能也可以通過鍵盤命令序
11、列調(diào)用軟件功能。命令序列調(diào)用軟件功能。6.2.1 設(shè)計(jì)問題設(shè)計(jì)問題2021-12-9大連理工大學(xué)軟件學(xué)院16 用戶界面設(shè)計(jì)是一個(gè)用戶界面設(shè)計(jì)是一個(gè)迭代迭代的過程,也就是說,通常先創(chuàng)建設(shè)的過程,也就是說,通常先創(chuàng)建設(shè)計(jì)模型,再用原型實(shí)現(xiàn)這個(gè)設(shè)計(jì)模型,并由用戶試用和評估,計(jì)模型,再用原型實(shí)現(xiàn)這個(gè)設(shè)計(jì)模型,并由用戶試用和評估,然后根據(jù)用戶的意見進(jìn)行修改。然后根據(jù)用戶的意見進(jìn)行修改。 系統(tǒng)及其界面的規(guī)格說明書的長度和復(fù)雜程度,預(yù)示了用戶系統(tǒng)及其界面的規(guī)格說明書的長度和復(fù)雜程度,預(yù)示了用戶學(xué)習(xí)使用學(xué)習(xí)使用該系統(tǒng)所需要的工作量該系統(tǒng)所需要的工作量。 命令或動(dòng)作的數(shù)量、命令的平均參數(shù)個(gè)數(shù)或動(dòng)作中單個(gè)操作的個(gè)
12、數(shù),命令或動(dòng)作的數(shù)量、命令的平均參數(shù)個(gè)數(shù)或動(dòng)作中單個(gè)操作的個(gè)數(shù),預(yù)示了系統(tǒng)的預(yù)示了系統(tǒng)的交互時(shí)間和總體效率交互時(shí)間和總體效率。 設(shè)計(jì)模型中包含的動(dòng)作、命令和系統(tǒng)狀態(tài)的數(shù)量,預(yù)示了用戶學(xué)習(xí)使設(shè)計(jì)模型中包含的動(dòng)作、命令和系統(tǒng)狀態(tài)的數(shù)量,預(yù)示了用戶學(xué)習(xí)使用該系統(tǒng)用該系統(tǒng)需要記憶的內(nèi)容的多少需要記憶的內(nèi)容的多少。 界面風(fēng)格、幫助設(shè)施和出錯(cuò)處理協(xié)議,預(yù)示了界面風(fēng)格、幫助設(shè)施和出錯(cuò)處理協(xié)議,預(yù)示了界面的復(fù)雜程度及用戶界面的復(fù)雜程度及用戶接受該系統(tǒng)的程度接受該系統(tǒng)的程度。6.2.2 設(shè)計(jì)過程設(shè)計(jì)過程2021-12-9大連理工大學(xué)軟件學(xué)院17用戶界面設(shè)計(jì)主要依靠設(shè)計(jì)者的經(jīng)驗(yàn)。總結(jié)眾多設(shè)計(jì)者用戶界面設(shè)計(jì)主要依靠
13、設(shè)計(jì)者的經(jīng)驗(yàn)。總結(jié)眾多設(shè)計(jì)者的經(jīng)驗(yàn)而得出的設(shè)計(jì)指南,有助于設(shè)計(jì)者設(shè)計(jì)出友好、的經(jīng)驗(yàn)而得出的設(shè)計(jì)指南,有助于設(shè)計(jì)者設(shè)計(jì)出友好、高效的人機(jī)界面。本節(jié)介紹三類人機(jī)界面設(shè)計(jì)指南。高效的人機(jī)界面。本節(jié)介紹三類人機(jī)界面設(shè)計(jì)指南。1.一般交互一般交互一般交互指南涉及信息顯示、數(shù)據(jù)輸入和整體系統(tǒng)控制,因此,一般交互指南涉及信息顯示、數(shù)據(jù)輸入和整體系統(tǒng)控制,因此,這些指南是全局性的,忽略它們將承擔(dān)較大風(fēng)險(xiǎn)。下面敘述一般這些指南是全局性的,忽略它們將承擔(dān)較大風(fēng)險(xiǎn)。下面敘述一般交互指南。交互指南。保持一致性保持一致性。為人機(jī)界面中的菜單選擇、命令輸入、數(shù)據(jù)顯示以及。為人機(jī)界面中的菜單選擇、命令輸入、數(shù)據(jù)顯示以及眾多
14、的其他功能,使用一致的格式。眾多的其他功能,使用一致的格式。6.2.3 人機(jī)界面設(shè)計(jì)指南人機(jī)界面設(shè)計(jì)指南2021-12-9大連理工大學(xué)軟件學(xué)院18 提供有意義的反饋提供有意義的反饋。向用戶提供視覺的和聽覺的反饋,以保證在用戶和。向用戶提供視覺的和聽覺的反饋,以保證在用戶和界面之間建立雙向通信。界面之間建立雙向通信。 在執(zhí)行有較大破壞性的動(dòng)作之前要求用戶確認(rèn)在執(zhí)行有較大破壞性的動(dòng)作之前要求用戶確認(rèn)。如果用戶要?jiǎng)h除一個(gè)文。如果用戶要?jiǎng)h除一個(gè)文件,或覆蓋一些重要信息,或請求終止一個(gè)程序運(yùn)行,應(yīng)該給出確認(rèn)提件,或覆蓋一些重要信息,或請求終止一個(gè)程序運(yùn)行,應(yīng)該給出確認(rèn)提示。示。 允許取消絕大多數(shù)操作允許
15、取消絕大多數(shù)操作。UNDO或或REVERSE功能使眾多終端用戶避免功能使眾多終端用戶避免了大量時(shí)間浪費(fèi)。每個(gè)交互式應(yīng)用系統(tǒng)都應(yīng)該能方便地取消已完成的操了大量時(shí)間浪費(fèi)。每個(gè)交互式應(yīng)用系統(tǒng)都應(yīng)該能方便地取消已完成的操作。作。 減少在兩次操作之間必須記憶的信息量減少在兩次操作之間必須記憶的信息量。不應(yīng)該期望用戶能記住一大串。不應(yīng)該期望用戶能記住一大串?dāng)?shù)字或名字,以便在下一步操作中使用它們。應(yīng)該盡量減少記憶量。數(shù)字或名字,以便在下一步操作中使用它們。應(yīng)該盡量減少記憶量。6.2.3 人機(jī)界面設(shè)計(jì)指南人機(jī)界面設(shè)計(jì)指南2021-12-9大連理工大學(xué)軟件學(xué)院19 提高對話、移動(dòng)和思考的效率提高對話、移動(dòng)和思考
16、的效率。應(yīng)該盡量減少擊鍵次數(shù),設(shè)計(jì)屏幕。應(yīng)該盡量減少擊鍵次數(shù),設(shè)計(jì)屏幕布局時(shí)應(yīng)該考慮盡量減少鼠標(biāo)移動(dòng)的距離,應(yīng)該盡量避免出現(xiàn)用戶布局時(shí)應(yīng)該考慮盡量減少鼠標(biāo)移動(dòng)的距離,應(yīng)該盡量避免出現(xiàn)用戶問:問:“這是什么意思這是什么意思”的情況。的情況。 允許犯錯(cuò)誤允許犯錯(cuò)誤。系統(tǒng)應(yīng)該保護(hù)自己不受致命錯(cuò)誤的破壞。系統(tǒng)應(yīng)該保護(hù)自己不受致命錯(cuò)誤的破壞。 按功能對動(dòng)作分類,并據(jù)此設(shè)計(jì)屏幕布局按功能對動(dòng)作分類,并據(jù)此設(shè)計(jì)屏幕布局。下拉菜單的一個(gè)主要優(yōu)。下拉菜單的一個(gè)主要優(yōu)點(diǎn)就是能按動(dòng)作類型組織命令。實(shí)際上,設(shè)計(jì)者應(yīng)該盡力提高命令點(diǎn)就是能按動(dòng)作類型組織命令。實(shí)際上,設(shè)計(jì)者應(yīng)該盡力提高命令和動(dòng)作組織的和動(dòng)作組織的“內(nèi)聚性
17、內(nèi)聚性”。 提供對工作內(nèi)容敏感的幫助設(shè)施提供對工作內(nèi)容敏感的幫助設(shè)施(參見(參見6.2.1節(jié))。節(jié))。 用簡單動(dòng)詞或動(dòng)詞短語作為命令名用簡單動(dòng)詞或動(dòng)詞短語作為命令名。過長的命令名難于識別和記憶,。過長的命令名難于識別和記憶,也會占據(jù)過多的菜單空間。也會占據(jù)過多的菜單空間。6.2.3 人機(jī)界面設(shè)計(jì)指南人機(jī)界面設(shè)計(jì)指南2021-12-9大連理工大學(xué)軟件學(xué)院202. 信息顯示信息顯示 如果人機(jī)界面顯示的信息是不完整,含糊或難于理解的,則應(yīng)用如果人機(jī)界面顯示的信息是不完整,含糊或難于理解的,則應(yīng)用軟件顯然不能滿足用戶需求。可以用多種不同方式軟件顯然不能滿足用戶需求??梢杂枚喾N不同方式“顯示顯示”信息:
18、信息:用文字、圖片和聲音;按位置、移動(dòng)和大?。皇褂妙伾?、分辨率用文字、圖片和聲音;按位置、移動(dòng)和大??;使用顏色、分辨率和省略。和省略。 下面是關(guān)于信息顯示的設(shè)計(jì)指南。下面是關(guān)于信息顯示的設(shè)計(jì)指南。只顯示與當(dāng)前只顯示與當(dāng)前工作內(nèi)容有關(guān)的信息工作內(nèi)容有關(guān)的信息。用戶在獲得有關(guān)系統(tǒng)的特定功能的信息時(shí),用戶在獲得有關(guān)系統(tǒng)的特定功能的信息時(shí),不必看到與之無關(guān)的數(shù)不必看到與之無關(guān)的數(shù)據(jù)、菜單和圖形據(jù)、菜單和圖形。6.2.3 人機(jī)界面設(shè)計(jì)指南人機(jī)界面設(shè)計(jì)指南2021-12-9大連理工大學(xué)軟件學(xué)院21 不要用數(shù)據(jù)淹沒用戶不要用數(shù)據(jù)淹沒用戶,應(yīng)該用便于用戶迅速地吸取信息的方式來表示,應(yīng)該用便于用戶迅速地吸取信息
19、的方式來表示數(shù)據(jù)。例如,可以用圖形或圖表來取代巨大的表格。數(shù)據(jù)。例如,可以用圖形或圖表來取代巨大的表格。 使用一致的標(biāo)記、標(biāo)準(zhǔn)的縮寫和可預(yù)知的顏色使用一致的標(biāo)記、標(biāo)準(zhǔn)的縮寫和可預(yù)知的顏色。顯示的含義應(yīng)該非。顯示的含義應(yīng)該非常明確,用戶不必參照其他信息源就能理解。常明確,用戶不必參照其他信息源就能理解。 允許用戶保持可視化的語境允許用戶保持可視化的語境。如果對圖形顯示進(jìn)行縮放,原始的圖。如果對圖形顯示進(jìn)行縮放,原始的圖像應(yīng)該一直顯示著像應(yīng)該一直顯示著(以縮小的形式放在顯示屏的一角以縮小的形式放在顯示屏的一角),以使用戶知,以使用戶知道當(dāng)前觀察的圖像部分在原圖中所處的相對位置。道當(dāng)前觀察的圖像部分
20、在原圖中所處的相對位置。 產(chǎn)生有意義的出錯(cuò)信息產(chǎn)生有意義的出錯(cuò)信息(參見參見6.2.1節(jié)節(jié))。 使用大小寫、縮進(jìn)和文本分組以幫助理解使用大小寫、縮進(jìn)和文本分組以幫助理解。人機(jī)界面顯示的信息大。人機(jī)界面顯示的信息大部分是文字,文字的布局和形式對用戶從中吸取信息的難易程度有部分是文字,文字的布局和形式對用戶從中吸取信息的難易程度有很大影響。很大影響。6.2.3 人機(jī)界面設(shè)計(jì)指南人機(jī)界面設(shè)計(jì)指南2021-12-9大連理工大學(xué)軟件學(xué)院22 使用窗口分隔不同類型的信息使用窗口分隔不同類型的信息。利用窗口用戶能夠方便地。利用窗口用戶能夠方便地“保保存存”多種不同類型的信息。多種不同類型的信息。 使用使用“
21、模擬模擬”顯示方式表示信息顯示方式表示信息,以使信息更容易被用戶吸取。,以使信息更容易被用戶吸取。例如,顯示煉油廠儲油罐的壓力時(shí),如果使用簡單的數(shù)字表示壓例如,顯示煉油廠儲油罐的壓力時(shí),如果使用簡單的數(shù)字表示壓力,則不易引起用戶注意。但是,如果用類似溫度計(jì)的形式來表力,則不易引起用戶注意。但是,如果用類似溫度計(jì)的形式來表示壓力,用垂直移動(dòng)和顏色變化來指示危險(xiǎn)的壓力狀況,就能引示壓力,用垂直移動(dòng)和顏色變化來指示危險(xiǎn)的壓力狀況,就能引起用戶的警覺,因?yàn)檫@樣做為用戶提供了絕對和相對兩方面的信起用戶的警覺,因?yàn)檫@樣做為用戶提供了絕對和相對兩方面的信息。息。 高效率地使用顯示屏高效率地使用顯示屏。當(dāng)使用
22、多窗口時(shí),應(yīng)該有足夠的空間使。當(dāng)使用多窗口時(shí),應(yīng)該有足夠的空間使得每個(gè)窗口至少都能顯示出一部分。此外,屏幕大小應(yīng)該選得得每個(gè)窗口至少都能顯示出一部分。此外,屏幕大小應(yīng)該選得和應(yīng)用系統(tǒng)的類型相配套和應(yīng)用系統(tǒng)的類型相配套( (這實(shí)際上是一個(gè)系統(tǒng)工程問題這實(shí)際上是一個(gè)系統(tǒng)工程問題) )。6.2.3 人機(jī)界面設(shè)計(jì)指南人機(jī)界面設(shè)計(jì)指南2021-12-9大連理工大學(xué)軟件學(xué)院233.數(shù)據(jù)輸入數(shù)據(jù)輸入用戶的大部分時(shí)間用在選擇命令、鍵入數(shù)據(jù)和向系統(tǒng)提供用戶的大部分時(shí)間用在選擇命令、鍵入數(shù)據(jù)和向系統(tǒng)提供輸入。在許多應(yīng)用系統(tǒng)中,鍵盤仍然是主要的輸入介質(zhì),輸入。在許多應(yīng)用系統(tǒng)中,鍵盤仍然是主要的輸入介質(zhì),但是,鼠標(biāo)、
23、數(shù)字化儀和語音識別系統(tǒng)正迅速地成為重要但是,鼠標(biāo)、數(shù)字化儀和語音識別系統(tǒng)正迅速地成為重要的輸入手段。下面是關(guān)于數(shù)據(jù)輸入的設(shè)計(jì)指南。的輸入手段。下面是關(guān)于數(shù)據(jù)輸入的設(shè)計(jì)指南。盡量減少用戶的輸入動(dòng)作盡量減少用戶的輸入動(dòng)作。最重要的是減少擊鍵次數(shù),這可以。最重要的是減少擊鍵次數(shù),這可以用下列方法實(shí)現(xiàn):用鼠標(biāo)從預(yù)定義的一組輸入中選一個(gè);用用下列方法實(shí)現(xiàn):用鼠標(biāo)從預(yù)定義的一組輸入中選一個(gè);用“滑動(dòng)標(biāo)尺滑動(dòng)標(biāo)尺”在給定的值域中指定輸入值;利用宏把一次擊鍵在給定的值域中指定輸入值;利用宏把一次擊鍵轉(zhuǎn)變成更復(fù)雜的輸入數(shù)據(jù)集合。轉(zhuǎn)變成更復(fù)雜的輸入數(shù)據(jù)集合。 6.2.3 人機(jī)界面設(shè)計(jì)指南人機(jī)界面設(shè)計(jì)指南2021-
24、12-9大連理工大學(xué)軟件學(xué)院24 保持信息顯示和數(shù)據(jù)輸入之間的一致性保持信息顯示和數(shù)據(jù)輸入之間的一致性。顯示的視覺特征。顯示的視覺特征( (例如,文例如,文字大小、顏色和位置字大小、顏色和位置)應(yīng)該與輸入域一致。應(yīng)該與輸入域一致。 允許用戶自定義輸入允許用戶自定義輸入。專家級的用戶可能希望定義自己專用的命令。專家級的用戶可能希望定義自己專用的命令或略去某些類型的警告信息和動(dòng)作確認(rèn),人機(jī)界面應(yīng)該允許用戶這或略去某些類型的警告信息和動(dòng)作確認(rèn),人機(jī)界面應(yīng)該允許用戶這樣做。樣做。 交互應(yīng)該是靈活的交互應(yīng)該是靈活的,并且可調(diào)整成用戶最喜歡的輸入方式。用戶類,并且可調(diào)整成用戶最喜歡的輸入方式。用戶類型與喜
25、歡的輸入方式有關(guān),秘書可能非常喜歡鍵盤輸入,而經(jīng)理可型與喜歡的輸入方式有關(guān),秘書可能非常喜歡鍵盤輸入,而經(jīng)理可能更喜歡使用鼠標(biāo)之類的點(diǎn)擊設(shè)備。能更喜歡使用鼠標(biāo)之類的點(diǎn)擊設(shè)備。 使在當(dāng)前動(dòng)作語境中不適用的命令不起作用使在當(dāng)前動(dòng)作語境中不適用的命令不起作用。這可使用戶不去做那。這可使用戶不去做那些肯定會導(dǎo)致錯(cuò)誤的動(dòng)作。些肯定會導(dǎo)致錯(cuò)誤的動(dòng)作。6.2.3 人機(jī)界面設(shè)計(jì)指南人機(jī)界面設(shè)計(jì)指南2021-12-9大連理工大學(xué)軟件學(xué)院25 讓用戶控制交互流讓用戶控制交互流。用戶應(yīng)該能夠跳過不必要的動(dòng)作,改變所需做。用戶應(yīng)該能夠跳過不必要的動(dòng)作,改變所需做的動(dòng)作的順序的動(dòng)作的順序(在應(yīng)用環(huán)境允許的前提下在應(yīng)用環(huán)
26、境允許的前提下),以及在不退出程序的情,以及在不退出程序的情況下從錯(cuò)誤狀態(tài)中恢復(fù)正常。況下從錯(cuò)誤狀態(tài)中恢復(fù)正常。 對所有輸入動(dòng)作都提供幫助對所有輸入動(dòng)作都提供幫助(參見參見6.2.1節(jié)節(jié))。 消除冗余的輸入消除冗余的輸入。除非可能發(fā)生誤解,否則不要要求用戶指定工程。除非可能發(fā)生誤解,否則不要要求用戶指定工程輸入的單位;不要要求用戶在整錢數(shù)后面鍵入輸入的單位;不要要求用戶在整錢數(shù)后面鍵入00;盡可能提供缺省;盡可能提供缺省值;絕對不要要求用戶提供程序可以自動(dòng)獲得或計(jì)算出來的信息。值;絕對不要要求用戶提供程序可以自動(dòng)獲得或計(jì)算出來的信息。6.2.3 人機(jī)界面設(shè)計(jì)指南人機(jī)界面設(shè)計(jì)指南2021-12-
27、9大連理工大學(xué)軟件學(xué)院266.3 過程設(shè)計(jì)的工具過程設(shè)計(jì)的工具 描述程序處理過程的工具稱為過程設(shè)計(jì)的工描述程序處理過程的工具稱為過程設(shè)計(jì)的工具,它們可以分為具,它們可以分為圖形、表格和語言圖形、表格和語言三類。三類。 對設(shè)計(jì)的無歧義描述對設(shè)計(jì)的無歧義描述 指明指明控制流程控制流程、處理功能處理功能、數(shù)據(jù)組織數(shù)據(jù)組織以及其他方以及其他方面的面的實(shí)現(xiàn)細(xì)節(jié)實(shí)現(xiàn)細(xì)節(jié) 能在編碼階段把對設(shè)計(jì)的描述能在編碼階段把對設(shè)計(jì)的描述直接翻譯直接翻譯成程序代成程序代碼碼2021-12-9大連理工大學(xué)軟件學(xué)院276.3.1 程序流程圖程序流程圖 程序流程圖又稱為程序框圖,是歷史最悠久使用最廣程序流程圖又稱為程序框圖,是
28、歷史最悠久使用最廣泛的描述過程設(shè)計(jì)的方法,然而也是用得最混亂的一泛的描述過程設(shè)計(jì)的方法,然而也是用得最混亂的一種方法。種方法。2021-12-9大連理工大學(xué)軟件學(xué)院282021-12-9大連理工大學(xué)軟件學(xué)院292021-12-9大連理工大學(xué)軟件學(xué)院30程序流程圖五種基本控制結(jié)構(gòu)程序流程圖五種基本控制結(jié)構(gòu)2021-12-9大連理工大學(xué)軟件學(xué)院312021-12-9大連理工大學(xué)軟件學(xué)院326.3.1 程序流程圖程序流程圖 優(yōu)點(diǎn):對控制流程描述很直觀優(yōu)點(diǎn):對控制流程描述很直觀 缺點(diǎn):缺點(diǎn):本質(zhì)上不是逐步求精的好工具,缺少全局結(jié)構(gòu)的考慮本質(zhì)上不是逐步求精的好工具,缺少全局結(jié)構(gòu)的考慮用箭頭代表控制流,程
29、序員不受約束用箭頭代表控制流,程序員不受約束不易表示數(shù)據(jù)結(jié)構(gòu)不易表示數(shù)據(jù)結(jié)構(gòu)2021-12-9大連理工大學(xué)軟件學(xué)院33思考題思考題 畫出下列偽碼程序的程序流程圖畫出下列偽碼程序的程序流程圖2021-12-9大連理工大學(xué)軟件學(xué)院34 出于要有一種不允許違背結(jié)構(gòu)程序設(shè)計(jì)精神的圖形工具的出于要有一種不允許違背結(jié)構(gòu)程序設(shè)計(jì)精神的圖形工具的考慮,考慮,Nassi和和Schneiderman提出了盒圖,又稱為提出了盒圖,又稱為N-S圖。圖。 特點(diǎn):特點(diǎn): 功能域明確功能域明確 不可能任意轉(zhuǎn)移控制不可能任意轉(zhuǎn)移控制 很容易確定局部和全局?jǐn)?shù)據(jù)的作用域很容易確定局部和全局?jǐn)?shù)據(jù)的作用域 很容易表現(xiàn)嵌套關(guān)系很容易表
30、現(xiàn)嵌套關(guān)系6.3.2 盒圖盒圖(N-S圖圖)2021-12-9大連理工大學(xué)軟件學(xué)院35圖6.4 盒圖的基本符號(a) 順序;(b) IF-THEN-ELSE型分支;(c) CASE型多分支;(d) 循環(huán);(e) 調(diào)用子程序A2021-12-9大連理工大學(xué)軟件學(xué)院36 盒圖沒有箭頭,因此不允許盒圖沒有箭頭,因此不允許隨意轉(zhuǎn)移控制隨意轉(zhuǎn)移控制。堅(jiān)持使用盒圖作為詳細(xì)設(shè)計(jì)的工具,可使程堅(jiān)持使用盒圖作為詳細(xì)設(shè)計(jì)的工具,可使程序員逐步養(yǎng)成用序員逐步養(yǎng)成用結(jié)構(gòu)化的方式結(jié)構(gòu)化的方式思考問題和解思考問題和解決問題的習(xí)慣。決問題的習(xí)慣。6.3.2 盒圖盒圖(N-S圖圖) 2021-12-9大連理工大學(xué)軟件學(xué)院37
31、思考題思考題 畫出下列偽碼程序的盒圖畫出下列偽碼程序的盒圖2021-12-9大連理工大學(xué)軟件學(xué)院382021-12-9大連理工大學(xué)軟件學(xué)院392021-12-9大連理工大學(xué)軟件學(xué)院40 PAD是是問題分析圖問題分析圖(Problem Analysis Diagram)的的英文縮寫,自英文縮寫,自1973年由日本日立公司發(fā)明以后,年由日本日立公司發(fā)明以后,已得到一定程度的推廣。已得到一定程度的推廣。 它用它用二維樹形結(jié)構(gòu)二維樹形結(jié)構(gòu)的圖來表示程序的控制流,將的圖來表示程序的控制流,將這種圖翻譯成程序代碼比較容易。這種圖翻譯成程序代碼比較容易。6.3.3 PAD圖圖2021-12-9大連理工大學(xué)軟
32、件學(xué)院41(a) 順序(先執(zhí)行P1后執(zhí)行P2);(b) 選擇(IF C THEN P1 ELSE P2);(c) CASE型多分支;(d) WHILE型循環(huán)(WHILE C DO P);(e) UNTIL型循環(huán)(REPEAT P UNTIL C);(f) 語句標(biāo)號;(g) 定義圖6.5 PAD圖的基本符號2021-12-9大連理工大學(xué)軟件學(xué)院42圖6.6 使用PAD圖提供的定義功能來逐步求精的例子(a) 初始的PAD圖; (b) 使用def符號細(xì)化處理框P22021-12-9大連理工大學(xué)軟件學(xué)院432021-12-9大連理工大學(xué)軟件學(xué)院44 優(yōu)點(diǎn):優(yōu)點(diǎn): 設(shè)計(jì)出的程序必然是結(jié)構(gòu)化程序設(shè)計(jì)出的程
33、序必然是結(jié)構(gòu)化程序 程序結(jié)構(gòu)清晰程序結(jié)構(gòu)清晰 表現(xiàn)程序邏輯,易讀、易懂、易記表現(xiàn)程序邏輯,易讀、易懂、易記 容易轉(zhuǎn)換為高級語言源程序容易轉(zhuǎn)換為高級語言源程序 既可以用于表示程序邏輯,也可以用于描繪數(shù)據(jù)結(jié)構(gòu)既可以用于表示程序邏輯,也可以用于描繪數(shù)據(jù)結(jié)構(gòu) 支持自頂向下、逐步求精的方法支持自頂向下、逐步求精的方法6.3.3 PAD圖圖2021-12-9大連理工大學(xué)軟件學(xué)院45 當(dāng)算法中包含多重嵌套的條件選擇時(shí),判定表能夠清晰地當(dāng)算法中包含多重嵌套的條件選擇時(shí),判定表能夠清晰地表示表示復(fù)雜的條件組合復(fù)雜的條件組合與與應(yīng)做的動(dòng)作應(yīng)做的動(dòng)作之間的對應(yīng)關(guān)系。之間的對應(yīng)關(guān)系。 一張判定表由四部分組成,一張判定
34、表由四部分組成,左上部左上部列出所有條件,列出所有條件,左下部左下部是所有可能做的動(dòng)作,是所有可能做的動(dòng)作,右上部右上部是表示各種條件組合的一個(gè)是表示各種條件組合的一個(gè)矩陣,矩陣,右下部右下部是和每種條件組合相對應(yīng)的動(dòng)作。是和每種條件組合相對應(yīng)的動(dòng)作。 判定表右半部的每一列實(shí)質(zhì)上是一條規(guī)則,規(guī)定了與特定判定表右半部的每一列實(shí)質(zhì)上是一條規(guī)則,規(guī)定了與特定的條件組合相對應(yīng)的動(dòng)作。的條件組合相對應(yīng)的動(dòng)作。6.3.4 判定表判定表2021-12-9大連理工大學(xué)軟件學(xué)院462021-12-9大連理工大學(xué)軟件學(xué)院47 要求將程序流要求將程序流程圖中的多分程圖中的多分支判斷都改成支判斷都改成兩分支判斷兩分支
35、判斷6.3.4 判定表判定表2021-12-9大連理工大學(xué)軟件學(xué)院482021-12-9大連理工大學(xué)軟件學(xué)院49 列出與一個(gè)具體過程列出與一個(gè)具體過程(或模塊或模塊)有關(guān)的所有處有關(guān)的所有處理。理。 列出過程執(zhí)行期間的所有條件列出過程執(zhí)行期間的所有條件(或所有判斷或所有判斷)。 將特定條件取值組合與特定的處理相匹配,將特定條件取值組合與特定的處理相匹配,消去不可能發(fā)生的條件取值組合。消去不可能發(fā)生的條件取值組合。 將右部每一縱列規(guī)定為一個(gè)處理規(guī)則,即對將右部每一縱列規(guī)定為一個(gè)處理規(guī)則,即對于某一條件取值組合將有什么動(dòng)作。于某一條件取值組合將有什么動(dòng)作。2021-12-9大連理工大學(xué)軟件學(xué)院50
36、 判定表雖然能清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作判定表雖然能清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對應(yīng)關(guān)系,但其含義卻不是一目了然,理解它也之間的對應(yīng)關(guān)系,但其含義卻不是一目了然,理解它也需要有一個(gè)需要有一個(gè)學(xué)習(xí)過程學(xué)習(xí)過程。 此外,當(dāng)數(shù)據(jù)元素的值多于兩個(gè)時(shí)此外,當(dāng)數(shù)據(jù)元素的值多于兩個(gè)時(shí)(例如,例如,6.3.4節(jié)例子中節(jié)例子中假設(shè)對機(jī)票需細(xì)分為頭等艙、二等艙和經(jīng)濟(jì)艙等多種級假設(shè)對機(jī)票需細(xì)分為頭等艙、二等艙和經(jīng)濟(jì)艙等多種級別時(shí)別時(shí)),判定表的,判定表的簡潔程度簡潔程度也將下降。也將下降。 判定樹判定樹是判定表的變種,也能清晰地表示復(fù)雜的條件組是判定表的變種,也能清晰地表示復(fù)雜的條件組合與應(yīng)
37、做的動(dòng)作之間的對應(yīng)關(guān)系。合與應(yīng)做的動(dòng)作之間的對應(yīng)關(guān)系。6.3.5 判定樹判定樹2021-12-9大連理工大學(xué)軟件學(xué)院51圖6.7 用判定樹表示計(jì)算行李費(fèi)的算法2021-12-9大連理工大學(xué)軟件學(xué)院52 優(yōu)點(diǎn):優(yōu)點(diǎn): 形式簡單形式簡單 缺點(diǎn):缺點(diǎn): 簡潔性低:同一個(gè)值輸入多次,越接近樹葉重簡潔性低:同一個(gè)值輸入多次,越接近樹葉重復(fù)越多復(fù)越多 分枝次序影響簡潔度分枝次序影響簡潔度6.3.5 判定樹判定樹2021-12-9大連理工大學(xué)軟件學(xué)院53 PDL也稱為也稱為偽碼偽碼,這是一個(gè)籠統(tǒng)的名稱,有許多種不同,這是一個(gè)籠統(tǒng)的名稱,有許多種不同的過程設(shè)計(jì)語言在使用。它是用的過程設(shè)計(jì)語言在使用。它是用正文
38、形式正文形式表示數(shù)據(jù)和處表示數(shù)據(jù)和處理過程的設(shè)計(jì)工具。理過程的設(shè)計(jì)工具。 PDL具有嚴(yán)格的關(guān)鍵字外部語法,用于定義控制結(jié)構(gòu)和具有嚴(yán)格的關(guān)鍵字外部語法,用于定義控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu);另一方面,數(shù)據(jù)結(jié)構(gòu);另一方面,PDL表示實(shí)際操作和條件的內(nèi)部表示實(shí)際操作和條件的內(nèi)部語法通常又是靈活自由的,以便可以適應(yīng)各種工程項(xiàng)目語法通常又是靈活自由的,以便可以適應(yīng)各種工程項(xiàng)目的需要。的需要。 因此,一般說來因此,一般說來PDL是一種是一種“混雜混雜”語言,它使用一種語言,它使用一種語言語言(通常是某種自然語言通常是某種自然語言)的詞匯,同時(shí)卻使用另一種的詞匯,同時(shí)卻使用另一種語言語言(某種結(jié)構(gòu)化的程序設(shè)計(jì)語言某種
39、結(jié)構(gòu)化的程序設(shè)計(jì)語言)的語法。的語法。6.3.6 過程設(shè)計(jì)語言過程設(shè)計(jì)語言(PDL)2021-12-9大連理工大學(xué)軟件學(xué)院546.3.6 過程設(shè)計(jì)語言過程設(shè)計(jì)語言(PDL)2021-12-9大連理工大學(xué)軟件學(xué)院552021-12-9大連理工大學(xué)軟件學(xué)院56 特點(diǎn):特點(diǎn): 關(guān)鍵字的固定語法:提供了結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說明、模塊化關(guān)鍵字的固定語法:提供了結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說明、模塊化的特點(diǎn)的特點(diǎn) 自然語言的自由語法自然語言的自由語法 數(shù)據(jù)說明的手段數(shù)據(jù)說明的手段 模塊定義和調(diào)用的技術(shù)模塊定義和調(diào)用的技術(shù) 優(yōu)點(diǎn):優(yōu)點(diǎn): 可以作為注釋可以作為注釋 方便書寫方便書寫 已經(jīng)有自動(dòng)處理程序存在,可以自動(dòng)生
40、成程序代碼已經(jīng)有自動(dòng)處理程序存在,可以自動(dòng)生成程序代碼6.3.6 過程設(shè)計(jì)語言過程設(shè)計(jì)語言(PDL)2021-12-9大連理工大學(xué)軟件學(xué)院57 在許多應(yīng)用領(lǐng)域中信息都有清楚的層次結(jié)構(gòu),輸入數(shù)在許多應(yīng)用領(lǐng)域中信息都有清楚的層次結(jié)構(gòu),輸入數(shù)據(jù)、內(nèi)部存儲的信息據(jù)、內(nèi)部存儲的信息(數(shù)據(jù)庫或文件數(shù)據(jù)庫或文件)以及輸出數(shù)據(jù)都以及輸出數(shù)據(jù)都可能有獨(dú)特的結(jié)構(gòu)??赡苡歇?dú)特的結(jié)構(gòu)。 數(shù)據(jù)結(jié)構(gòu)既影響程序的結(jié)構(gòu)又影響程序的處理過程,數(shù)據(jù)結(jié)構(gòu)既影響程序的結(jié)構(gòu)又影響程序的處理過程,重復(fù)出現(xiàn)的數(shù)據(jù)通常由具有循環(huán)控制結(jié)構(gòu)的程序來處重復(fù)出現(xiàn)的數(shù)據(jù)通常由具有循環(huán)控制結(jié)構(gòu)的程序來處理,選擇數(shù)據(jù)理,選擇數(shù)據(jù)(可能出現(xiàn)也可能不出現(xiàn)的信
41、息可能出現(xiàn)也可能不出現(xiàn)的信息)要用帶要用帶有分支控制結(jié)構(gòu)的程序來處理。有分支控制結(jié)構(gòu)的程序來處理。 層次的數(shù)據(jù)組織通常和使用這些數(shù)據(jù)的程序的層次結(jié)層次的數(shù)據(jù)組織通常和使用這些數(shù)據(jù)的程序的層次結(jié)構(gòu)十分相似。構(gòu)十分相似。6.4 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法2021-12-9大連理工大學(xué)軟件學(xué)院58 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法的最終目標(biāo)是得出對程序處理過面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法的最終目標(biāo)是得出對程序處理過程的描述。程的描述。 這種設(shè)計(jì)方法并不明顯地使用軟件結(jié)構(gòu)的概念,模塊是設(shè)這種設(shè)計(jì)方法并不明顯地使用軟件結(jié)構(gòu)的概念,模塊是設(shè)計(jì)過程的副產(chǎn)品,對于模塊獨(dú)立原理也沒有給予應(yīng)有的重計(jì)過程的副產(chǎn)品,
42、對于模塊獨(dú)立原理也沒有給予應(yīng)有的重視。視。 因此,這種方法最適合于在詳細(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è)模塊的處理過程。6.4 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法2021-12-9大連理工大學(xué)軟件學(xué)院596.4.1 Jackson圖圖雖然程序中實(shí)際使用的數(shù)據(jù)結(jié)構(gòu)種類繁多,但雖然程序中實(shí)際使用的數(shù)據(jù)結(jié)構(gòu)種類繁多,但是它們的數(shù)據(jù)元素彼此間的邏輯關(guān)系卻只有順是它們的數(shù)據(jù)元素彼此間的邏輯關(guān)系卻只有順序、選擇和重復(fù)三類,
43、因此,邏輯數(shù)據(jù)結(jié)構(gòu)也序、選擇和重復(fù)三類,因此,邏輯數(shù)據(jù)結(jié)構(gòu)也只有這三類。只有這三類。1. 順序結(jié)構(gòu)順序結(jié)構(gòu)順序結(jié)構(gòu)的數(shù)據(jù)由一個(gè)或多個(gè)數(shù)據(jù)元素組成,每順序結(jié)構(gòu)的數(shù)據(jù)由一個(gè)或多個(gè)數(shù)據(jù)元素組成,每個(gè)元素按確定次序出現(xiàn)一次。圖個(gè)元素按確定次序出現(xiàn)一次。圖6.8是表示順序結(jié)是表示順序結(jié)構(gòu)的構(gòu)的Jackson圖的一個(gè)例子。圖的一個(gè)例子。2021-12-9大連理工大學(xué)軟件學(xué)院60圖6.8 A由B、C、D三個(gè)元素順序組成(每個(gè)元素只出現(xiàn)一次,出現(xiàn)的次序依次是B、C和D)2021-12-9大連理工大學(xué)軟件學(xué)院612. 選擇結(jié)構(gòu)選擇結(jié)構(gòu)選擇結(jié)構(gòu)的數(shù)據(jù)包含兩個(gè)或多個(gè)數(shù)據(jù)元素,每選擇結(jié)構(gòu)的數(shù)據(jù)包含兩個(gè)或多個(gè)數(shù)據(jù)元素,
44、每次使用這個(gè)數(shù)據(jù)時(shí)按一定條件從這些數(shù)據(jù)元素次使用這個(gè)數(shù)據(jù)時(shí)按一定條件從這些數(shù)據(jù)元素中選擇一個(gè)。圖中選擇一個(gè)。圖6.9是表示三個(gè)中選一個(gè)結(jié)構(gòu)的是表示三個(gè)中選一個(gè)結(jié)構(gòu)的Jackson圖。圖。圖6.9 根據(jù)條件A是B或C或D中的某一個(gè)(注意:在B、C和D的右上角有小圓圈做標(biāo)記)2021-12-9大連理工大學(xué)軟件學(xué)院623. 重復(fù)結(jié)構(gòu)重復(fù)結(jié)構(gòu)重復(fù)結(jié)構(gòu)的數(shù)據(jù),根據(jù)使用時(shí)的條件由一個(gè)數(shù)重復(fù)結(jié)構(gòu)的數(shù)據(jù),根據(jù)使用時(shí)的條件由一個(gè)數(shù)據(jù)元素出現(xiàn)零次或多次構(gòu)成。圖據(jù)元素出現(xiàn)零次或多次構(gòu)成。圖6.10是表示重是表示重復(fù)結(jié)構(gòu)的復(fù)結(jié)構(gòu)的Jackson圖。圖。圖6.10 A由B出現(xiàn)N次(N0)組成(注意:在B的右上角有星號標(biāo)
45、記)2021-12-9大連理工大學(xué)軟件學(xué)院636.4.2 改進(jìn)的改進(jìn)的Jackson圖圖(a) 順序結(jié)構(gòu),B、C、D中任一個(gè)都不能是選擇出現(xiàn)或重復(fù)出現(xiàn)的數(shù)據(jù)元素(即,不能是右上角有小圓或星號標(biāo)記的元素);(b) 選擇結(jié)構(gòu),S右面括號中的數(shù)字i是分支條件的編號;(c) 可選結(jié)構(gòu),A或者是元素B或者不出現(xiàn)(可選結(jié)構(gòu)是選擇結(jié)構(gòu)的一種常見的特殊形式);(d) 重復(fù)結(jié)構(gòu),循環(huán)結(jié)束條件的編號為i。2021-12-9大連理工大學(xué)軟件學(xué)院64比較比較 層次方框圖層次方框圖:描述數(shù)據(jù)的層次結(jié)構(gòu),一個(gè):描述數(shù)據(jù)的層次結(jié)構(gòu),一個(gè)方框代表一個(gè)模塊,模塊間是組成關(guān)系。方框代表一個(gè)模塊,模塊間是組成關(guān)系。 層次圖層次圖:
46、模塊間調(diào)用關(guān)系。:模塊間調(diào)用關(guān)系。 Jackson圖圖:層次方框圖的精化,一個(gè)方框:層次方框圖的精化,一個(gè)方框代表幾個(gè)語句,一個(gè)模塊內(nèi)的組成關(guān)系。代表幾個(gè)語句,一個(gè)模塊內(nèi)的組成關(guān)系。2021-12-9大連理工大學(xué)軟件學(xué)院656.4.3 Jackson方法方法Jackson結(jié)構(gòu)程序設(shè)計(jì)方法基本上由下述五個(gè)步結(jié)構(gòu)程序設(shè)計(jì)方法基本上由下述五個(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)中有對應(yīng)關(guān)系的找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對應(yīng)關(guān)系的數(shù)據(jù)單
47、元。所謂有對應(yīng)關(guān)系是指有直接的因果關(guān)系,數(shù)據(jù)單元。所謂有對應(yīng)關(guān)系是指有直接的因果關(guān)系,在程序中可以同時(shí)處理的數(shù)據(jù)單元在程序中可以同時(shí)處理的數(shù)據(jù)單元(對于重復(fù)出現(xiàn)的對于重復(fù)出現(xiàn)的數(shù)據(jù)單元必須重復(fù)的次序和次數(shù)都相同才可能有對數(shù)據(jù)單元必須重復(fù)的次序和次數(shù)都相同才可能有對應(yīng)關(guān)系應(yīng)關(guān)系)。2021-12-9大連理工大學(xué)軟件學(xué)院663.用下述三條規(guī)則從描繪用下述三條規(guī)則從描繪數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)的Jackson圖圖導(dǎo)出描導(dǎo)出描繪繪程序結(jié)構(gòu)的程序結(jié)構(gòu)的Jackson圖圖。第一,為每對有對應(yīng)關(guān)系的數(shù)據(jù)單元,按照它們在數(shù)據(jù)結(jié)第一,為每對有對應(yīng)關(guān)系的數(shù)據(jù)單元,按照它們在數(shù)據(jù)結(jié)構(gòu)圖中的層次在程序結(jié)構(gòu)圖的構(gòu)圖中的層次在
48、程序結(jié)構(gòu)圖的相應(yīng)層次畫相應(yīng)層次畫一個(gè)處理框一個(gè)處理框(注意,注意,如果這對數(shù)據(jù)單元在輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中所處如果這對數(shù)據(jù)單元在輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中所處的層次不同,則和它們對應(yīng)的處理框在程序結(jié)構(gòu)圖中所處的層次不同,則和它們對應(yīng)的處理框在程序結(jié)構(gòu)圖中所處的層次與它們之中在數(shù)據(jù)結(jié)構(gòu)圖中的層次與它們之中在數(shù)據(jù)結(jié)構(gòu)圖中層次低層次低的那個(gè)對應(yīng)的那個(gè)對應(yīng))。第二,根據(jù)第二,根據(jù)輸入數(shù)據(jù)結(jié)構(gòu)中剩余輸入數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層的每個(gè)數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對應(yīng)的處理次,在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對應(yīng)的處理框框。2021-12-9大連理工大學(xué)軟
49、件學(xué)院67 第三,根據(jù)第三,根據(jù)輸出數(shù)據(jù)結(jié)構(gòu)中剩余輸出數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次,的每個(gè)數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對應(yīng)的處理框。在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對應(yīng)的處理框。 總之,描繪程序結(jié)構(gòu)的總之,描繪程序結(jié)構(gòu)的Jackson圖應(yīng)該綜合輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)圖應(yīng)該綜合輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)的層次關(guān)系而導(dǎo)出來。據(jù)結(jié)構(gòu)的層次關(guān)系而導(dǎo)出來。 在導(dǎo)出程序結(jié)構(gòu)圖的過程中,由于改進(jìn)的在導(dǎo)出程序結(jié)構(gòu)圖的過程中,由于改進(jìn)的Jackson圖規(guī)定在構(gòu)成圖規(guī)定在構(gòu)成順序結(jié)構(gòu)的元素中不能有重復(fù)出現(xiàn)或選擇出現(xiàn)的元素,因此可順序結(jié)構(gòu)的元素中不能有重復(fù)出現(xiàn)或選擇出現(xiàn)的元素
50、,因此可能需要增加中間層次處理框。能需要增加中間層次處理框。4、列出所有操作和條件、列出所有操作和條件(包括分支條件和循環(huán)結(jié)束條件包括分支條件和循環(huán)結(jié)束條件),并且把它們,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置分配到程序結(jié)構(gòu)圖的適當(dāng)位置。2021-12-9大連理工大學(xué)軟件學(xué)院685、用偽碼表示程序。、用偽碼表示程序。2021-12-9大連理工大學(xué)軟件學(xué)院69例一個(gè)正文文件由若干個(gè)記錄組成,每個(gè)記錄是一個(gè)字符串。要例一個(gè)正文文件由若干個(gè)記錄組成,每個(gè)記錄是一個(gè)字符串。要求統(tǒng)計(jì)每個(gè)記錄中空格字符的個(gè)數(shù),以及文件中空格字符的總個(gè)數(shù)。求統(tǒng)計(jì)每個(gè)記錄中空格字符的個(gè)數(shù),以及文件中空格字符的總個(gè)數(shù)。要求的輸出
51、數(shù)據(jù)格式是,每復(fù)制一行輸入字符串之后,另起一行印出要求的輸出數(shù)據(jù)格式是,每復(fù)制一行輸入字符串之后,另起一行印出這個(gè)字符串中的空格數(shù),最后印出文件中空格的總個(gè)數(shù)。這個(gè)字符串中的空格數(shù),最后印出文件中空格的總個(gè)數(shù)。2021-12-9大連理工大學(xué)軟件學(xué)院70圖6.12 表示輸入/輸出數(shù)據(jù)結(jié)構(gòu)的Jackson圖(a) 輸入數(shù)據(jù)結(jié)構(gòu);(b) 輸出數(shù)據(jù)結(jié)構(gòu)2021-12-9大連理工大學(xué)軟件學(xué)院71圖圖6.13 描繪統(tǒng)計(jì)空格程序結(jié)構(gòu)的描繪統(tǒng)計(jì)空格程序結(jié)構(gòu)的Jackson圖圖2021-12-9大連理工大學(xué)軟件學(xué)院72 列出所有操作和條件,并把它們分配到程序結(jié)構(gòu)列出所有操作和條件,并把它們分配到程序結(jié)構(gòu)圖的適當(dāng)
52、位置:圖的適當(dāng)位置:2021-12-9大連理工大學(xué)軟件學(xué)院73圖圖6.14 把操作和條件分配把操作和條件分配到程序結(jié)構(gòu)圖的適當(dāng)位置到程序結(jié)構(gòu)圖的適當(dāng)位置2021-12-9大連理工大學(xué)軟件學(xué)院74思考題思考題 用用jackson圖描繪下述的一列火車的構(gòu)成:圖描繪下述的一列火車的構(gòu)成:一列火車最多有兩個(gè)火車頭。只有一個(gè)火車頭時(shí)則位于列一列火車最多有兩個(gè)火車頭。只有一個(gè)火車頭時(shí)則位于列車最前列,若還有第二個(gè)火車頭時(shí),則第二個(gè)火車頭位于車最前列,若還有第二個(gè)火車頭時(shí),則第二個(gè)火車頭位于列車最后面?;疖囶^既可能是內(nèi)燃機(jī)車也可能是電氣機(jī)車。列車最后面?;疖囶^既可能是內(nèi)燃機(jī)車也可能是電氣機(jī)車。車廂分為硬座車廂、硬臥車廂和軟臥車廂車廂分為硬座車廂、硬臥車廂和軟臥車廂3種。硬座車廂種。硬座車廂在所有車廂的前面,軟臥車廂在所有車廂的后面。此外,在所有車廂的前面,軟臥車廂在所有車廂的后面。此外,在硬臥車廂和軟臥車廂之間還有一節(jié)餐車。在硬臥車廂和軟臥車廂之間還有一節(jié)餐車。2021-12-9大連理工大學(xué)軟件學(xué)院75思考題答案思考題答案2021-12-9大連理工大學(xué)軟
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024石家莊公租房租賃合同編寫指南及范本3篇
- 2024版貨物訂購合同
- 2024英文企業(yè)海外市場拓展與業(yè)務(wù)洽談合同3篇
- 2025年度園林景觀沙石供應(yīng)與施工承包合同樣本4篇
- 2025年度醫(yī)藥代銷合同模板(醫(yī)藥供應(yīng)鏈)4篇
- 2025年度商業(yè)街區(qū)物業(yè)管理與服務(wù)合同3篇
- 2025年度商場家具安裝與商業(yè)空間優(yōu)化承包協(xié)議4篇
- 2024版權(quán)評估合同3篇帶眉腳
- 2025年度溫室大棚配套設(shè)施供應(yīng)與售后服務(wù)合同4篇
- 2025年度智慧城市基礎(chǔ)設(shè)施建設(shè)承包協(xié)議4篇
- 信訪維穩(wěn)工作應(yīng)急預(yù)案范文(精選3篇)
- 應(yīng)用文全套ppt課件(完整版)
- 2022年《飲食消費(fèi)心理學(xué)》教案
- 貸款申請表(標(biāo)準(zhǔn)模版)
- DB11-T 641-2018 住宅工程質(zhì)量保修規(guī)程
- (完整版)壞死性筋膜炎PPT資料課件
- 談基層稅務(wù)干部隊(duì)伍建設(shè)難點(diǎn)及應(yīng)對經(jīng)驗(yàn)
- 衛(wèi)星的坐標(biāo)計(jì)算
- 外國人來華工作許可申請表
- DVPR設(shè)計(jì)驗(yàn)證計(jì)劃和報(bào)告
- 濕式電除塵器使用說明書
評論
0/150
提交評論