第6章 詳細設計_第1頁
第6章 詳細設計_第2頁
第6章 詳細設計_第3頁
第6章 詳細設計_第4頁
第6章 詳細設計_第5頁
已閱讀5頁,還剩92頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第6章詳細設計

6.1結構程序設計6.2人機界面設計6.3過程設計的工具6.4面向數據結構的設計方法6.5程序復雜程度的定量度量詳細設計階段的根本目標:確定應該怎樣具體地實現所要求的系統。經過這個階段的設計工作,應該得出對目標系統的精確描述,從而在編碼階段可以把這個描述直接翻譯成用某種程序設計語言書寫的程序。結構程序設計技術是實現上述目標的關鍵技術,因此是詳細設計的邏輯基礎。6.1結構程序設計經典定義:如果一個程序的代碼塊僅僅通過順序、選擇和循環(huán)這3種基本控制結構進行連接,并且每個代碼塊只有一個入口和一個出口,則稱這個程序是結構化的。3種基本的控制結構為了實際使用方便起見,常常還允許使用DO-UNTIL和DO-CASE兩種控制結構。有時需要立即從循環(huán)(甚至嵌套的循環(huán))中轉移出來,允許使用LEAVE(或BREAK)結構。LEAVE或BREAK結構實質上是受限制的GOTO語句,用于轉移到循環(huán)結構后面。其他常用的控制結構經典的結構程序設計:只允許使用順序、IF-THEN-ELSE型分支和DO-WHILE型循環(huán)這3種基本控制結構;擴展的結構程序設計:如果除了上述3種基本控制結構之外,還允許使用DO-CASE型多分支結構和DO-UNTIL型循環(huán)結構;修正的結構程序設計:再加上允許使用LEAVE(或BREAK)結構。6.2人機界面設計人機界面(HumanMachineInteraction,簡稱HMI),是人與計算機之間傳遞、交換信息的媒介和對話接口,是計算機系統的重要組成部分,又稱用戶界面或使用者界面人機界面設計人機界面設計是接口設計的重要組成部分。對于交互式系統來說,人機界面設計和數據設計、體系結構設計及過程設計一樣重要。人機界面的設計質量,直接影響用戶對軟件產品的評價,從而影響軟件產品的競爭力和壽命,必須對人機界面設計給予足夠重視。置用戶于控制之下。以不強迫用戶進入不必要的或不希望的動作的方式定義交互

減少用戶記憶負擔。減少用戶對短期記憶的要求

保持界面一致。用戶應以一致的方式展示和獲取信息

三條“黃金規(guī)則”:6.2.1設計問題設計人機界面過程中會遇到的4個問題:系統響應時間用戶幫助設施出錯信息處理命令交互1.系統響應時間系統響應時間指從用戶完成某個控制動作,到軟件給出預期的響應之間的這段時間。系統響應時間有兩個重要屬性:長度和易變性。長度:如果系統響應時間過長,用戶就會感到緊張和沮喪;系統響應時間過短會迫使用戶加快操作節(jié)奏,從而可能會犯錯誤。易變性:指系統響應時間相對于平均響應時間的偏差,即使系統響應時間較長,響應時間易變性低也有助于用戶建立起穩(wěn)定的工作節(jié)奏。2.用戶幫助設施大多數現代軟件都提供聯機幫助設施,用戶無須離開用戶界面就能解決自己的問題。常見的幫助設施可分為集成的和附加的兩類。集成的幫助設施設計在軟件里面,它對用戶工作內容是敏感的,用戶可以從與剛剛完成的操作有關的主題中選擇一個請求幫助。附加的幫助設施是在系統建成后再添加到軟件中的,它實際上是一種查詢能力有限的聯機用戶手冊。集成的幫助設施優(yōu)于附加的幫助設施。3.出錯信息處理出錯信息和警告信息,是出現問題時交互式系統給出的“壞消息”??衫斫庑裕粠椭?;指出負面后果;聽覺視覺提示;不能責怪用戶4.命令交互多數情況下,用戶既可以從菜單中選擇軟件功能,也可以通過鍵盤命令序列調用軟件功能。在理想的情況下,所有應用軟件都有一致的命令使用方法。

6.2.2設計過程用戶界面設計是一個迭代的過程,也就是說,通常先創(chuàng)建設計模型,再用原型實現這個設計模型,并由用戶試用和評估,然后根據用戶意見進行修改。為了支持上述迭代過程,各種用于界面設計和原型開發(fā)的軟件工具應運而生。這些工具被稱為用戶界面工具箱或用戶界面開發(fā)系統。6.2.3人機界面設計指南一般交互指南信息顯示指南數據輸入指南一般交互指南保持一致性。菜單、命令輸入、數據顯示等使用一致格式。提供有意義的、視覺和聽覺上的反饋。執(zhí)行破壞性動作前要求用戶確認。如刪除記錄。允許取消、撤銷操作。盡量減少記憶量。不用記憶看到操作界面即可進行下一步操作。

盡量減少按鍵次數、減少鼠標移動的距離,避免用戶問“這是什么意思”的情況。提高行動和思考的效率。允許操作員犯錯誤,但是可以恢復。按功能對動作分類,并據此設計屏幕布局。比如菜單,就是按動作類型組織命令。提供必要幫助,包括集成實時幫助和附加幫助文件。使用簡單動詞或動詞短語作為命令名信息顯示指南只顯示與當前工作內容有關的信息。盡量使用圖形或圖表直觀方式表現數據。使用一致的標記、標準的縮寫和可預知的顏色。產生有意義的出錯信息,用戶可理解的信息。使用大小寫、縮進和文本分組以幫助理解。使用窗口分割不同類型的信息。高效率使用顯示屏。數據輸入指南盡可能減輕用戶記憶,采用列表選擇。盡量減少用戶輸入動作,按鍵次數。使界面具有預見性和一致性。用戶應能控制數據輸入順序并使操作明確,采用與系統環(huán)境一致風格的數據輸入界面(如Windows操作系統)。防止用戶出錯。在設計中可采取確認輸入(只有用戶按下鍵,才確認),明確的移動(使用TAB鍵或鼠標在表中移動),明確的取消,已輸入的數據并不刪除。對刪除必須再一次確認,對致命錯誤,要警告并退出。對不太可信的數據輸入,要給出建議信息,處理不必停止。提供反饋。要使用戶能查看已輸入的內容,并提示有效的輸入提示或數值范圍。

按用戶速度輸入和自動格式化。用戶應能控制數據輸入速度并能進行自動格式化,對輸入的空格都能被接受。允許編輯。理想的情況,在輸入后能允許編輯且采用風格一致的編輯格式。數據輸入界面可通過對話設計方式,若條件具備盡可能采用自動輸入。特別是條碼、圖像、聲音輸入。消除冗余輸入。盡可能提供默認值;不要求輸入單位;程序可以自動計算的信息絕對不要用戶輸入;系統自動填入用戶已輸入過的內容。顏色使用指南:

限制同時顯示的顏色數。一般同一畫面不宜超過4或5種,可用不同層次及形狀來配合顏色,增加變化。畫面中活動對象顏色應鮮明,而非活動對象應暗淡。對象顏色應盡量不同,前景色宜鮮艷一些,背景則應暗淡。盡量避免不兼容的顏色放在一起,如黃與藍,紅與綠等,除非作對比時用。若用顏色表示某種信息或對象屬性,要使用戶懂得這種表示,且盡量用常規(guī)準則表示。黃月亮和藍月亮懷特效應斯特魯普效應6.3過程設計的工具

6.3.1程序流程圖程序流程圖又稱為程序框圖,它是歷史最悠久、使用最廣泛的描述過程設計的方法。它的主要優(yōu)點是對控制流程的描繪很直觀,便于初學者掌握。程序流程圖歷史悠久,至今仍在廣泛使用著。程序流程圖中使用的符號程序流程圖的主要缺點:程序流程圖本質上不是逐步求精的好工具,它誘使程序員過早地考慮程序的控制流程,而不去考慮程序的全局結構。程序流程圖中用箭頭代表控制流,因此程序員不受任何約束,可以完全不顧結構程序設計的精神,隨意轉移控制。程序流程圖不易表示數據結構。6.3.2盒圖(N-S圖)盒圖具有下述特點:功能域明確。不可能任意轉移控制。很容易確定局部和全程數據的作用域。很容易表現嵌套關系,也可以表示模塊的層次結構。盒圖的基本符號ax1cx2bdFTFTT例題:某程序流程圖如右圖所示,請用N-S圖表示。d

b

x

aFTCX26.3.3PAD圖PAD是問題分析圖(problemanalysisdiagram)的英文縮寫,自1973年由日本日立公司發(fā)明以后,已得到一定程度的推廣。它用二維樹形結構的圖來表示程序的控制流,將這種圖翻譯成程序代碼比較容易。PAD圖的基本符號whileCdoPifCthenP1elseP2caserepeatPuntilC語句標號定義PAD圖的主要優(yōu)點如下:使用表示結構化控制結構的PAD符號設計出來的程序必然是結構化程序。PAD圖所描繪的程序結構十分清晰。PAD圖表現程序邏輯易讀、易懂、易記。容易將PAD圖轉換成高級語言源程序,這種轉換可用軟件工具自動完成。即可表示程序邏輯,也可描繪數據結構。PAD圖的符號支持自頂向下、逐步求精方法的使用。使用def符號細化處理框P2ax1cx2bdFTFTT例題:某程序流程圖如右圖所示,請用PAD圖表示。adX1buntilx2c例題:某程序流程圖如右圖所示,請分別用N-S圖和PAD圖表示。a

UNTILx8jbice

WHILEx5dx1x2x3x4fgh

UNTILx7x6xi=PAD圖:x8ajx1bTFfx6TFx7ighCASExix2x4x3x5cdeN-S圖:6.3.4判定表當算法中包含多重嵌套的條件選擇時,用程序流程圖、盒圖、PAD圖或后面即將介紹的過程設計語言(PDL)都不易清楚地描述。判定表卻能夠清晰地表示復雜的條件組合與應做的動作之間的對應關系。一張判定表由4部分組成:左上部列出所有條件;左下部是所有可能做的動作;右上部是表示各種條件組合的一個矩陣;右下部是和每種條件組合相對應的動作。所有條件條件組合矩陣所有動作條件組合對應的動作例題:假設某航空公司規(guī)定,乘客可以免費托運重量不超過30kg的行李。當行李重量超過30kg時,對頭等艙的國內乘客超重部分每公斤收費4元,對其他艙的國內乘客超重部分每公斤收費6元。對外國乘客超重部分每公斤收費比國內乘客多一倍,對殘疾乘客超重部分每公斤收費比正常乘客少一半。表6.1用判定表表示計算行李費的算法123456789國內乘客TTTTFFFF頭等艙TFTFTFTF殘疾乘客FFTTFFTT行李重量W≤30TFFFFFFFF免費√(W-30)×2√(W-30)×3√(W-30)×4√√√(W-30)×6√(W-30)×8√(W-30)×12√判定表的優(yōu)點:能清晰地表示復雜的條件組合與應做的動作之間的對應關系。判定表的缺點:

判定表的含義不是一眼就能看出來的,初次接觸這種工具的人理解它需要有一個簡短的學習過程。當數據元素的值多于兩個時,判定表的簡潔程度也將下降。判定樹是判定表的變種,也能清晰地表示復雜的條件組合與應做的動作之間的對應關系。多年來判定樹一直受到人們的重視,是一種比較常用的系統分析和設計的工具。6.3.5判定樹用判定樹表示計算行李費的算法判定樹的優(yōu)點:它的形式簡單,一眼就可以看出其含義,因此易于掌握和使用。判定樹的缺點:簡潔性不如判定表,數據元素的同一個值往往要重復寫多遍,而且越接近樹的葉端重復次數越多。畫判定樹時分枝的次序可能對最終畫出的判定樹的簡潔程度有較大影響。

例題:某校制定了教師的講課課時津貼標準。對于講座,無論教師是什么職稱,每課時津貼費一律是50元;對于一般的授課,則根據教師的職稱來決定每課時津貼費:教授30元,副教授25元,講師20元,助教15元。請分別用判定表和判定樹表示津貼標準。

√15√20√25√30√50FFFFT講座TFFF助教FTFF講師FFTF副教授FFFT教授54321判定表:課時津貼一般授課講座教授副教授講師助教3025201550判定樹:6.3.6過程設計語言過程設計語言(PDL)也稱為偽碼,它是用正文形式表示數據和處理過程的設計工具。PDL具有嚴格的關鍵字外部語法,用于定義控制結構和數據結構;另一方面,PDL表示實際操作和條件的內部語法通常又是靈活自由的,可以適應各種工程項目的需要。PDL是一種“混雜”語言,它使用一種語言的詞匯,同時卻使用另一種語言的語法。偽代碼的基本控制結構:簡單陳述句結構:避免復合語句。判定結構:IF_THEN_ELSE或CASE_OF結構。選擇結構:WHILE_DO或REPEAT_UNTIL結構。例:檢查訂貨單IF

客戶訂貨金額超過5000元THEN

IF

客戶拖延未還賒欠錢款超過60天THEN

在償還欠款前不予批準

ELSE(拖延未還賒欠錢款不超過60天)

發(fā)批準書,發(fā)貨單

ENDIFELSE(客戶訂貨金額未超過5000元)

IF

客戶拖延未還賒欠錢款超過60天THEN

發(fā)批準書,發(fā)貨單,并發(fā)催款通知書

ELSE(拖延未還賒欠錢款不超過60天)

發(fā)批準書,發(fā)貨單

ENDIFENDIFPDL的特點:關鍵字的固定語法,它提供了結構化控制結構、數據說明和模塊化的特點。自然語言的自由語法,它描述處理特點。數據說明的手段。應該既包括簡單的數據結構,又包括復雜的數據結構。模塊定義和調用的技術,應該提供各種接口描述模式。PDL的優(yōu)點:可以作為注釋直接插在源程序中間。有助于保持文檔和程序的一致性,提高了文檔的質量。可以使用普通的正文編輯程序或文字處理系統,很方便地完成PDL的書寫和編輯工作。已經有自動處理程序存在,而且可以自動由PDL生成程序代碼。PDL的缺點:不如圖形工具形象直觀,描述復雜的條件組合與動作間的對應關系時,不如判定表清晰簡單。6.4面向數據結構的設計方法面向數據結構的設計方法的最終目標是得出對程序處理過程的描述。在完成了軟件結構設計之后,可以使用面向數據結構的設計方法來設計每個模塊的處理過程6.4.1Jackson圖

數據結構中數據元素彼此間的邏輯關系:順序結構,順序結構的數據由一個或多個數據元素組成,每個元素按確定次序出現一次。選擇結構,選擇結構的數據包含兩個或多個數據元素,每次使用這個數據時按一定條件從這些數據元素中選擇一個。重復結構,重復結構的數據,根據使用時的條件由一個數據元素出現零次或多次構成。A由B、C、D3個元素順序組成根據條件A是B或C或D中的某一個A由B出現N次(N≥0)組成Jackson圖的優(yōu)點:便于表示層次結構,而且是對結構進行自頂向下分解的有力工具;形象直觀可讀性好;既能表示數據結構也能表示程序結構。Jackson圖的缺點:表示選擇或重復結構時,選擇條件或循環(huán)結束條件不能直接在圖上表示出來,影響了圖的表達能力,也不易直接把圖翻譯成程序;框間連線為斜線,不易在行式打印機上輸出。6.4.2改進的Jackson圖S(i)是分支條件A或者是B,或者不出現I(i)是循環(huán)結束條件B,C,D不能是選擇或重復出現的數據元素Jackson圖和層次圖的區(qū)別:Jackson圖層次圖作用①描繪數據結構②描繪程序結構描繪軟件結構矩形框①數據元素②幾個語句模塊連線組成關系調用關系6.4.3Jackson方法Jackson結構程序設計方法由5個步驟組成:(1)分析并確定輸入數據和輸出數據的邏輯結構,用Jackson圖描繪數據結構。(2)找出輸入數據結構和輸出數據結構中有對應關系的數據單元。所謂有對應關系是指有直接的因果關系,在程序中可以同時處理的數據單元(對于重復出現的數據單元必須重復的次序和次數都相同才可能有對應關系)。(3)用下述規(guī)則從描繪數據結構的Jackson圖導出描繪程序結構的Jackson圖:第一,為每對有對應關系的數據單元,按照它們在數據結構圖中的層次在程序結構圖的相應層次畫一個處理框(層次不同時與圖中層次低的那個對應);第二,根據輸入數據結構中剩余的每個數據單元所處的層次,在程序結構圖的相應層次分別為它們畫上對應的處理框;第三,根據輸出數據結構中剩余的每個數據單元所處的層次,在程序結構圖的相應層次分別為它們畫上對應的處理框。改進的Jackson圖規(guī)定在構成順序結構的元素中不能有重復出現或選擇出現的元素,因此可能需要增加中間層次的處理框。(4)列出所有操作和條件(包括分支條件和循環(huán)結束條件),并且把它們分配到程序結構圖的適當位置。(5)用偽碼表示程序。順序結構:AseqBCDAend選擇結構:Aselectcond1BAorcond2CAorcond3DAend循環(huán)結構:Aiteruntil(或while)condBAend例1:一個正文文件由若干個記錄組成,每個記錄是一個字符串。要求統計每個記錄中空格字符的個數,以及文件中空格字符的總個數。要求的輸出數據格式是,每復制一行輸入字符串之后,另起一行印出這個字符串中的空格數,最后印出文件中空格的總個數。設計步驟如下:(1)用Jackson圖描繪的輸入輸出數據結構。(2)分析確定在輸入數據結構和輸出數據結構中有對應關系的數據單元。(3)從數據結構圖導出程序結構圖。(4)列出所有操作和條件,并且把它們分配到程序結構圖的適當位置。(5)用偽碼表示程序處理過程。

6.5程序復雜程度的定量度量詳細設計階段設計出的模塊質量可以使用軟件設計的基本原理和概念進一步仔細衡量它們的質量。但是,這種衡量畢竟只能是定性的,人們希望能進一步定量度量軟件的性質。定量度量程序復雜程度的作用:把程序的復雜程度乘以適當常數即可估算出軟件中錯誤的數量以及軟件開發(fā)需要用的工作量;定量度量的結果可以用來比較兩個不同的設計或兩個不同算法的優(yōu)劣;程序的定量的復雜程度可以作為模塊規(guī)模的精確限度。6.5.1McCabe方法1.流圖McCabe方法根據程序控制流的復雜程度定量度量程序的復雜程度,這樣度量出的結果稱為程序的環(huán)形復雜度。所謂流圖實質上是“退化了的”程序流程圖,它僅僅描繪程序的控制流程,完全不表現對數據的具體操作以及分支或循環(huán)的具體條件。流圖的表示:結點:用圓表示,一個圓代表一條或多條語句。邊:箭頭線稱為邊,代表控制流。在流圖中一條邊必須終止于一個結點,即使這個結點并不代表任何語句。區(qū)域:由邊和結點圍成的面積稱為區(qū)域,包括圖外部未被圍起來的區(qū)域。映射方法:任何方法表示的過程設計結果,都可以翻譯成流圖。對于順序結構,一個順序處理序列和下一個選擇或循環(huán)的開始語句,可以映射成流圖中的一個結點。對于選擇結構,開始語句映射成一個結點;兩條分支至少各映射成一個結點;結束映射成一個結點。對于循環(huán)結構,開始和結束語句各映射成一個結點。當過程設計中包含復合條件時,應該把復合條件分解為若干個簡單條件,每個簡單條件對應流圖中一個結點。所謂復合條件,就是在條件中包含了一個或多個布爾運算符(邏輯OR,AND,NAND,NOR)。2.計算環(huán)形復雜度的方法環(huán)形復雜度定量度量程序的邏輯復雜度。有了描繪程序控制流的流圖之后,可以用下述3種方法中的任何一種來計算環(huán)形復雜度V(G)。V(G)=流圖中的區(qū)域數V(G)=E-N+2

其中E是流圖中的邊數,N是結點數V(G)=P+1

其中P是流圖中判定結點的數目V(G)=區(qū)域數

=4V(G)=E-N+2=11-9+2=4V(G)=P+1=3+1=43.環(huán)形復雜度的用途定量度量程序內分支數或循環(huán)個數,即程序結構的復雜程度;定量度量測試難度;能對軟件最終的可靠性給出某種預測。實踐表明,模塊規(guī)模以V(G)≤10為宜。6.5.2Halstead方法Hals

溫馨提示

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

評論

0/150

提交評論