軟件工程PPT教學(xué)課件第六章 詳細(xì)設(shè)計
《軟件工程PPT教學(xué)課件第六章 詳細(xì)設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《軟件工程PPT教學(xué)課件第六章 詳細(xì)設(shè)計(56頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第六章第六章 詳細(xì)設(shè)計詳細(xì)設(shè)計(Program Design Coding)詳細(xì)設(shè)計的任務(wù):詳細(xì)設(shè)計的任務(wù):功能設(shè)計、算法設(shè)計功能設(shè)計、算法設(shè)計數(shù)據(jù)結(jié)構(gòu)設(shè)計、物理設(shè)計數(shù)據(jù)結(jié)構(gòu)設(shè)計、物理設(shè)計其他設(shè)計:代碼設(shè)計、輸入其他設(shè)計:代碼設(shè)計、輸入/輸出設(shè)計、界面輸出設(shè)計、界面設(shè)計設(shè)計編寫詳細(xì)設(shè)計說明書編寫詳細(xì)設(shè)計說明書評審評審第六章第六章 詳細(xì)設(shè)計詳細(xì)設(shè)計(Program Design Coding)1. 結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程序設(shè)計特點(diǎn):特點(diǎn): 自頂向下,逐步求精自頂向下,逐步求精 具有單入口、單出口的控制結(jié)構(gòu)具有單入口、單出口的控制結(jié)構(gòu) 盡可能少用盡可能少用GOTO語句,最好在檢測出錯誤才用,語句,
2、最好在檢測出錯誤才用,而且總是使用前向而且總是使用前向GOTO 經(jīng)典結(jié)構(gòu)化程序設(shè)計:經(jīng)典結(jié)構(gòu)化程序設(shè)計:3種基本控制結(jié)構(gòu)種基本控制結(jié)構(gòu) 擴(kuò)展結(jié)構(gòu)化程序設(shè)計:擴(kuò)展結(jié)構(gòu)化程序設(shè)計:5種基本控制結(jié)構(gòu)種基本控制結(jié)構(gòu)( (1) 1) 順序結(jié)構(gòu)順序結(jié)構(gòu)( (sequential structure)(2) (2) 選擇結(jié)構(gòu)選擇結(jié)構(gòu)(selective structure)ABPBAFT(3) (3) 先判定型循環(huán)結(jié)構(gòu)先判定型循環(huán)結(jié)構(gòu)(while-loop structure)(4) (4) 后判定型循環(huán)結(jié)構(gòu)后判定型循環(huán)結(jié)構(gòu)(until-loop structure)TPSFFSTP(5) (5) 多情況選
3、擇多情況選擇(case structure)TA1FP=1TA2FP=2TAnFP=n5種基本控制結(jié)構(gòu)種基本控制結(jié)構(gòu)1. 結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程序設(shè)計2. 人機(jī)界面設(shè)計人機(jī)界面設(shè)計 對于許多計算機(jī)化的信息系統(tǒng)的用戶來說,挫折對于許多計算機(jī)化的信息系統(tǒng)的用戶來說,挫折和焦慮是他們?nèi)粘I畹囊徊糠?。他們努力地學(xué)習(xí)和焦慮是他們?nèi)粘I畹囊徊糠帧K麄兣Φ貙W(xué)習(xí)命令語言和菜單選擇系統(tǒng)以幫助他們更好地完成工命令語言和菜單選擇系統(tǒng)以幫助他們更好地完成工作。有些人甚至對計算機(jī)、終端和網(wǎng)絡(luò)產(chǎn)生了恐懼,作。有些人甚至對計算機(jī)、終端和網(wǎng)絡(luò)產(chǎn)生了恐懼,因而刻意地回避計算機(jī)化的系統(tǒng)。因而刻意地回避計算機(jī)化的系統(tǒng)。 用戶
4、界面的設(shè)計要求在研究用戶界面的設(shè)計要求在研究技術(shù)技術(shù)問題的同時對問題的同時對人人加以研究。用戶是什么樣的人?用戶怎樣學(xué)習(xí)與新加以研究。用戶是什么樣的人?用戶怎樣學(xué)習(xí)與新的計算機(jī)系統(tǒng)交互?用戶怎樣解釋系統(tǒng)產(chǎn)生的信息?的計算機(jī)系統(tǒng)交互?用戶怎樣解釋系統(tǒng)產(chǎn)生的信息?用戶對系統(tǒng)有那些期望?用戶對系統(tǒng)有那些期望?1、設(shè)計問題:、設(shè)計問題: 四個四個系統(tǒng)響應(yīng)時間:屬性(長度、易變性)系統(tǒng)響應(yīng)時間:屬性(長度、易變性)用戶幫助設(shè)施:兩類(集成、附加)用戶幫助設(shè)施:兩類(集成、附加)出錯信息處理出錯信息處理命令交互命令交互2.人機(jī)界面設(shè)計人機(jī)界面設(shè)計(1)系統(tǒng)響應(yīng)時間:系統(tǒng)響應(yīng)時間:系統(tǒng)響應(yīng)時間是指從用戶開始
5、執(zhí)行動作系統(tǒng)響應(yīng)時間是指從用戶開始執(zhí)行動作(比如按比如按“回回車車”鍵或點(diǎn)鼠標(biāo)鍵或點(diǎn)鼠標(biāo))到軟件給出預(yù)期的響應(yīng)的等待時到軟件給出預(yù)期的響應(yīng)的等待時間。間。 兩個屬性兩個屬性: 長度、易變性長度、易變性長度:如果系統(tǒng)響應(yīng)時間過長,用戶就會感到不安和沮長度:如果系統(tǒng)響應(yīng)時間過長,用戶就會感到不安和沮喪,過快的系統(tǒng)響應(yīng)時間有時也會成為問題,因為這會喪,過快的系統(tǒng)響應(yīng)時間有時也會成為問題,因為這會迫使用戶加快操作節(jié)奏,從而導(dǎo)致錯誤。迫使用戶加快操作節(jié)奏,從而導(dǎo)致錯誤。 易變性:響應(yīng)時間相對于平均響應(yīng)時間的偏差。易變性:響應(yīng)時間相對于平均響應(yīng)時間的偏差。 即使響應(yīng)時間比較長,低的響應(yīng)時間易變性也有助于用
6、即使響應(yīng)時間比較長,低的響應(yīng)時間易變性也有助于用戶建立穩(wěn)定的節(jié)奏。例如,穩(wěn)定在戶建立穩(wěn)定的節(jié)奏。例如,穩(wěn)定在1秒的響應(yīng)時間比從秒的響應(yīng)時間比從0.1到到2.5秒不定的響應(yīng)時間要好。秒不定的響應(yīng)時間要好。2.人機(jī)界面設(shè)計人機(jī)界面設(shè)計(2) 用戶幫助設(shè)施:用戶幫助設(shè)施: 在多數(shù)情況下,現(xiàn)代的軟件均提供聯(lián)機(jī)幫助,用戶可在多數(shù)情況下,現(xiàn)代的軟件均提供聯(lián)機(jī)幫助,用戶可以不離開界面就解決自己的問題。以不離開界面就解決自己的問題。兩類:集成、附加兩類:集成、附加 集成集成的幫助設(shè)施是一開始就設(shè)計在軟件里面的,它通常的幫助設(shè)施是一開始就設(shè)計在軟件里面的,它通常與語境相關(guān),用戶可以直接選擇與所要執(zhí)行操作相關(guān)的主
7、與語境相關(guān),用戶可以直接選擇與所要執(zhí)行操作相關(guān)的主題??梢钥s短用戶獲得幫助的時間,增加界面的友好性。題??梢钥s短用戶獲得幫助的時間,增加界面的友好性。 附加附加的幫助設(shè)施是在系統(tǒng)建好以后再加進(jìn)去的,多數(shù)情的幫助設(shè)施是在系統(tǒng)建好以后再加進(jìn)去的,多數(shù)情況下,這種幫助是一種查詢能力較弱的聯(lián)機(jī)幫助,況下,這種幫助是一種查詢能力較弱的聯(lián)機(jī)幫助, 交互期間,用戶能獲得多少幫助?全部交互期間,用戶能獲得多少幫助?全部/部分部分2.人機(jī)界面設(shè)計人機(jī)界面設(shè)計用戶怎樣請求幫助?用戶怎樣請求幫助? 三種選擇:幫助菜單、特殊功能鍵、三種選擇:幫助菜單、特殊功能鍵、HELP命令命令怎樣顯示幫助信息?怎樣顯示幫助信息?
8、三種選擇:獨(dú)立窗口、固定位置、指出參考文檔三種選擇:獨(dú)立窗口、固定位置、指出參考文檔怎樣返回交互方式?怎樣返回交互方式? 兩種選擇:屏幕上的返回鍵和功能鍵或控制序列兩種選擇:屏幕上的返回鍵和功能鍵或控制序列怎樣組織幫助信息?怎樣組織幫助信息? 三種選擇:平面式三種選擇:平面式(所有信息均通過一個關(guān)鍵詞所有信息均通過一個關(guān)鍵詞來訪問來訪問)、分層式、分層式(用戶可以進(jìn)一步查詢得到更詳用戶可以進(jìn)一步查詢得到更詳細(xì)的信息細(xì)的信息)和超文本式和超文本式 2.人機(jī)界面設(shè)計人機(jī)界面設(shè)計(3)出錯信息處理:出錯信息處理:出錯信息和警告是指出現(xiàn)問題時系統(tǒng)給出的壞消息。出錯信息和警告是指出現(xiàn)問題時系統(tǒng)給出的壞消
9、息。如果做不好的話,出錯信息和警告會給出無用或誤如果做不好的話,出錯信息和警告會給出無用或誤導(dǎo)的信息,反而增加了用戶的沮喪感。導(dǎo)的信息,反而增加了用戶的沮喪感。例:很少有用戶沒有遇到類似以下的出錯信息:例:很少有用戶沒有遇到類似以下的出錯信息: SEVERE SYSTEM FAILURE14A 應(yīng)該在某處有對錯誤應(yīng)該在某處有對錯誤14A的解釋,否則設(shè)計者為什么的解釋,否則設(shè)計者為什么會指出會指出14A呢?但出錯信息并沒有指出是什么錯誤呢?但出錯信息并沒有指出是什么錯誤或從何處可以找到進(jìn)一步的信息?;驈暮翁幙梢哉业竭M(jìn)一步的信息。類似上面的出錯信息既不能減輕用戶的焦慮感也不能類似上面的出錯信息既不
10、能減輕用戶的焦慮感也不能解決問題。解決問題。2.人機(jī)界面設(shè)計人機(jī)界面設(shè)計通常,出錯信息和警告應(yīng)具備以下特征:通常,出錯信息和警告應(yīng)具備以下特征:信息以用戶可以理解的術(shù)語信息以用戶可以理解的術(shù)語描述描述問題。問題。信息應(yīng)提供如何從錯誤中信息應(yīng)提供如何從錯誤中恢復(fù)恢復(fù)的建設(shè)性意見。的建設(shè)性意見。信息應(yīng)指出錯誤可能導(dǎo)致哪些不良信息應(yīng)指出錯誤可能導(dǎo)致哪些不良后果后果(比如破壞數(shù)據(jù)比如破壞數(shù)據(jù)),以便用戶檢查是否出現(xiàn)了這些情況,或幫助用戶進(jìn)行改以便用戶檢查是否出現(xiàn)了這些情況,或幫助用戶進(jìn)行改正。正。信息應(yīng)伴隨著視覺或聽覺上的信息應(yīng)伴隨著視覺或聽覺上的提示提示。即顯示信息時應(yīng)該。即顯示信息時應(yīng)該伴隨警告聲
11、,或信息用閃爍方式顯示,或信息用明顯的伴隨警告聲,或信息用閃爍方式顯示,或信息用明顯的表示錯誤的顏色顯示。表示錯誤的顏色顯示。信息不能帶有判決色彩,即不能指責(zé)用戶。信息不能帶有判決色彩,即不能指責(zé)用戶。 由于沒有人喜歡壞消息,無論出錯信息代表了什么,也很少有由于沒有人喜歡壞消息,無論出錯信息代表了什么,也很少有用戶喜歡出錯信息,但從道理上講,在出現(xiàn)問題時有效的出用戶喜歡出錯信息,但從道理上講,在出現(xiàn)問題時有效的出錯信息能夠提高交互式系統(tǒng)的質(zhì)量、減少用戶的沮喪感。錯信息能夠提高交互式系統(tǒng)的質(zhì)量、減少用戶的沮喪感。2.人機(jī)界面設(shè)計人機(jī)界面設(shè)計(4)命令交互:命令交互: 命令行曾經(jīng)是用戶和系統(tǒng)交互的
12、主要方式,命令行曾經(jīng)是用戶和系統(tǒng)交互的主要方式,并廣泛用于各種應(yīng)用程序中。并廣泛用于各種應(yīng)用程序中。 現(xiàn)在,面向窗口的采用點(diǎn)擊現(xiàn)在,面向窗口的采用點(diǎn)擊(point)和拾取和拾取(pick)方式的界面減少了用戶對命令行的依賴,方式的界面減少了用戶對命令行的依賴,但許多高級用戶仍然喜歡面向命令的交互方但許多高級用戶仍然喜歡面向命令的交互方式。式。 在許多軟件中,用戶既可以從菜單中選擇在許多軟件中,用戶既可以從菜單中選擇一個命令,也可以用鍵盤輸入命令序列。一個命令,也可以用鍵盤輸入命令序列。2.人機(jī)界面設(shè)計人機(jī)界面設(shè)計在提供命令交互方式時,必須考慮以下問題:在提供命令交互方式時,必須考慮以下問題:
13、每一個菜單選項是否都有對應(yīng)命令?每一個菜單選項是否都有對應(yīng)命令? 以何種方式提供命令?有三種選擇:控制序列以何種方式提供命令?有三種選擇:控制序列(比如比如P)、功能鍵和鍵入命令。、功能鍵和鍵入命令。 學(xué)習(xí)和記憶命令的難度有多大?命令忘了怎么學(xué)習(xí)和記憶命令的難度有多大?命令忘了怎么辦?辦? 用戶是否可以定制和縮寫命令?用戶是否可以定制和縮寫命令?2.人機(jī)界面設(shè)計人機(jī)界面設(shè)計 在越來越多的應(yīng)用中,界面設(shè)計者提供在越來越多的應(yīng)用中,界面設(shè)計者提供“命令宏機(jī)制命令宏機(jī)制”,以用戶定義的名字代表一,以用戶定義的名字代表一個常用的命令序列,用戶不必分別輸入這些個常用的命令序列,用戶不必分別輸入這些命令,
14、只需輸入命令宏就可以執(zhí)行其代表的命令,只需輸入命令宏就可以執(zhí)行其代表的命令序列。命令序列。 在理想情況下,所有的應(yīng)用程序應(yīng)有通用在理想情況下,所有的應(yīng)用程序應(yīng)有通用的命令使用方法。如果在一個應(yīng)用中的命令使用方法。如果在一個應(yīng)用中D表示表示復(fù)制一個圖形對象,而在另一個應(yīng)用中復(fù)制一個圖形對象,而在另一個應(yīng)用中D表表示刪除一個圖形對象,這就會使用戶感到困示刪除一個圖形對象,這就會使用戶感到困惑,并往往會導(dǎo)致錯誤,潛在的錯誤是明顯惑,并往往會導(dǎo)致錯誤,潛在的錯誤是明顯的。的。2.人機(jī)界面設(shè)計人機(jī)界面設(shè)計2、界面設(shè)計指南、界面設(shè)計指南 (1)一般交互的指南:一般交互的指南:一致一致性。菜單選擇、命令輸入
15、、數(shù)據(jù)顯示以性。菜單選擇、命令輸入、數(shù)據(jù)顯示以及無數(shù)其他功能都應(yīng)使用一致的格式。及無數(shù)其他功能都應(yīng)使用一致的格式。提供有意義的提供有意義的反饋反饋。向用戶提供視覺和聽覺。向用戶提供視覺和聽覺的反饋,以保證在用戶和界面間建立雙向聯(lián)的反饋,以保證在用戶和界面間建立雙向聯(lián)系。系。在執(zhí)行有較大在執(zhí)行有較大破壞破壞性的動作前要求確認(rèn)。如性的動作前要求確認(rèn)。如果用戶要刪除一個文件,或覆蓋一些重要信果用戶要刪除一個文件,或覆蓋一些重要信息,或請求停止一個程序,應(yīng)該給出類似息,或請求停止一個程序,應(yīng)該給出類似“您確實要您確實要?”的信息。的信息。2.人機(jī)界面設(shè)計人機(jī)界面設(shè)計減少在動作間必須記憶的信息數(shù)量。不應(yīng)
16、期望用減少在動作間必須記憶的信息數(shù)量。不應(yīng)期望用戶能記住一大串?dāng)?shù)字或名字,以便在下一步的功戶能記住一大串?dāng)?shù)字或名字,以便在下一步的功能中使用,能中使用,記憶量記憶量應(yīng)盡量減少。應(yīng)盡量減少。允許允許取消取消大多數(shù)操作。大多數(shù)操作。UNDO或或REVERSE功能使功能使成千上萬的用戶免受成百萬小時的挫折。每個交成千上萬的用戶免受成百萬小時的挫折。每個交互式應(yīng)用都應(yīng)允許取消已完成的操作。互式應(yīng)用都應(yīng)允許取消已完成的操作。在對話、移動和思考中提高在對話、移動和思考中提高效率效率。擊鍵次數(shù)應(yīng)盡。擊鍵次數(shù)應(yīng)盡量減少,設(shè)計屏幕布局時應(yīng)考慮鼠標(biāo)移動的距離,量減少,設(shè)計屏幕布局時應(yīng)考慮鼠標(biāo)移動的距離,用戶問用戶
17、問“下面怎么辦?下面怎么辦?”的時候應(yīng)盡量減少。的時候應(yīng)盡量減少。允許錯誤。系統(tǒng)應(yīng)保護(hù)自己不受致命錯誤的破壞。允許錯誤。系統(tǒng)應(yīng)保護(hù)自己不受致命錯誤的破壞。2.人機(jī)界面設(shè)計人機(jī)界面設(shè)計按功能對動作分類,并據(jù)此安排屏幕布局。下拉按功能對動作分類,并據(jù)此安排屏幕布局。下拉菜單的一個優(yōu)點(diǎn)就是按類型組織命令。實際上,菜單的一個優(yōu)點(diǎn)就是按類型組織命令。實際上,設(shè)計者應(yīng)努力提高命令和動作組織的設(shè)計者應(yīng)努力提高命令和動作組織的內(nèi)聚性內(nèi)聚性。提供語境相關(guān)的提供語境相關(guān)的幫助幫助機(jī)制。機(jī)制。命令命令用簡單的動詞或動詞短語命名。過長的命令用簡單的動詞或動詞短語命名。過長的命令名難以識別和記憶,也會占據(jù)過多的菜單位置
18、。名難以識別和記憶,也會占據(jù)過多的菜單位置。2.人機(jī)界面設(shè)計人機(jī)界面設(shè)計(2)信息顯示的指南:信息顯示的指南:只顯示與當(dāng)前語境環(huán)境相關(guān)的信息。用戶在獲取只顯示與當(dāng)前語境環(huán)境相關(guān)的信息。用戶在獲取有關(guān)某特定系統(tǒng)功能的信息時,不必看到其他的有關(guān)某特定系統(tǒng)功能的信息時,不必看到其他的數(shù)據(jù)、菜單和圖形。數(shù)據(jù)、菜單和圖形。不要用數(shù)據(jù)將用戶包圍,使用便于用戶迅速吸取不要用數(shù)據(jù)將用戶包圍,使用便于用戶迅速吸取信息的方式表現(xiàn)數(shù)據(jù)??梢杂酶鞣N圖形取代巨大信息的方式表現(xiàn)數(shù)據(jù)??梢杂酶鞣N圖形取代巨大的表格。的表格。使用一致的標(biāo)記、標(biāo)準(zhǔn)的縮寫和可預(yù)測的顏色。使用一致的標(biāo)記、標(biāo)準(zhǔn)的縮寫和可預(yù)測的顏色。顯示信息的含義應(yīng)該
19、非常明確,用戶不必再參照顯示信息的含義應(yīng)該非常明確,用戶不必再參照其他信息源。其他信息源。2.人機(jī)界面設(shè)計人機(jī)界面設(shè)計允許用戶維持可視化的語境。如果圖形表示可以允許用戶維持可視化的語境。如果圖形表示可以伸縮,原來的圖像應(yīng)一直顯示著伸縮,原來的圖像應(yīng)一直顯示著(比如以縮小的形比如以縮小的形式放在屏幕的一角式放在屏幕的一角),以使得用戶可以知道自己觀,以使得用戶可以知道自己觀察的部分在原圖中的相對位置。察的部分在原圖中的相對位置。產(chǎn)生有意義的出錯信息。產(chǎn)生有意義的出錯信息。使用大小寫、縮進(jìn)和文本來輔助理解。使用大小寫、縮進(jìn)和文本來輔助理解。HCI顯示顯示的大部分信息是文字,文字的布局和形式對用戶的
20、大部分信息是文字,文字的布局和形式對用戶從中吸取信息影響很大。從中吸取信息影響很大。使用窗口分隔不同類型的信息。窗口使得用戶可使用窗口分隔不同類型的信息。窗口使得用戶可以方便地保存多種不同類型的信息。以方便地保存多種不同類型的信息。2.人機(jī)界面設(shè)計人機(jī)界面設(shè)計如果采用如果采用“模擬模擬”的明顯方式表示信息,更容易的明顯方式表示信息,更容易被用戶理解,則應(yīng)采用模擬方式。被用戶理解,則應(yīng)采用模擬方式。 例如,顯示煉油廠儲油罐的壓力時,簡單的數(shù)字例如,顯示煉油廠儲油罐的壓力時,簡單的數(shù)字表示難以被用戶理解。如果用類似溫度計的方式表示難以被用戶理解。如果用類似溫度計的方式來表示,用垂直的運(yùn)動和顏色變化
21、來表示危險的來表示,用垂直的運(yùn)動和顏色變化來表示危險的壓力狀況,就比較容易理解,因為這樣為用戶提壓力狀況,就比較容易理解,因為這樣為用戶提供了絕對和相對兩方面的信息。供了絕對和相對兩方面的信息。高效地使用顯示器的顯示空間。如果采用多窗口,高效地使用顯示器的顯示空間。如果采用多窗口,應(yīng)該為每個窗口都留一些顯示空間。此外,屏幕應(yīng)該為每個窗口都留一些顯示空間。此外,屏幕的大小應(yīng)該適合于應(yīng)用程序的大小應(yīng)該適合于應(yīng)用程序(這實際上是一個系統(tǒng)這實際上是一個系統(tǒng)工程的問題工程的問題)。2.人機(jī)界面設(shè)計人機(jī)界面設(shè)計(3)數(shù)據(jù)輸入的指南:數(shù)據(jù)輸入的指南:減少用戶輸入動作的數(shù)量。最主要的是減少擊鍵減少用戶輸入動作
22、的數(shù)量。最主要的是減少擊鍵的數(shù)量,可用以下方式實現(xiàn):用鼠標(biāo)選擇菜單代的數(shù)量,可用以下方式實現(xiàn):用鼠標(biāo)選擇菜單代替擊鍵;用滑動標(biāo)尺輸入一定范圍內(nèi)的值;使用替擊鍵;用滑動標(biāo)尺輸入一定范圍內(nèi)的值;使用宏,用一次擊鍵代表復(fù)雜的輸入數(shù)據(jù)。宏,用一次擊鍵代表復(fù)雜的輸入數(shù)據(jù)。維護(hù)信息顯示和數(shù)據(jù)輸入的一致性。顯示的視覺維護(hù)信息顯示和數(shù)據(jù)輸入的一致性。顯示的視覺特征特征(比如文字的大小、顏色和位置比如文字的大小、顏色和位置)應(yīng)與輸入域應(yīng)與輸入域一致。一致。允許用戶自定義輸入。專家用戶可能需要定義用允許用戶自定義輸入。專家用戶可能需要定義用戶命令或省去警告信息及動作確認(rèn)。戶命令或省去警告信息及動作確認(rèn)。HCI應(yīng)該
23、允應(yīng)該允許這樣做。許這樣做。2.人機(jī)界面設(shè)計人機(jī)界面設(shè)計交互應(yīng)該是靈活的,并可調(diào)整到用戶最喜歡的輸交互應(yīng)該是靈活的,并可調(diào)整到用戶最喜歡的輸入方式。入方式。用戶類型用戶類型有助于確定用戶喜歡的輸入模有助于確定用戶喜歡的輸入模式。秘書可能很喜歡鍵盤輸入,經(jīng)理可能會喜歡式。秘書可能很喜歡鍵盤輸入,經(jīng)理可能會喜歡鼠標(biāo)一類的點(diǎn)擊設(shè)備。鼠標(biāo)一類的點(diǎn)擊設(shè)備。在當(dāng)前動作的語境中使不合適的命令不起作用。在當(dāng)前動作的語境中使不合適的命令不起作用。這使得用戶不會使用哪些肯定會導(dǎo)致錯誤的動作。這使得用戶不會使用哪些肯定會導(dǎo)致錯誤的動作。讓用戶控制交互流。用戶應(yīng)該能夠跳過不必要的讓用戶控制交互流。用戶應(yīng)該能夠跳過不必
24、要的動作、改變所需動作的順序動作、改變所需動作的順序(如果應(yīng)用的語境環(huán)如果應(yīng)用的語境環(huán)境允許的話境允許的話)以及在不退出系統(tǒng)的情況下從錯誤以及在不退出系統(tǒng)的情況下從錯誤狀態(tài)恢復(fù)。狀態(tài)恢復(fù)。2.人機(jī)界面設(shè)計人機(jī)界面設(shè)計為所有的輸入動作提供幫助。為所有的輸入動作提供幫助。消除冗余輸入。消除冗余輸入。不要要求用戶指定工程輸入的不要要求用戶指定工程輸入的單位單位(除非不除非不這樣會產(chǎn)生含混這樣會產(chǎn)生含混);不要要求用戶在整錢數(shù)后加不要要求用戶在整錢數(shù)后加.00可能的話要提供缺省值可能的話要提供缺省值絕不要讓用戶提供程序中可以自動獲得或計絕不要讓用戶提供程序中可以自動獲得或計算出來的信息。算出來的信息。
25、2.人機(jī)界面設(shè)計人機(jī)界面設(shè)計3. 過程設(shè)計的過程設(shè)計的 工具工具 1、程序流程圖、程序流程圖(Program Flow Chart) 程序流程圖,又稱程序框圖,是描程序流程圖,又稱程序框圖,是描述程序邏輯結(jié)構(gòu)的工具。它使用的符號述程序邏輯結(jié)構(gòu)的工具。它使用的符號與系統(tǒng)流程圖的符號很多相同,但是,與系統(tǒng)流程圖的符號很多相同,但是,箭頭符號代表控制流而不是數(shù)據(jù)流。箭頭符號代表控制流而不是數(shù)據(jù)流。 5種基本控制結(jié)構(gòu):種基本控制結(jié)構(gòu):( (1) 1) 順序結(jié)構(gòu)順序結(jié)構(gòu)( (sequential structure)(2) (2) 選擇結(jié)構(gòu)選擇結(jié)構(gòu)(selective structure)ABPBAFT
26、(3) (3) 先判定型循環(huán)結(jié)構(gòu)先判定型循環(huán)結(jié)構(gòu)(while-loop structure)(4) (4) 后判定型循環(huán)結(jié)構(gòu)后判定型循環(huán)結(jié)構(gòu)(until-loop structure)TPSFFSTP(5) (5) 多情況選擇多情況選擇(case structure)TA1FP=1TA2FP=2TAnFP=n3. 過程設(shè)計的過程設(shè)計的 工具工具 任何復(fù)雜的程序流程圖都應(yīng)由以上五種基本結(jié)任何復(fù)雜的程序流程圖都應(yīng)由以上五種基本結(jié)構(gòu)組合而成。構(gòu)組合而成。 優(yōu)點(diǎn):直觀清晰,易于使用,容易掌握,且歷優(yōu)點(diǎn):直觀清晰,易于使用,容易掌握,且歷史史“悠久悠久”,使用廣泛。,使用廣泛。 ISO 認(rèn)可的規(guī)定符號:
27、認(rèn)可的規(guī)定符號:P.83 圖圖 5.33. 過程設(shè)計的過程設(shè)計的 工具工具 缺點(diǎn):缺點(diǎn):轉(zhuǎn)移控制太方便。轉(zhuǎn)移控制太方便。易造成非結(jié)構(gòu)化的程序結(jié)構(gòu),易造成非結(jié)構(gòu)化的程序結(jié)構(gòu),編碼時不加限制的使用編碼時不加限制的使用GOTO語句,導(dǎo)致基本控語句,導(dǎo)致基本控制塊多入多出口,與軟件設(shè)計的原則相違背制塊多入多出口,與軟件設(shè)計的原則相違背。本質(zhì)上不具備逐步求精的特點(diǎn)。本質(zhì)上不具備逐步求精的特點(diǎn)。誘使過早考慮誘使過早考慮程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。對于提高大型系統(tǒng)的可理解性作用甚微;對于提高大型系統(tǒng)的可理解性作用甚微;不易表示數(shù)據(jù)結(jié)構(gòu)不易表示數(shù)據(jù)結(jié)構(gòu)。
28、 趨勢:停止使用趨勢:停止使用3. 過程設(shè)計的過程設(shè)計的 工具工具SequentialABPFTABSelectivePFT BDo-While PSWhileDo-Until PSUntilCaseP12nA1A2AnCall subroutineA2、盒圖、盒圖(Box Diagram): Nassi &Shneiderman 1973年提出,年提出,又稱為又稱為N-S Charts。Chapin 1974年作擴(kuò)充,故年作擴(kuò)充,故也稱為也稱為Chapin charts.3. 過程設(shè)計的過程設(shè)計的 工具工具x4TFDo-Until x5ighfkx1TFbDo-Until x6ajx21cD
29、o-While x323dek :例:例:3. 過程設(shè)計的過程設(shè)計的 工具工具特點(diǎn):特點(diǎn):所有的程序結(jié)構(gòu)均用方框來表示,程序結(jié)構(gòu)所有的程序結(jié)構(gòu)均用方框來表示,程序結(jié)構(gòu)清晰。只能表達(dá)結(jié)構(gòu)化的程序邏輯,遵守結(jié)構(gòu)化清晰。只能表達(dá)結(jié)構(gòu)化的程序邏輯,遵守結(jié)構(gòu)化程序設(shè)計的規(guī)定。程序設(shè)計的規(guī)定。 沒有箭頭,不允許隨意轉(zhuǎn)移控制;沒有箭頭,不允許隨意轉(zhuǎn)移控制; 每個矩形框每個矩形框(Case中條件取值例外中條件取值例外)都是一個功能都是一個功能域域(即一個特定結(jié)構(gòu)的作用域即一個特定結(jié)構(gòu)的作用域),結(jié)構(gòu)表示明確;,結(jié)構(gòu)表示明確; 局部及全程數(shù)據(jù)的作用域易見;局部及全程數(shù)據(jù)的作用域易見; 易表現(xiàn)嵌套關(guān)系易表現(xiàn)嵌套關(guān)
30、系(embedded structure)以及模塊的層以及模塊的層次結(jié)構(gòu)。次結(jié)構(gòu)。缺點(diǎn):缺點(diǎn):當(dāng)程序內(nèi)嵌套的層數(shù)增多時,內(nèi)層的方框?qū)⒃絹碓叫。?dāng)程序內(nèi)嵌套的層數(shù)增多時,內(nèi)層的方框?qū)⒃絹碓叫。瑥亩黾永L圖的難度,并使圖形的清晰性受影響。從而增加繪圖的難度,并使圖形的清晰性受影響。3. 過程設(shè)計的過程設(shè)計的 工具工具ABSequential While PS Until PSLoopsPABTHENELSESelectiveP =A1A2CaseAn12nStatement IndexdefDefinition3、PAD(Problem Analysis Diagram):日立公司,日立公司,19
31、733. 過程設(shè)計的過程設(shè)計的 工具工具x4TFDo-Until x5ighfkx1TFbDo-Until x6ajx21cDo-While x323dek :例:例:N-S圖與圖與PAD的轉(zhuǎn)換的轉(zhuǎn)換3. 過程設(shè)計的過程設(shè)計的 工具工具開始開始 結(jié)束結(jié)束 aj Until x5i Until x6bx1kfx4ghdefkx2de123 While x3c3. 過程設(shè)計的過程設(shè)計的 工具工具特點(diǎn):特點(diǎn): 結(jié)構(gòu)清晰,層次分明,易讀易寫,使用方結(jié)構(gòu)清晰,層次分明,易讀易寫,使用方便;便; 支持逐步求精的設(shè)計思想,支持結(jié)構(gòu)化的支持逐步求精的設(shè)計思想,支持結(jié)構(gòu)化的程序設(shè)計原理;程序設(shè)計原理; 容易將容
32、易將PAD自動轉(zhuǎn)換為高級語言源程序。自動轉(zhuǎn)換為高級語言源程序。3. 過程設(shè)計的過程設(shè)計的 工具工具4、判定表、判定表 & 判定樹判定樹(Decision Table & Tree) 表示復(fù)雜的條件表示復(fù)雜的條件(input)組合與應(yīng)做動作組合與應(yīng)做動作(output)之間的對應(yīng)關(guān)系。之間的對應(yīng)關(guān)系。 3. 過程設(shè)計的過程設(shè)計的 工具工具例:例:P.86 航空行李托運(yùn)費(fèi)的算法航空行李托運(yùn)費(fèi)的算法按規(guī)定:重量不超過按規(guī)定:重量不超過30公斤的行李可免費(fèi)托運(yùn)。公斤的行李可免費(fèi)托運(yùn)。重量超過重量超過30公斤時,對超運(yùn)部分,頭等公斤時,對超運(yùn)部分,頭等艙國內(nèi)乘客收艙國內(nèi)乘客收4元元/公斤;其它艙位國內(nèi)公
33、斤;其它艙位國內(nèi)乘客收乘客收6元元/公斤;外國乘客收費(fèi)為國內(nèi)公斤;外國乘客收費(fèi)為國內(nèi)乘客的乘客的2倍;殘疾乘客的收費(fèi)為正常乘倍;殘疾乘客的收費(fèi)為正常乘客的客的1/2。 3. 過程設(shè)計的過程設(shè)計的 工具工具123456789國內(nèi)乘客國內(nèi)乘客T T T T FFFF頭等艙頭等艙T F T F T F T F殘疾乘客殘疾乘客FF T T FF T T行李重量行李重量 W 30T FFFFFFFF免費(fèi)免費(fèi) (W-30) 2 (W-30) 3 (W-30) 4 (W-30) 6 (W-30) 8 (W-30) 12 用判定表表示計算行李費(fèi)的算法用判定表表示計算行李費(fèi)的算法RulesRule number
34、s Condition rowsAction rows3. 過程設(shè)計的過程設(shè)計的 工具工具行李費(fèi)行李費(fèi)算法算法行李重量行李重量W 30行李重量行李重量W 30免費(fèi)免費(fèi)國內(nèi)乘客國內(nèi)乘客外國乘客外國乘客頭等艙頭等艙其他艙其他艙殘疾乘客殘疾乘客正常乘客正常乘客(W-30) 2(W-30) 4殘疾乘客殘疾乘客正常乘客正常乘客(W-30) 3(W-30) 6頭等艙頭等艙其他艙其他艙殘疾乘客殘疾乘客正常乘客正常乘客(W-30) 4(W-30) 8殘疾乘客殘疾乘客正常乘客正常乘客(W-30) 6(W-30) 12用判定樹表示計算行李費(fèi)的算法用判定樹表示計算行李費(fèi)的算法注:判定表與判定樹并注:判定表與判定樹并
35、不適用于作為一種通用不適用于作為一種通用的設(shè)計工具,通常將之的設(shè)計工具,通常將之用于輔助測試用于輔助測試3. 過程設(shè)計的過程設(shè)計的 工具工具5、PDL(Program Design Language):過程設(shè)計語言,又:過程設(shè)計語言,又稱稱 Pseudocode。 是一種用于描述模塊算法設(shè)計和處理細(xì)節(jié)的是一種用于描述模塊算法設(shè)計和處理細(xì)節(jié)的語言。語言。 分內(nèi)外兩層語言。外層具有嚴(yán)格的關(guān)鍵字語分內(nèi)外兩層語言。外層具有嚴(yán)格的關(guān)鍵字語法,內(nèi)層表示實際操作和條件的自然語言,語法法,內(nèi)層表示實際操作和條件的自然語言,語法自由。自由。 程序結(jié)構(gòu)有:順序結(jié)構(gòu)、選擇結(jié)構(gòu)、重復(fù)結(jié)程序結(jié)構(gòu)有:順序結(jié)構(gòu)、選擇結(jié)構(gòu)、
36、重復(fù)結(jié)構(gòu)、出口結(jié)構(gòu)、擴(kuò)充結(jié)構(gòu)(模塊定義、模塊調(diào)用、構(gòu)、出口結(jié)構(gòu)、擴(kuò)充結(jié)構(gòu)(模塊定義、模塊調(diào)用、數(shù)據(jù)定義、輸入數(shù)據(jù)定義、輸入/輸出)等。輸出)等。3. 過程設(shè)計的過程設(shè)計的 工具工具PROCEDURE spell_check IS BEGIN Split document into single words Look up words in dictionary Display words which are not in dictionary Create a new dictionary END spell_checkExternal statementsInternalstatements
37、例例1:文字拼寫檢查:文字拼寫檢查3. 過程設(shè)計的過程設(shè)計的 工具工具例例2:用戶登錄:用戶登錄 PROCEDURE 登錄()登錄()清屏;清屏;顯示顯示系統(tǒng)用戶界面;系統(tǒng)用戶界面;PUT(“請輸入用戶口令:請輸入用戶口令:”);GET(password);IF password系統(tǒng)口令系統(tǒng)口令 提示告警信息;提示告警信息; 退出運(yùn)行;退出運(yùn)行;ENDIF顯示本系統(tǒng)主菜單;顯示本系統(tǒng)主菜單;WHILE(true) 接收用戶選擇接收用戶選擇ABC; IF ABC=“退出退出” Break; ENDIF 調(diào)用相應(yīng)下層模塊完成用戶選擇功能;調(diào)用相應(yīng)下層模塊完成用戶選擇功能;ENDWHILE;清屏;清
38、屏;RETURN END3. 過程設(shè)計的過程設(shè)計的 工具工具具備以下特點(diǎn):具備以下特點(diǎn): 有固定的外語法有固定的外語法(keyword); 有數(shù)據(jù)說明,例如:有數(shù)據(jù)說明,例如: TYPE number IS STRING LENGTH (12) TYPE table IS INSTANCE OF symbol_table 內(nèi)語法用自然語言描述;內(nèi)語法用自然語言描述;抽象類型抽象類型3. 過程設(shè)計的過程設(shè)計的 工具工具優(yōu)點(diǎn):易于實現(xiàn)由優(yōu)點(diǎn):易于實現(xiàn)由PDL到源代碼的自動轉(zhuǎn)換。到源代碼的自動轉(zhuǎn)換。缺點(diǎn):不夠直觀。缺點(diǎn):不夠直觀。3. 過程設(shè)計的過程設(shè)計的 工具工具有子程序定義與調(diào)用機(jī)制,例如:有子
39、程序定義與調(diào)用機(jī)制,例如: PROCEDURE INTERFACE pseudocode lines END 調(diào)用時可用:調(diào)用時可用:PERFORM USING項目名稱:項目名稱: 模塊名稱:模塊名稱:開發(fā)人員:開發(fā)人員: 完成日期:完成日期:模塊簡述:模塊簡述:任任 務(wù)務(wù)起起始始日日期期完完成成日日期期設(shè)設(shè) 計計編編 碼碼單單元元測測試試集集成成測測試試修修改改日日期期代代碼碼長長度度3. 過程設(shè)計的過程設(shè)計的 工具工具6、文件夾:記錄模塊開發(fā)過程的文、文件夾:記錄模塊開發(fā)過程的文檔。建議各組建立自己的文件夾。檔。建議各組建立自己的文件夾。ABCBCA =ABoCoSA =SCBA = BA
40、B*I4. Jackson System Development(JSD) 與與SD的由的由DFD導(dǎo)出結(jié)構(gòu)設(shè)計不同,導(dǎo)出結(jié)構(gòu)設(shè)計不同,JSD是以是以數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)(data structure)為基礎(chǔ)設(shè)計每個模塊的處為基礎(chǔ)設(shè)計每個模塊的處理過程。理過程。1、Jackson Diagram:注意:注意:H中的方框表示中的方框表示模塊,而模塊,而JD中的中的方框代表幾個語方框代表幾個語句構(gòu)成的簡單操句構(gòu)成的簡單操作;作;H表現(xiàn)調(diào)用關(guān)系,表現(xiàn)調(diào)用關(guān)系,而而JD表現(xiàn)組成關(guān)表現(xiàn)組成關(guān)系。系。4. JSD 例:例:(P.91)一個正文文件由若干個記錄組成,一個正文文件由若干個記錄組成,每個記錄是一個字符
41、串。每個記錄是一個字符串。 要求統(tǒng)計每個記錄中空格字符的個數(shù),要求統(tǒng)計每個記錄中空格字符的個數(shù), 以及文件中空格字符的總個數(shù)。以及文件中空格字符的總個數(shù)。 要求的輸出數(shù)據(jù)格式是:要求的輸出數(shù)據(jù)格式是: 每復(fù)制一行輸入字符串之后,每復(fù)制一行輸入字符串之后, 另起一行另起一行打打印出這個字符串中的空格數(shù),印出這個字符串中的空格數(shù), 最后最后打打印出文件中空格的總個數(shù)。印出文件中空格的總個數(shù)。2、Jackson方法:方法:第第1 1步:用步:用JacksonJackson圖描述圖描述 IO 的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)正文文件正文文件I字符串字符串*字符字符*空格空格O非空格非空格OIS輸入輸入輸出表格輸出
42、表格表格體表格體串信息串信息*字符串字符串空格數(shù)空格數(shù)I輸出輸出空格總數(shù)空格總數(shù)4. JSD第第2 2步:在兩個圖中指出有直接因果關(guān)系步:在兩個圖中指出有直接因果關(guān)系(causality)、可以同時處理的單元(重復(fù)的次序,次數(shù)均相同)可以同時處理的單元(重復(fù)的次序,次數(shù)均相同)4. JSD正文文件正文文件I字符串字符串*字符字符*空格空格O非空格非空格OIS輸入輸入輸出表格輸出表格表格體表格體串信息串信息*字符串字符串空格數(shù)空格數(shù)I輸出輸出空格總數(shù)空格總數(shù)? 經(jīng)過程序處理由經(jīng)過程序處理由正文文件正文文件得到得到輸出表格輸出表格。 每處理輸入中一個每處理輸入中一個字符串字符串后就后就得到輸出中一
43、個得到輸出中一個串信息串信息,二者重,二者重復(fù)次序和次數(shù)均相同。復(fù)次序和次數(shù)均相同。 字符字符不與多字符組成的不與多字符組成的字符串字符串對應(yīng)。對應(yīng)。 單個單個空格空格不能決定不能決定空格數(shù)空格數(shù)。4. JSD正文文件正文文件I字符串字符串*字符字符*空格空格O非空格非空格OIS輸入輸入輸出表格輸出表格表格體表格體串信息串信息*字符串字符串空格數(shù)空格數(shù)I輸出輸出空格總數(shù)空格總數(shù)統(tǒng)計空格統(tǒng)計空格處理字符串處理字符串*I程序體程序體打印總數(shù)打印總數(shù)打印字符串打印字符串打印空格數(shù)打印空格數(shù)分析字符分析字符*分析字符分析字符*I分析字符串分析字符串處理空格處理空格o處理非空格處理非空格oS注:順序執(zhí)行
44、的處理中不允許混有注:順序執(zhí)行的處理中不允許混有重復(fù)執(zhí)行或選擇執(zhí)行的處理重復(fù)執(zhí)行或選擇執(zhí)行的處理。第第3步:步:Data structure Program structure把有對應(yīng)關(guān)系的單元合為一個處理框,畫把有對應(yīng)關(guān)系的單元合為一個處理框,畫在相應(yīng)的層次中(不同層以低層為準(zhǔn))在相應(yīng)的層次中(不同層以低層為準(zhǔn))第第4 4步:列出所有操作條件,步:列出所有操作條件,并分配到上幅程序結(jié)構(gòu)圖中并分配到上幅程序結(jié)構(gòu)圖中統(tǒng)計空格統(tǒng)計空格處理字符串處理字符串*I(1)程序體程序體打印總數(shù)打印總數(shù)打印字符串打印字符串打印空格數(shù)打印空格數(shù)分析字符分析字符*I分析字符串分析字符串處理空格處理空格o處理非空格
45、處理非空格oS231454. JSD例例:(部分部分列舉,詳列舉,詳見見P.93)打開文件打開文件讀入字符串讀入字符串空格總數(shù)空格總數(shù)totalsum=0關(guān)閉文件關(guān)閉文件停止停止I 文件結(jié)束文件結(jié)束第第5步:用步:用Pseudocode 表示程序表示程序(詳見(詳見P.94 -95)5.程序復(fù)雜程度的定量度量程序復(fù)雜程度的定量度量(Measuring Program Complexity)1、mcCabes Theory (Thomas mcCabe , 1976) based on CFG第第1步:將程序流程圖轉(zhuǎn)化為程序圖步:將程序流程圖轉(zhuǎn)化為程序圖(CFG, Control Flow Gr
46、aph)TOTAL=TOTAL+AK+輸入輸入A輸出輸出K, L, TOTAL停止停止T開始開始K=0L=0TOTAL=0輸入輸入ADo While TOTAL0TL+Fa(開始(開始)b(入口(入口)cdefghij(出口(出口)k(停止(停止)abcdefghijk 符號符號點(diǎn)點(diǎn) 程序圖程序圖 有向圖有向圖5.程序復(fù)雜程度的定量度量程序復(fù)雜程度的定量度量第第2步:計算步:計算CFG的環(huán)形復(fù)雜度的環(huán)形復(fù)雜度 (CC, Cyclomatic Complexity)已知公式:已知公式:V(G) = m - n + p其中其中:V(G) =強(qiáng)連通有向圖強(qiáng)連通有向圖G中線性無關(guān)環(huán)中線性無關(guān)環(huán)(ind
47、ependent paths)的個數(shù)的個數(shù)(稱為稱為 cyclomatic number of G);m = 邊數(shù)邊數(shù) (number of edges) ; n = 節(jié)點(diǎn)數(shù)節(jié)點(diǎn)數(shù)(number of nodes);p = G中連通集的數(shù)目中連通集的數(shù)目(number of connected components)。a(開始(開始)b(入口(入口)cdefghij(出口(出口)k(停止(停止)注:注: 對于一個正對于一個正常的程序,常的程序,其其CFG應(yīng)是應(yīng)是連通的,即連通的,即p = 1. 對于平對于平面圖面圖G, V(G) =G在平面在平面上圍成上圍成的區(qū)域的區(qū)域的個數(shù)。的個數(shù)。 319
48、11V(G)5.程序復(fù)雜程度的定量度量程序復(fù)雜程度的定量度量CFG通常不通常不是強(qiáng)連通的,是強(qiáng)連通的,故須從出口到故須從出口到入口畫一條虛入口畫一條虛弧,使其成為弧,使其成為強(qiáng)連通圖。強(qiáng)連通圖。 分支或循環(huán)增多時,分支或循環(huán)增多時,CC也隨之增大,也隨之增大, CC值實際上是為軟件值實際上是為軟件測試測試的難易度提供了一個的難易度提供了一個定量度量的方法定量度量的方法, 間接表示了軟件的間接表示了軟件的可靠性可靠性。 CC是可加的:是可加的:2模塊的總復(fù)雜度模塊的總復(fù)雜度 = 各自各自CC之和。之和。 實踐經(jīng)驗表明,對于實踐經(jīng)驗表明,對于CC10的程序,應(yīng)分成幾個的程序,應(yīng)分成幾個小程序處理,
49、以降低出錯率。小程序處理,以降低出錯率。 缺點(diǎn):缺點(diǎn): 有些控制結(jié)構(gòu)不能區(qū)分,例如有些控制結(jié)構(gòu)不能區(qū)分,例如 IF 與與 LOOP,嵌套,嵌套 IF 與與 CASE 等;等; 不能區(qū)分一個多行順序結(jié)構(gòu)與一個單行程序的復(fù)不能區(qū)分一個多行順序結(jié)構(gòu)與一個單行程序的復(fù)雜性。雜性。5.程序復(fù)雜程度的定量度量程序復(fù)雜程度的定量度量McCabe 環(huán)形復(fù)雜度的特點(diǎn):環(huán)形復(fù)雜度的特點(diǎn):2. Halsteads Theory (M. Halstead, 1977) based on source code measurements The primitive measures are n1 不同的不同的運(yùn)算符個數(shù)
50、運(yùn)算符個數(shù)(the number of distinct operators that appear in a program) n2 不同的操作數(shù)個數(shù)不同的操作數(shù)個數(shù)( the number of distinct operands that appear in a program) N1 運(yùn)算符總個數(shù)運(yùn)算符總個數(shù)(the total number of operator occurrences) N2 操作數(shù)總個數(shù)操作數(shù)總個數(shù) (the total number of operand occurrences)注:成對出現(xiàn)的運(yùn)算符,如注:成對出現(xiàn)的運(yùn)算符,如 BEGINEND, IFTHEN
51、ELSE 等都算等都算1 1個運(yùn)算符個運(yùn)算符。5.程序復(fù)雜程度的定量度量程序復(fù)雜程度的定量度量 Halsteads laws:(1)實際程序長度實際程序長度(program length): N = N1 + N2(2) 程序詞匯表程序詞匯表(program vocabulary): n = n1 + n2(3) 預(yù)測程序長度預(yù)測程序長度(estimated length): H = n1log2n1 + n2log2n2 注意:注意:H可由詞匯表算出,即程序長度可通過詞匯表預(yù)估。可由詞匯表算出,即程序長度可通過詞匯表預(yù)估。(4) ) 程序量程序量(program volume):V = N
52、log2n minimum # of bits required to specify a program.5.程序復(fù)雜程度的定量度量程序復(fù)雜程度的定量度量(5) 程序級別程序級別(program level):L = V * / V 其中其中 potential volume V * = (2+n2*)log2 (2+n2*), n2* 為為I/O變量的個數(shù)變量的個數(shù) 。這里這里V * 是是V 的最小值,的最小值, 2 2表示程序中至少有表示程序中至少有2 2個運(yùn)算符個運(yùn)算符 賦值符和調(diào)用符。賦值符和調(diào)用符。 L 體現(xiàn)了抽象程度,編碼語言越高級,體現(xiàn)了抽象程度,編碼語言越高級,L 越接近越接近1。5.程序復(fù)雜程度的定量度量程序復(fù)雜程度的定量度量(6) 工作量工作量(effort):E=V / L。(7) 潛在錯誤潛在錯誤(potential error): B = N Log2 n /3000 。
- 溫馨提示:
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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新人教版小學(xué)數(shù)學(xué)二年級下冊《總復(fù)習(xí)圖形的運(yùn)動》ppt課件
- 鉆石小鳥電子商務(wù)案例分析x
- 貴州專版201x中考語文復(fù)習(xí)第二輪古詩文閱讀專題十文言文閱讀專項訓(xùn)練二課外古詩詞賞析課件
- 計算機(jī)發(fā)展簡史
- 五年級最小公倍數(shù)
- 分?jǐn)?shù)除法應(yīng)用題(一)1
- 人教版小學(xué)科學(xué)三年級《空氣占據(jù)空間嗎》
- 腹腔鏡脾切除技巧探討
- 水下溷凝土的灌注
- 主題班會關(guān)注小環(huán)境共享大健康
- 章引言數(shù)字圖像處理
- 學(xué)情通報會二課件
- 醫(yī)療企業(yè)組織氣氛建設(shè)方案分析
- 數(shù)據(jù)中心供配電系統(tǒng)概述
- 小學(xué)三年級口算題卡課件