軟件工程第6章_第1頁
軟件工程第6章_第2頁
軟件工程第6章_第3頁
軟件工程第6章_第4頁
軟件工程第6章_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、第第6章章 詳細設計詳細設計6.1 結(jié)構(gòu)程序設計結(jié)構(gòu)程序設計6.2 人機界面設計人機界面設計6.3 過程設計的工具過程設計的工具6.5 程序復雜程度的度量程序復雜程度的度量詳細設計詳細設計正確地設計每個模塊的內(nèi)部的處理過程;正確地設計每個模塊的內(nèi)部的處理過程;設計的過程(流程)應該盡可能簡明易懂;設計的過程(流程)應該盡可能簡明易懂;詳細設計階段的任務還不是具體地編寫程序;詳細設計階段的任務還不是具體地編寫程序;結(jié)構(gòu)化程序設計;結(jié)構(gòu)化程序設計; 結(jié)構(gòu)程序設計盡可能少用結(jié)構(gòu)程序設計盡可能少用GO TO語句語句,通常在檢測出錯誤通常在檢測出錯誤時才使用時才使用GO TO語句。語句。On Error

2、 GoTo errh: errh: MsgBox Err.Description結(jié)構(gòu)程序設計結(jié)構(gòu)程序設計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)程序設計結(jié)構(gòu)程序設計6.1 3種基本的控制結(jié)構(gòu)種基本的控制結(jié)構(gòu) 還可以使用還可以使用DO-CASE型多分支結(jié)構(gòu)和型多分支結(jié)構(gòu)和DO-UNTIL型循環(huán)結(jié)構(gòu)。型循環(huán)結(jié)構(gòu)。一般交互指南一般交互指南信息顯示指南信息顯示指南數(shù)據(jù)輸入指南數(shù)據(jù)輸入指南1. 一般交互指南一般交互指南6.2.3 人機界面設計指南人機界面設計指南6.2 人機界面設計人機界面設計 保

3、持一致性。保持一致性。 (2) (2) 提供有意義的反饋提供有意義的反饋 。(3) (3) 在執(zhí)行有較大破壞性的動作之前要求用戶確認。在執(zhí)行有較大破壞性的動作之前要求用戶確認。(4) (4) 允許取消絕大多數(shù)操作。允許取消絕大多數(shù)操作。(5) (5) 減少在兩次操作之間必須記憶的信息量。減少在兩次操作之間必須記憶的信息量。 (6) (6) 提高對話、移動和思考的效率。提高對話、移動和思考的效率。- - 盡量減少用戶擊鍵的次數(shù)盡量減少用戶擊鍵的次數(shù); ;- - 設計屏幕布局時應該考慮盡量減少鼠標移動的距離設計屏幕布局時應該考慮盡量減少鼠標移動的距離; ;- - 應該盡量避免出現(xiàn)用戶問應該盡量避免

4、出現(xiàn)用戶問“這是什么意思這是什么意思? ?”的情況的情況. .(7) (7) 允許犯錯誤。允許犯錯誤。(8) (8) 按功能對動作分類,并據(jù)此設計屏幕布局。按功能對動作分類,并據(jù)此設計屏幕布局。 - - 設計者應該盡力提高命令和動作組織的設計者應該盡力提高命令和動作組織的“內(nèi)聚性內(nèi)聚性”. .(9) (9) 提供對用戶工作內(nèi)容敏感的幫助設施。提供對用戶工作內(nèi)容敏感的幫助設施。(10) (10) 用簡單動詞或動詞短語作為命令名。用簡單動詞或動詞短語作為命令名。2. 信息顯示指南信息顯示指南只顯示與當前工作內(nèi)容有關(guān)的信息只顯示與當前工作內(nèi)容有關(guān)的信息( (數(shù)據(jù)、菜單、圖形數(shù)據(jù)、菜單、圖形) )。

5、不要用數(shù)據(jù)淹沒用戶,應該用便于用戶迅速吸取信息的不要用數(shù)據(jù)淹沒用戶,應該用便于用戶迅速吸取信息的方式來表示數(shù)據(jù)。方式來表示數(shù)據(jù)。( (統(tǒng)計圖表統(tǒng)計圖表) )(3) (3) 使用一致的標記、標準的縮寫和可預知的顏色。使用一致的標記、標準的縮寫和可預知的顏色。 (4) (4) 允許用戶保持可視化的語境。(電子地圖)允許用戶保持可視化的語境。(電子地圖)(5) (5) 產(chǎn)生有意義的出錯信息。產(chǎn)生有意義的出錯信息。(6) (6) 使用大小寫、縮進和文本分組以幫助理解。使用大小寫、縮進和文本分組以幫助理解。(7) (7) 使用窗口分隔不同類型的信息。使用窗口分隔不同類型的信息。(8) (8) 使用使用“

6、模擬模擬”顯示方式表示信息,以使信息更容易被顯示方式表示信息,以使信息更容易被用戶提取。用戶提取。(9)(9)高效率地使用顯示屏。高效率地使用顯示屏。3. 數(shù)據(jù)輸入指南數(shù)據(jù)輸入指南(1)(1)盡量減少用戶的輸入動作。盡量減少用戶的輸入動作。(2)(2)保持信息顯示和數(shù)據(jù)輸入之間的一致性。保持信息顯示和數(shù)據(jù)輸入之間的一致性。( (文字文字大小、顏色和位置大小、顏色和位置) ) (3)(3)允許用戶自定義輸入。允許用戶自定義輸入。 (4)(4)互應該是靈活的,并且可調(diào)整成用戶最喜歡的輸互應該是靈活的,并且可調(diào)整成用戶最喜歡的輸入方式。入方式。3. 數(shù)據(jù)輸入指南數(shù)據(jù)輸入指南(5)(5)使在當前動作語

7、境中不適用的命令不起作用。使在當前動作語境中不適用的命令不起作用。(6)(6)讓用戶控制交互流。讓用戶控制交互流。 (7)(7)對所有輸入動作都提供幫助。對所有輸入動作都提供幫助。(8)(8)消除冗余的輸入。消除冗余的輸入。 程序流程圖至今仍在廣泛使用。程序流程圖至今仍在廣泛使用。6.3 過程設計的工具過程設計的工具 6.3.1 程序流程圖程序流程圖圖圖6.4 盒圖的基本符號盒圖的基本符號6.3.2 盒圖盒圖(N-S圖圖) 調(diào)用子程序PAD是問題分析圖是問題分析圖(problem analysis diagram)。1973年由日本日立公司發(fā)明。年由日本日立公司發(fā)明。6.3.3 PAD圖圖圖圖

8、6.5 PAD圖的基本符號圖的基本符號圖圖6.6 使用使用PAD圖提供的定義功能圖提供的定義功能來逐步求精的例子來逐步求精的例子x4TF x5ighfkx1TFb x6 ajx21cx323dek :例:例:N-S圖與圖與PAD的轉(zhuǎn)換的轉(zhuǎn)換開始開始 結(jié)束結(jié)束 aj Until x5i Until x6bx1kfx4ghdefkx2de123 While x3c一張判定表由一張判定表由4部分組成:部分組成:左上部列出所有條件;左上部列出所有條件;左下部是所有可能做的動作;左下部是所有可能做的動作;右上部是表示各種條件組合的一個矩陣;右上部是表示各種條件組合的一個矩陣;右下部是和每種條件組合相對應

9、的動作。右下部是和每種條件組合相對應的動作。6.3.4 判定表判定表 條件條件 操作操作 條件組合矩陣條件組合矩陣 動作動作 假設某航空公司規(guī)定:假設某航空公司規(guī)定:乘客可以免費托運重量不超過乘客可以免費托運重量不超過30kg的行李。的行李。當行李重量超過當行李重量超過30kg時:時:對頭等艙的國內(nèi)乘客超重部分每公斤收費對頭等艙的國內(nèi)乘客超重部分每公斤收費4 4元元對其他艙的國內(nèi)乘客超重部分每公斤收費對其他艙的國內(nèi)乘客超重部分每公斤收費6 6元元對外國乘客超重部分每公斤收費比國內(nèi)乘客多一倍,對外國乘客超重部分每公斤收費比國內(nèi)乘客多一倍,對殘疾乘客超重部分每公斤收費比正常乘客少一半。對殘疾乘客超

10、重部分每公斤收費比正常乘客少一半。 用判定表可以清楚地表示與上述每種條件組合相用判定表可以清楚地表示與上述每種條件組合相對應的計算行李費的算法。(對應的計算行李費的算法。(P128P128)國內(nèi)乘客TTTTFFFF頭等倉TFTFTFTF殘疾乘客FFTTFFTT行李重量30T F F F FF F F F免費 (W-30)*2(W-30)*3(W-30)*4(W-30)*6(W-30)*8(W-30)*12 當數(shù)據(jù)元素的值多于兩個時當數(shù)據(jù)元素的值多于兩個時( (例如,例如,6.3.46.3.4例子例子中假設對機票需細分為頭等艙、二等艙和經(jīng)濟艙等中假設對機票需細分為頭等艙、二等艙和經(jīng)濟艙等多種級別

11、時多種級別時) ),判定表的簡潔程度也將下降。,判定表的簡潔程度也將下降。6.3.5 判定樹判定樹 表示復雜的條件組合與應做的動作之間的對應關(guān)系表示復雜的條件組合與應做的動作之間的對應關(guān)系; ; 判定樹的簡潔性不如判定表判定樹的簡潔性不如判定表, ,但易理解但易理解 經(jīng)常出現(xiàn)同一個值重復寫多遍經(jīng)常出現(xiàn)同一個值重復寫多遍; ; 且葉端重復次數(shù)急劇增加且葉端重復次數(shù)急劇增加. . 由于判定樹的分枝次序?qū)τ谧罱K畫出的判定樹的簡潔程由于判定樹的分枝次序?qū)τ谧罱K畫出的判定樹的簡潔程度有較大影響度有較大影響 所以選擇哪一個條件作為第一個分枝是至關(guān)重要的所以選擇哪一個條件作為第一個分枝是至關(guān)重要的. .圖圖

12、6.7 用判定樹表示計算行李費的算法用判定樹表示計算行李費的算法6.3.6 過程設計語言過程設計語言PDL(Program Design Language)應該具有下述特點:應該具有下述特點:關(guān)鍵字的固定語法,三種控制結(jié)構(gòu)。關(guān)鍵字的固定語法,三種控制結(jié)構(gòu)。為了使結(jié)構(gòu)清晰和可讀性好,通常在控制結(jié)構(gòu)的頭和尾都為了使結(jié)構(gòu)清晰和可讀性好,通常在控制結(jié)構(gòu)的頭和尾都有關(guān)鍵字,例如,有關(guān)鍵字,例如,if.fi(if.fi(或或endif).endif).(2) (2) 自然語言的自由語法,描述處理。自然語言的自由語法,描述處理。(3) (3) 數(shù)據(jù)說明。數(shù)據(jù)說明。純量、數(shù)組、鏈表或?qū)哟蔚葦?shù)據(jù)結(jié)構(gòu)。純量、數(shù)組

13、、鏈表或?qū)哟蔚葦?shù)據(jù)結(jié)構(gòu)。(4) (4) 模塊定義和調(diào)用的技術(shù),應該提供各種接口模塊定義和調(diào)用的技術(shù),應該提供各種接口描述模式。描述模式。(5)(5)可以作為注釋直接插在源程序中間??梢宰鳛樽⑨屩苯硬逶谠闯绦蛑虚g。1.數(shù)據(jù)說明數(shù)據(jù)說明 declare數(shù)據(jù)名數(shù)據(jù)名 as 限定詞限定詞2.子程序結(jié)構(gòu)子程序結(jié)構(gòu)/function procedure 子程序名子程序名 interface 參數(shù)表參數(shù)表 分程序或分程序或PDL語句語句 return end 子程序名子程序名3.分程序結(jié)構(gòu)分程序結(jié)構(gòu)begin 分程序名分程序名 PDL語句語句end 分程序名分程序名4.選擇選擇if 條件條件 then PD

14、L語句語句else PDL語句語句end if 5.WHILE型循環(huán)型循環(huán) loop while 條件條件 PDL語句語句 end loop6.UNTIL型循環(huán)型循環(huán) loop until 條件條件 PDL語句組語句組 end loop 7.CASE型型case 選擇因子選擇因子 of標號標號,標號,標號:PDL語句語句end case8.輸入輸入/輸出結(jié)構(gòu)輸出結(jié)構(gòu)print read display input output等等PDL: : begin execute process a loop until condition x8 Begin/ execute process b if

15、condition x1 then begin/ execute process f if condition x6 then loop until condition x7 execute process i end loop else begin/ execute process g execute process h end/ abx1x2x5fcx3x4deghix6x7x8j end if end/ else case xi of x2:loop while condition x5 execute process c end loop x3: execute process d x

16、4: execute process e end case end if end/ end loop exceute process j endabx1x2x5fcx3x4deghix6x7x8j6.5 程序復雜程度的度量程序復雜程度的度量6.5.1 McCabe方法方法1. 流圖流圖 McCabeMcCabe方法根據(jù)程序控制流的復雜程度定方法根據(jù)程序控制流的復雜程度定量度量程序的復雜程度,這樣度量出的結(jié)果量度量程序的復雜程度,這樣度量出的結(jié)果稱為程序的稱為程序的環(huán)形復雜度環(huán)形復雜度。一個結(jié)點(圓)代表一條或多條語句(幾個一個結(jié)點(圓)代表一條或多條語句(幾個順序執(zhí)行語句);順序執(zhí)行語句);一

17、個順序語句和一個菱形判斷框可以對應一一個順序語句和一個菱形判斷框可以對應一個結(jié)點;個結(jié)點;一條邊必須終止于一個結(jié)點(即使該結(jié)點不一條邊必須終止于一個結(jié)點(即使該結(jié)點不表示任何結(jié)點);表示任何結(jié)點);當包含復合條件時,需要進行分解。當包含復合條件時,需要進行分解。圖圖6.16 由由PDL翻譯成的流圖翻譯成的流圖圖圖6.17 由包含復合條件的由包含復合條件的PDL映射成的流圖映射成的流圖2. 計算環(huán)形復雜度的方法計算環(huán)形復雜度的方法 環(huán)形復雜度定量度量程序的邏輯復雜度。有了描繪程序環(huán)形復雜度定量度量程序的邏輯復雜度。有了描繪程序控制流的流圖之后,可以用下述控制流的流圖之后,可以用下述3種方法中的任何一種來計種方法中的任何一種來計算環(huán)形復雜度。算環(huán)形復雜度。(1) 流圖中的區(qū)域數(shù)等于環(huán)形復雜度。流圖中的區(qū)域數(shù)等于環(huán)形復雜度。(2) 流圖流圖G的環(huán)形復雜度的環(huán)形復雜度V(G)=E-N+2,其中,其中,E是流圖中邊的是流圖中邊的條數(shù),條數(shù),

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論