版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第6章詳細設計6.1結構程序設計6.2人機界面設計6.3過程設計的工具6.4程序復雜程度的定量度量1詳細設計階段的根本目標子目標1:確定應該怎樣具體地實現(xiàn)所要求的系統(tǒng)。——要求邏輯上正確地實現(xiàn)每個模塊的功能。子目標2:使得將來編寫出的程序易理解、易測試、易修改和易維護。2詳細設計階段的任務詳細設計階段的任務是設計出程序的詳細規(guī)格說明,而不是具體地編寫程序。在編碼階段才是寫出實際的代碼。3詳細設計的任務主要有如下五點。(1)確定每個模塊的具體算法。(2)確定每個模塊的內部數(shù)據結構及數(shù)據庫的物理結構。(3)確定模塊接口的具體細節(jié)。(4)為每個模塊設計一組測試用例。(5)編寫文檔,參加復審。4詳細設計階段的結果決定了最終的程序代碼的質量。
結構程序設計技術:是實現(xiàn)質量要求的基本保證,是詳細設計的邏輯基礎。結構程序設計定義:①一個程序的代碼塊僅僅通過順序、選擇和循環(huán)這三種基本的控制結構進行連接;②并且每個代碼塊只有一個入口和一個出口。6.1
結構程序設計5“結構程序設計是盡可能少用GOTO語句。因為程序的質量與程序中所包含的GOTO語句的數(shù)量成反比”。Bohm和Jacopini已證明:只用三種基本的控制結構(順序,選擇,循環(huán))就能實現(xiàn)任何單入口單出口的程序。從而實現(xiàn)結構程序設計。結構程序設計質量保證6順序結構選擇結構一TTFF選擇結構二結構程序設計三種基本的控制結構一個菱形判斷框有兩個出口,而一個選擇結構只有一個出口。不要將菱形框的出口和選擇結構的出口混淆。)7循環(huán)結構的圖示:
當型(While型)循環(huán)結構直到型(Until型)循環(huán)TTFF8三種基本結構的共同特點:(1)只有一個入口;(2)只有一個出口;(3)結構內的每一部分都有機會被執(zhí)行到;(4)結構內不存在“死循環(huán)”(無終止的循環(huán))。
9結構程序設計的特點:由三種基本結構順序組成的,可以解決任何復雜的問題。程序內不存在無規(guī)律的轉向,只在基本結構內才允許存在分支和向前或向后的跳轉。10課堂練習1右圖給出的程序流程圖代表一個非結構化的程序,請問:(1)為什么說它是非結構化的?(2)設計一個等價的結構化程序。(3)在(2)題的設計中你使用附加的標志變量flag了嗎?若沒用,請再設計一個使用flag的程序;若用了,再設計一個不用flag的程序。結束11
(1)圖示的程序的循環(huán)控制結構有兩個出口,顯然不符合狹義的結構程序的定義,因此是非結構化的程序。結束12
(2)使用附加的標志變量flag程序流程圖13
(3)不使用附加的標志變量flag程序流程圖14人機界面設計是接口設計的一個重要組成部分。近來年,人機界面在系統(tǒng)中占的比例越來越大,有的系統(tǒng)中甚至占總設計量的一半以上。人機界面的設計質量,直接影響用戶對軟件產品的評價。6.2人機界面設計15系統(tǒng)響應時間:從用戶完成某個控制動作到軟件給出預期的響應之間的這段時間。2.用戶幫助設施:
集成和附加兩類。3.出錯信息處理:
如何辦,用戶心理。4.命令交互:
用戶可以從菜單中選擇軟件功能,也可以通過鍵盤命令序列調用軟件功能。6.2.1設計問題16用戶界面設計是一個迭代的過程。過程一般如下:1.通常先創(chuàng)建設計用戶界面模型2.實現(xiàn)該設計模型的原型3.由用戶試用和評估原型4.根據用戶意見進行修改6.2.2
設計過程171、一般交互指南一致性:為人機界面中的菜單選擇、命令輸入、數(shù)據顯示及眾多其他功能,使用一致的格式。確認:在執(zhí)行有較大破壞性的動作之前要求用戶確認。UNDO:允許用戶取消絕大數(shù)操作。易記:應該盡量減少記憶量。層次:按功能對動作分類,并據此設計屏幕布局。多媒體:應向用戶提供視覺和聽覺的反饋,以建立雙向通信。6.2.3人機界面設計指南18
1)、可使用性
①使用簡單②用戶界面中所用術語的標準化和一致性③
具有HELP功能④
快速的系統(tǒng)響應和低的系統(tǒng)成本2)、靈活性
①提供不同的系統(tǒng)響應信息(多媒體)。②提供根據用戶需求制定和修改界面。3)、界面的復雜性與可靠性
復雜性—界面規(guī)模及組織應該愈簡單愈好。只顯示與當前工作內容相關的信息。使用窗口分隔不同類型的信息。
可靠性—用戶界面應該能夠保證用戶正確、可靠地使用系統(tǒng),及程序、數(shù)據的安全。產生有意義的出錯信息。2、信息顯示界面設計19數(shù)據輸入界面,是系統(tǒng)的重要組成部分。主要從輸入速度和減少出錯率考慮。1)盡量減少輸入工作量對相同內容輸入設置默認值自動填入列表選擇或點擊選擇2)保持信息顯示和數(shù)據輸入之間的一致性(大小、顏色和位置)。3)交互應該是靈活的,允許鼠標輸入和鍵盤輸入。4)使在當前動作語境中不起作用的命令不起作用。3、數(shù)據輸入界面設計20復習與回顧(1)經典的結構化程序設計有什么特點?
采用三種基本的控制結構;單入口,單出口(2)根據你使用和開發(fā)軟件的經驗,談談如何盡量減少用戶的輸入工作量?
1)對相同內容輸入設置默認值
2)自動填入
3)列表選擇或點擊選擇(3)你認為應如何減少界面的復雜度?
1)顯示與當前工作內容相關的信息。
2)使用窗口分隔不同類型的信息。
3)
21新課導入請問:詳細設計階段的根本目標是什么?引入:算法設計的工具226.3
過程設計的工具
(1)過程設計是設計模塊的詳細步驟(算法),是詳細設計階段應完成的主要工作。
(2)過程設計的工具描述程序處理過程的工具。
描述工具程序流程圖N-S
圖PAD
圖PDL
偽代碼判定表/判定樹詳細設計階段的描述工具23起止框判斷框處理框輸入/輸出框注釋框流向線連接點美國國家標準化協(xié)會ANSI(AmericanNationalStandardInstitute)規(guī)定了一些常用的流程圖符號:24例:用流程圖表示:打印50名學生中成績在80分以上者的學號和成績。TF25程序流程圖的優(yōu)缺點:主要優(yōu)點:對控制流程的描繪很簡明直觀、易于理解,便于初學者掌握。主要缺點:本質上不是逐步求精的好工具。
----改進:PAD圖用箭頭代表控制流,描述程序時可以隨意跳轉。
----改進:N-S圖不易表示數(shù)據結構。
----改進:PAD圖嵌套的條件選擇表示不清。----判定樹、判定表26為了避免流程圖在描述程序時的隨意跳轉,提出了N-S圖代替流程圖。N-S圖由而且僅由順序、選擇、循環(huán)三種基本結構組成。順序結構塊1塊2塊3塊4條件TF塊1塊2選擇結構CaseI=1,2,3塊1塊2多分支選擇結構塊3塊當條件成立時當型循環(huán)(while)塊直到條件成立時直到型循環(huán)(until)6.3.2N—S圖圖6.4N-S圖27例:用N-S圖表示:打印50名學生中成績在80分以上者的學號和成績。N-S圖28盒圖(N-S圖)特點1)形象直觀,可讀性強;2)限制了隨意的控制轉移;3)特定的控制結構的作用域明確;4)很容易確定局部和全程數(shù)據;5)很容易表現(xiàn)嵌套和模塊的層次結構。其缺點是:修改算法比較困難。296.3.3PAD圖PAD(ProblemAnalysisDiagram)是問題分析圖。PAD圖除了自上而下外,還有從左向右的展開,是使用二維樹型結構圖表示程序的控制流。30PAD圖基本符號順序結構選擇結構Case型多分支結構While型循環(huán)Until型循環(huán)定義31使用PAD圖提供的定義功能逐步求精的例子32例:用PAD圖表示:打印50名學生中成績在80分以上者的學號和成績。PAD圖33PAD圖的特點1)能展現(xiàn)算法的層次結構;2)表示形式直觀易懂;3)既可用于表示程序邏輯,又可用于描述數(shù)據結構;4)支持自頂向下,逐步求精的過程。346.3.4判定表當算法中包含多重嵌套的條件選擇時,用程序流程圖、盒圖、PAD圖等都不易清楚地描述,然而,判定表能夠清晰地表示復雜的條件組合與應做的動作之間的對應關系。35判定表舉例——行李托運費的算法假設某航空公司規(guī)定:乘客可以免費托運不超過30kg的行李。當行李重量超過30kg時,對頭等艙的國內乘客超重部分每公斤收費4元,對其他艙的國內乘客超重部分每公斤收費6元,對外國乘客超重部分每公斤收費比國內乘客多一倍,對殘疾乘客超重部分每公斤收費比正常乘客少一半。用判定表可以清楚地表示與上述每種組合相對應的計算行李費的算法。36一張判定表由4部分組成:左上部列出所有條件左下部是所有可能做的動作右上部表示各種條件組合的一個矩陣右下部是和每種條件組合相對應的動作。判定表右半部的每一列實質上是一條規(guī)則,規(guī)定了與特定的條件組合相對應的動作。37以“檢查發(fā)貨單”為例:××××××××38判定表的優(yōu)缺點優(yōu)點:判定表能夠簡潔而無歧義地描述處理規(guī)則??梢詫ε卸ū磉M行校驗或化簡。缺點:并不適于作為一種通用的設計工具,直觀性不夠。39
判定樹是用來表達加工邏輯的一種工具。比判定表更直觀,是一種常用的系統(tǒng)分析和設計工具。6.3.5判定樹40圖6.7用判定樹表示計算行李費的算法數(shù)據元素的同一個值往往要寫多次畫判定樹的次序對葉子結點有較大影響。41檢查發(fā)貨單金額>$500金額$500
欠款>60天不發(fā)出批準書
欠款60天發(fā)出批準書、發(fā)貨單
欠款>60天發(fā)出批準書、發(fā)貨單及賒欠報告
欠款60天發(fā)出批準書、發(fā)貨單以“檢查發(fā)貨單”為例:42判定樹的優(yōu)缺點優(yōu)點:比判定表更直觀。缺點:(1)不夠簡潔,數(shù)據元素重復多次地寫。(2)畫判定樹時分枝的次序對簡潔程序有影響。43PDL:是一種非形式化、比較靈活的混雜語言。也稱為偽碼。用于描述模塊內部過程的具體算法,以便在開發(fā)人員之間比較精確的進行交流。例子6.3.6PDL(ProgramDesignLanguage)程序設計語言44商店業(yè)務處理系統(tǒng)中“檢查發(fā)貨單”的偽碼if發(fā)貨單金額超過$500then
if欠款超過了60天then
在償還欠款前不予批準
else(欠款未超期)發(fā)批準書、發(fā)貨單
else(發(fā)貨單金額未超過$500)
if
欠款超過60天then
發(fā)批準書、發(fā)貨單及賒欠報告
else
(欠款未超期)發(fā)批準書、發(fā)貨單使用一種語言(通常是自然語言)的詞匯,同時卻使用另一種語言(某種結構化語言)的語法。45PDL用正文形式表示數(shù)據和處理過程的設計工具,其外層語法是確定的,而內層語法則不確定。
(1)PDL具有嚴格的關鍵字外部語法,用于定義控制結構和數(shù)據結構。外層語法描述控制結構它用類似于一般程序設計語言控制結構的關鍵字:如:
IF-THEN-ELSEDOWHILE
REPEAT-UNTIL
DOCASE
等表示。有時還用關鍵字反排,表示控制結構結束:
DO-ODIF-FI
(2)PDL表示實際操作和條件的內部語法通常又是靈活自由的,可以適應各種工程項目的需要。PDL的特點46PDL的優(yōu)缺點優(yōu)點:可以作為注釋直接插入到源程序中。有利于PDL和源程序保持一致性。PDL編寫方便??梢杂勺詣犹幚沓绦驅DL生成程序代碼。缺點:(1)不如圖形工具形象直觀。(2)描述復雜的條件組合與動作間的對應關系時,不如判定表清晰簡單。47思考題詳細設計的算法與概要設計中的模塊有什么關系?48第五章:總體設計通常采用結構圖或HIPO圖來描述軟件的層次結構。第六章:詳細設計可采用程序流程圖、N-S圖、PAD圖或PDL語言等手段進行描述,描述第五章結構圖或HIPO圖中模塊的算法。4950516.4程序復雜程度的定量度量用途:可估算出軟件中錯誤的數(shù)量以及軟件開發(fā)需要用的工作量。比較兩個不同的設計或兩個不同算法的優(yōu)劣。作為模塊規(guī)模的精確限度。526.4.1McCabe方法基本步驟:(1)將程序流程圖或PDL等簡化為流圖。(2)基于流圖計算環(huán)形復雜度,以定量度量程序的復雜程度。
53McCabe的流圖定義:
—僅僅描繪程序的控制流程基本符號:
—圓:代表一條或多條語句
—箭頭線:邊
—區(qū)域:由邊和圓圍成的面積基本原則:
—合并原則:順序處理框和菱形判定框、順序處理框序列可以映射成流圖中的一個結點。
—分解原則:復合條件分解為若干個簡單條件,每個簡單條件對應流圖中一個結點。54程序流程圖翻譯FFTFTT順序處理框和菱形判定框映射成一個結點一條邊必須終止于一個結點,即使該結點并不代表任何語句流圖一個菱形判定框映射成流圖中的一個結點在流圖中,用圓表示結點一個圓表示一條或多條語句邊代表控制流Ri表示區(qū)域(由邊和點圍成的面積)順序處理框序列55PDL翻譯流圖56……IFaORb
thenprocedurexelseprocedureyENDIF……復合條件的PDL映射成的流圖把復合條件分解為若干個簡單條件,每個簡單條件對應流圖中一個結點。572.計算環(huán)形復雜度的方法
McCabe方法基于流圖中程序控制流的復雜程度定量度量程序的復雜程度,稱為程序的環(huán)形復雜度。(1)流圖中的環(huán)形復雜度V(G)=區(qū)域數(shù)。(2)流圖G的環(huán)形復雜度V(G)=E-N+2,其中,E是流圖中邊的條數(shù),N是結點數(shù)。(3)流圖G的環(huán)形復雜度V(G)=P+1,其中,P是流圖中判定結點的數(shù)目。示例示例示例583.環(huán)形復雜度的用途
對測試難度的一種定量度量,能對軟件最終的可靠性給出某種預測。環(huán)形復雜度高的程序往往是最困難、最容易出問題的程序。實踐表明,模塊規(guī)模以V(G)≤10為宜。59
CEXAMPLELOOP:DOWHILEX>0A=B+1IFA>10THENX=AELSEY=ZENDIFIFY<5THENPRINTX,YELSEIFY=2THENGOTOLOOPELSEC=3ENDIFENDIFP142:8畫出下列偽碼程序的流圖,計算它的環(huán)形復雜度。你覺得這個程序的邏輯有什么問題嗎?G=H+RENDDOIFF>0THENPRINTGELSEPRINTKENDIFSTOP課堂討論及解答1234567891011121311415161718192060
方法1:V(G)=邊數(shù)E-結點數(shù)n+2=18-14+2=6方法2:
V(G)
=判斷結點
+1=5+1=6方法3:
V(G)
=流圖中的區(qū)域數(shù)=6=環(huán)形復雜度。
R1R2R3R4R
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025山東菏澤曹縣蘇教高級中學教師招聘6人備考考試試題及答案解析
- 2026福建三明市建寧縣公開招聘緊缺急需專業(yè)教師19人參考筆試題庫附答案解析
- 2025新疆第十四師昆玉市學校引進高層次人才18人考試參考試題及答案解析
- 2026華能云南滇東能源有限責任公司招聘60人參考筆試題庫附答案解析
- 深度解析(2026)《GBT 25866-2010玉米干全酒糟(玉米DDGS)》(2026年)深度解析
- 2025河南輕工職業(yè)學院2025年公開招聘工作人員(博士)5人模擬筆試試題及答案解析
- 深度解析(2026)《GBT 25811-2010染料試驗用標準漂白滌綸布》
- 2026福建龍巖人民醫(yī)院招聘醫(yī)學類緊缺急需專業(yè)畢業(yè)生4人備考考試試題及答案解析
- 高校畢業(yè)生專業(yè)結構與產業(yè)需求錯配-基于OECD《技能戰(zhàn)略》供需匹配指數(shù)
- 2025重慶市長壽區(qū)城市管理服務中心招聘數(shù)字城管工作人員3人參考筆試題庫附答案解析
- 中醫(yī)藥轉化研究中的專利布局策略
- COPD巨噬細胞精準調控策略
- 網店代發(fā)合作合同范本
- 心源性休克的液體復蘇挑戰(zhàn)與個體化方案
- 九師聯(lián)盟2026屆高三上學期12月聯(lián)考英語(第4次質量檢測)(含答案)
- 2025年醫(yī)院法律法規(guī)培訓考核試題及答案
- (2025年)人民法院聘用書記員考試試題(含答案)
- 字節(jié)跳動+Agent+實踐手冊
- 銷售香薰技巧培訓課件
- 雨課堂在線學堂《醫(yī)學文獻檢索》作業(yè)單元考核答案
- 計調年終總結匯報
評論
0/150
提交評論