軟件工程導(dǎo)論課件之第6章-詳細(xì)設(shè)計(jì)_第1頁(yè)
軟件工程導(dǎo)論課件之第6章-詳細(xì)設(shè)計(jì)_第2頁(yè)
軟件工程導(dǎo)論課件之第6章-詳細(xì)設(shè)計(jì)_第3頁(yè)
軟件工程導(dǎo)論課件之第6章-詳細(xì)設(shè)計(jì)_第4頁(yè)
軟件工程導(dǎo)論課件之第6章-詳細(xì)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩89頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第6章詳細(xì)設(shè)計(jì),6.1結(jié)構(gòu)程序設(shè)計(jì)6.2人機(jī)界面設(shè)計(jì)6.3過(guò)程設(shè)計(jì)的工具6.4面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法6.5程序復(fù)雜程度的定量度量,詳細(xì)設(shè)計(jì)階段的根本目標(biāo):確定應(yīng)該怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng)。經(jīng)過(guò)這個(gè)階段的設(shè)計(jì)工作,應(yīng)該得出對(duì)目標(biāo)系統(tǒng)的精確描述,從而在編碼階段可以把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語(yǔ)言書寫的程序。結(jié)構(gòu)程序設(shè)計(jì)技術(shù)是實(shí)現(xiàn)上述目標(biāo)的關(guān)鍵技術(shù),因此是詳細(xì)設(shè)計(jì)的邏輯基礎(chǔ)。,6.1結(jié)構(gòu)程序設(shè)計(jì),經(jīng)典定義:如果一個(gè)程序的代碼塊僅僅通過(guò)順序、選擇和循環(huán)這3種基本控制結(jié)構(gòu)進(jìn)行連接,并且每個(gè)代碼塊只有一個(gè)入口和一個(gè)出口,則稱這個(gè)程序是結(jié)構(gòu)化的。更全面定義:結(jié)構(gòu)程序設(shè)計(jì)是盡可能少用GOTO語(yǔ)句的程序設(shè)計(jì)方法。最好僅在檢測(cè)出錯(cuò)誤時(shí)才使用GOTO語(yǔ)句,而且應(yīng)該總是使用前向GOTO語(yǔ)句。,為了實(shí)際使用方便起見,常常還允許使用DO-UNTIL和DO-CASE兩種控制結(jié)構(gòu)。有時(shí)需要立即從循環(huán)(甚至嵌套的循環(huán))中轉(zhuǎn)移出來(lái),允許使用LEAVE(或BREAK)結(jié)構(gòu)。LEAVE或BREAK結(jié)構(gòu)實(shí)質(zhì)上是受限制的GOTO語(yǔ)句,用于轉(zhuǎn)移到循環(huán)結(jié)構(gòu)后面。,3種基本的控制結(jié)構(gòu),其他常用的控制結(jié)構(gòu),經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì):只允許使用順序、IF-THEN-ELSE型分支和DO-WHILE型循環(huán)這3種基本控制結(jié)構(gòu);擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì):如果除了上述3種基本控制結(jié)構(gòu)之外,還允許使用DO-CASE型多分支結(jié)構(gòu)和DO-UNTIL型循環(huán)結(jié)構(gòu);修正的結(jié)構(gòu)程序設(shè)計(jì):再加上允許使用LEAVE(或BREAK)結(jié)構(gòu)。,6.2人機(jī)界面設(shè)計(jì),人機(jī)界面設(shè)計(jì)是接口設(shè)計(jì)的重要組成部分。對(duì)于交互式系統(tǒng)來(lái)說(shuō),人機(jī)界面設(shè)計(jì)和數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)及過(guò)程設(shè)計(jì)一樣重要。人機(jī)界面的設(shè)計(jì)質(zhì)量,直接影響用戶對(duì)軟件產(chǎn)品的評(píng)價(jià),從而影響軟件產(chǎn)品的競(jìng)爭(zhēng)力和壽命,必須對(duì)人機(jī)界面設(shè)計(jì)給予足夠重視。,三條“黃金規(guī)則”:置用戶于控制之下。減少用戶記憶負(fù)擔(dān)。保持界面一致。,6.2.1設(shè)計(jì)問(wèn)題,設(shè)計(jì)人機(jī)界面過(guò)程中會(huì)遇到的4個(gè)問(wèn)題:系統(tǒng)響應(yīng)時(shí)間用戶幫助設(shè)施出錯(cuò)信息處理命令交互,1.系統(tǒng)響應(yīng)時(shí)間系統(tǒng)響應(yīng)時(shí)間指從用戶完成某個(gè)控制動(dòng)作,到軟件給出預(yù)期的響應(yīng)之間的這段時(shí)間。系統(tǒng)響應(yīng)時(shí)間有兩個(gè)重要屬性:長(zhǎng)度和易變性。長(zhǎng)度:如果系統(tǒng)響應(yīng)時(shí)間過(guò)長(zhǎng),用戶就會(huì)感到緊張和沮喪;系統(tǒng)響應(yīng)時(shí)間過(guò)短會(huì)迫使用戶加快操作節(jié)奏,從而可能會(huì)犯錯(cuò)誤。易變性:指系統(tǒng)響應(yīng)時(shí)間相對(duì)于平均響應(yīng)時(shí)間的偏差,即使系統(tǒng)響應(yīng)時(shí)間較長(zhǎng),響應(yīng)時(shí)間易變性低也有助于用戶建立起穩(wěn)定的工作節(jié)奏。,2.用戶幫助設(shè)施大多數(shù)現(xiàn)代軟件都提供聯(lián)機(jī)幫助設(shè)施,用戶無(wú)須離開用戶界面就能解決自己的問(wèn)題。常見的幫助設(shè)施可分為集成的和附加的兩類。集成的幫助設(shè)施設(shè)計(jì)在軟件里面,它對(duì)用戶工作內(nèi)容是敏感的,用戶可以從與剛剛完成的操作有關(guān)的主題中選擇一個(gè)請(qǐng)求幫助。附加的幫助設(shè)施是在系統(tǒng)建成后再添加到軟件中的,它實(shí)際上是一種查詢能力有限的聯(lián)機(jī)用戶手冊(cè)。集成的幫助設(shè)施優(yōu)于附加的幫助設(shè)施。,3.出錯(cuò)信息處理出錯(cuò)信息和警告信息,是出現(xiàn)問(wèn)題時(shí)交互式系統(tǒng)給出的“壞消息”。4.命令交互多數(shù)情況下,用戶既可以從菜單中選擇軟件功能,也可以通過(guò)鍵盤命令序列調(diào)用軟件功能。在理想的情況下,所有應(yīng)用軟件都有一致的命令使用方法。,6.2.2設(shè)計(jì)過(guò)程,用戶界面設(shè)計(jì)是一個(gè)迭代的過(guò)程,也就是說(shuō),通常先創(chuàng)建設(shè)計(jì)模型,再用原型實(shí)現(xiàn)這個(gè)設(shè)計(jì)模型,并由用戶試用和評(píng)估,然后根據(jù)用戶意見進(jìn)行修改。為了支持上述迭代過(guò)程,各種用于界面設(shè)計(jì)和原型開發(fā)的軟件工具應(yīng)運(yùn)而生。這些工具被稱為用戶界面工具箱或用戶界面開發(fā)系統(tǒng)。,6.2.3人機(jī)界面設(shè)計(jì)指南,一般交互指南信息顯示指南數(shù)據(jù)輸入指南,顏色使用指南:一個(gè)窗口中不應(yīng)該出現(xiàn)5種以上不同色系的顏色。一般的,盡量少用不同的顏色總是好的。如果一個(gè)圖表中僅包含幾種顏色,背景應(yīng)該選用其中一種顏色的補(bǔ)色:如果一幅圖中包含許多顏色,背景應(yīng)該選用一種中性的顏色,如灰色。如果兩個(gè)相鄰的顏色不是特別和諧,可以用細(xì)的黑色邊框?qū)⑺鼈兎珠_。背景和字體顏色應(yīng)選用對(duì)比度強(qiáng)的顏色。顏色的應(yīng)用要適度,裝飾性的使用服從功能性的使用。區(qū)域的顏色實(shí)際上能夠影響他的觀察尺寸。使用高飽和度(亮)顏色的大區(qū)域是不明智的。紅色和藍(lán)色具有最強(qiáng)的深度不一致的效果,紅色看起來(lái)近,藍(lán)色看起來(lái)遠(yuǎn)。,黃月亮和藍(lán)月亮,懷特效應(yīng),藍(lán)寶石之光,斯特魯普效應(yīng),6.3過(guò)程設(shè)計(jì)的工具6.3.1程序流程圖,程序流程圖又稱為程序框圖,它是歷史最悠久、使用最廣泛的描述過(guò)程設(shè)計(jì)的方法。它的主要優(yōu)點(diǎn)是對(duì)控制流程的描繪很直觀,便于初學(xué)者掌握。程序流程圖歷史悠久,至今仍在廣泛使用著。,程序流程圖中使用的符號(hào),程序流程圖的主要缺點(diǎn):程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過(guò)早地考慮程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。程序流程圖中用箭頭代表控制流,因此程序員不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計(jì)的精神,隨意轉(zhuǎn)移控制。程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。,6.3.2盒圖(N-S圖),盒圖具有下述特點(diǎn):功能域明確。不可能任意轉(zhuǎn)移控制。很容易確定局部和全程數(shù)據(jù)的作用域。很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。,盒圖的基本符號(hào),6.3.3PAD圖,PAD是問(wèn)題分析圖(problemanalysisdiagram)的英文縮寫,自1973年由日本日立公司發(fā)明以后,已得到一定程度的推廣。它用二維樹形結(jié)構(gòu)的圖來(lái)表示程序的控制流,將這種圖翻譯成程序代碼比較容易。,PAD圖的基本符號(hào),PAD圖的主要優(yōu)點(diǎn)如下:使用表示結(jié)構(gòu)化控制結(jié)構(gòu)的PAD符號(hào)設(shè)計(jì)出來(lái)的程序必然是結(jié)構(gòu)化程序。PAD圖所描繪的程序結(jié)構(gòu)十分清晰。PAD圖表現(xiàn)程序邏輯易讀、易懂、易記。容易將PAD圖轉(zhuǎn)換成高級(jí)語(yǔ)言源程序,這種轉(zhuǎn)換可用軟件工具自動(dòng)完成。即可表示程序邏輯,也可描繪數(shù)據(jù)結(jié)構(gòu)。PAD圖的符號(hào)支持自頂向下、逐步求精方法的使用。,例題:某程序流程圖如右圖所示,請(qǐng)分別用N-S圖和PAD圖表示。,a,j,b,i,c,e,d,x2,x3,x4,f,g,h,xi=,PAD圖:,x8,a,j,x1,b,T,F,f,x6,T,F,x7,i,g,h,CASExi,x2,x4,x3,x5,c,d,e,N-S圖:,6.3.4判定表,當(dāng)算法中包含多重嵌套的條件選擇時(shí),用程序流程圖、盒圖、PAD圖或后面即將介紹的過(guò)程設(shè)計(jì)語(yǔ)言(PDL)都不易清楚地描述。判定表卻能夠清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系。,一張判定表由4部分組成:左上部列出所有條件;左下部是所有可能做的動(dòng)作;右上部是表示各種條件組合的一個(gè)矩陣;右下部是和每種條件組合相對(duì)應(yīng)的動(dòng)作。,例題:假設(shè)某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重量不超過(guò)30kg的行李。當(dāng)行李重量超過(guò)30kg時(shí),對(duì)頭等艙的國(guó)內(nèi)乘客超重部分每公斤收費(fèi)4元,對(duì)其他艙的國(guó)內(nèi)乘客超重部分每公斤收費(fèi)6元。對(duì)外國(guó)乘客超重部分每公斤收費(fèi)比國(guó)內(nèi)乘客多一倍,對(duì)殘疾乘客超重部分每公斤收費(fèi)比正常乘客少一半。,表6.1用判定表表示計(jì)算行李費(fèi)的算法,1,2,3,4,5,6,7,8,9,國(guó)內(nèi)乘客,T,T,T,T,F,F,F,F,頭等艙,T,F,T,F,T,F,T,F,殘疾乘客,F,F,T,T,F,F,T,T,行李重量,W,30,T,F,F,F,F,F,F,F,F,免費(fèi),(W-30),2,(W-30),3,(W-30),4,(W-30),6,(W-30),8,(W-30),12,判定表的優(yōu)點(diǎn):能清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系。判定表的缺點(diǎn):判定表的含義不是一眼就能看出來(lái)的,初次接觸這種工具的人理解它需要有一個(gè)簡(jiǎn)短的學(xué)習(xí)過(guò)程。當(dāng)數(shù)據(jù)元素的值多于兩個(gè)時(shí),判定表的簡(jiǎn)潔程度也將下降。,判定樹是判定表的變種,也能清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系。多年來(lái)判定樹一直受到人們的重視,是一種比較常用的系統(tǒng)分析和設(shè)計(jì)的工具。,6.3.5判定樹,用判定樹表示計(jì)算行李費(fèi)的算法,判定樹的優(yōu)點(diǎn):它的形式簡(jiǎn)單,一眼就可以看出其含義,因此易于掌握和使用。判定樹的缺點(diǎn):簡(jiǎn)潔性不如判定表,數(shù)據(jù)元素的同一個(gè)值往往要重復(fù)寫多遍,而且越接近樹的葉端重復(fù)次數(shù)越多。畫判定樹時(shí)分枝的次序可能對(duì)最終畫出的判定樹的簡(jiǎn)潔程度有較大影響。,例題:某校制定了教師的講課課時(shí)津貼標(biāo)準(zhǔn)。對(duì)于各種性質(zhì)的講座,無(wú)論教師是什么職稱,每課時(shí)津貼費(fèi)一律是50元;對(duì)于一般的授課,則根據(jù)教師的職稱來(lái)決定每課時(shí)津貼費(fèi):教授30元,副教授25元,講師20元,助教15元。請(qǐng)分別用判定表和判定樹表示津貼標(biāo)準(zhǔn)。,15,20,25,30,50,F,F,F,F,T,講座,T,F,F,F,助教,F,T,F,F,講師,F,F,T,F,副教授,F,F,F,T,教授,5,4,3,2,1,判定表:,課時(shí)津貼,一般授課,講座,教授,副教授,講師,助教,30,25,20,15,50,判定樹:,6.3.6過(guò)程設(shè)計(jì)語(yǔ)言,過(guò)程設(shè)計(jì)語(yǔ)言(PDL)也稱為偽碼,它是用正文形式表示數(shù)據(jù)和處理過(guò)程的設(shè)計(jì)工具。PDL具有嚴(yán)格的關(guān)鍵字外部語(yǔ)法,用于定義控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu);另一方面,PDL表示實(shí)際操作和條件的內(nèi)部語(yǔ)法通常又是靈活自由的,可以適應(yīng)各種工程項(xiàng)目的需要。PDL是一種“混雜”語(yǔ)言,它使用一種語(yǔ)言的詞匯,同時(shí)卻使用另一種語(yǔ)言的語(yǔ)法。,偽代碼的基本控制結(jié)構(gòu):簡(jiǎn)單陳述句結(jié)構(gòu):避免復(fù)合語(yǔ)句。判定結(jié)構(gòu):IF_THEN_ELSE或CASE_OF結(jié)構(gòu)。選擇結(jié)構(gòu):WHILE_DO或REPEAT_UNTIL結(jié)構(gòu)。,例:檢查訂貨單IF客戶訂貨金額超過(guò)5000元THENIF客戶拖延未還賒欠錢款超過(guò)60天THEN在償還欠款前不予批準(zhǔn)ELSE(拖延未還賒欠錢款不超過(guò)60天)發(fā)批準(zhǔn)書,發(fā)貨單ENDIFELSE(客戶訂貨金額未超過(guò)5000元)IF客戶拖延未還賒欠錢款超過(guò)60天THEN發(fā)批準(zhǔn)書,發(fā)貨單,并發(fā)催款通知書ELSE(拖延未還賒欠錢款不超過(guò)60天)發(fā)批準(zhǔn)書,發(fā)貨單ENDIFENDIF,PDL的特點(diǎn):關(guān)鍵字的固定語(yǔ)法,它提供了結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說(shuō)明和模塊化的特點(diǎn)。自然語(yǔ)言的自由語(yǔ)法,它描述處理特點(diǎn)。數(shù)據(jù)說(shuō)明的手段。應(yīng)該既包括簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),又包括復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。模塊定義和調(diào)用的技術(shù),應(yīng)該提供各種接口描述模式。,PDL的優(yōu)點(diǎn):可以作為注釋直接插在源程序中間。有助于保持文檔和程序的一致性,提高了文檔的質(zhì)量??梢允褂闷胀ǖ恼木庉嫵绦蚧蛭淖痔幚硐到y(tǒng),很方便地完成PDL的書寫和編輯工作。已經(jīng)有自動(dòng)處理程序存在,而且可以自動(dòng)由PDL生成程序代碼。PDL的缺點(diǎn):不如圖形工具形象直觀,描述復(fù)雜的條件組合與動(dòng)作間的對(duì)應(yīng)關(guān)系時(shí),不如判定表清晰簡(jiǎn)單。,練習(xí)題1:習(xí)題6.3畫出下列偽碼程序的程序流程圖和盒圖:STARTIFpTHENWHILEqDOfENDDOELSEBLOCKgnENDBLOCKENDIFSTOP,練習(xí)題2:用判定表和判定樹表示“檢查訂貨單”程序IF客戶訂貨金額超過(guò)5000元THENIF客戶拖延未還賒欠錢款超過(guò)60天THEN在償還欠款前不予批準(zhǔn)ELSE(拖延未還賒欠錢款不超過(guò)60天)發(fā)批準(zhǔn)書,發(fā)貨單ENDIFELSE(客戶訂貨金額未超過(guò)5000元)IF客戶拖延未還賒欠錢款超過(guò)60天THEN發(fā)批準(zhǔn)書,發(fā)貨單,并發(fā)催款通知書ELSE(拖延未還賒欠錢款不超過(guò)60天)發(fā)批準(zhǔn)書,發(fā)貨單ENDIFENDIF,6.4面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,數(shù)據(jù)結(jié)構(gòu)既影響程序的結(jié)構(gòu)又影響程序的處理過(guò)程重復(fù)出現(xiàn)的數(shù)據(jù)通常由具有循環(huán)控制結(jié)構(gòu)的程序來(lái)處理選擇數(shù)據(jù)要用帶有分支控制結(jié)構(gòu)的程序來(lái)處理層次的數(shù)據(jù)組織通常和使用這些數(shù)據(jù)的程序的層次結(jié)構(gòu)十分相似。面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法的最終目標(biāo)是得出對(duì)程序處理過(guò)程的描述。,6.4.1Jackson圖,數(shù)據(jù)結(jié)構(gòu)中數(shù)據(jù)元素彼此間的邏輯關(guān)系:順序結(jié)構(gòu),順序結(jié)構(gòu)的數(shù)據(jù)由一個(gè)或多個(gè)數(shù)據(jù)元素組成,每個(gè)元素按確定次序出現(xiàn)一次。選擇結(jié)構(gòu),選擇結(jié)構(gòu)的數(shù)據(jù)包含兩個(gè)或多個(gè)數(shù)據(jù)元素,每次使用這個(gè)數(shù)據(jù)時(shí)按一定條件從這些數(shù)據(jù)元素中選擇一個(gè)。重復(fù)結(jié)構(gòu),重復(fù)結(jié)構(gòu)的數(shù)據(jù),根據(jù)使用時(shí)的條件由一個(gè)數(shù)據(jù)元素出現(xiàn)零次或多次構(gòu)成。,A由B、C、D3個(gè)元素順序組成,根據(jù)條件A是B或C或D中的某一個(gè),A由B出現(xiàn)N次(N0)組成,Jackson圖的優(yōu)點(diǎn):便于表示層次結(jié)構(gòu),而且是對(duì)結(jié)構(gòu)進(jìn)行自頂向下分解的有力工具;形象直觀可讀性好;既能表示數(shù)據(jù)結(jié)構(gòu)也能表示程序結(jié)構(gòu)。Jackson圖的缺點(diǎn):表示選擇或重復(fù)結(jié)構(gòu)時(shí),選擇條件或循環(huán)結(jié)束條件不能直接在圖上表示出來(lái),影響了圖的表達(dá)能力,也不易直接把圖翻譯成程序;框間連線為斜線,不易在行式打印機(jī)上輸出。,6.4.2改進(jìn)的Jackson圖,Jackson圖和層次圖的區(qū)別:,6.4.3Jackson方法,Jackson結(jié)構(gòu)程序設(shè)計(jì)方法由5個(gè)步驟組成:(1)分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),用Jackson圖描繪數(shù)據(jù)結(jié)構(gòu)。(2)找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元。所謂有對(duì)應(yīng)關(guān)系是指有直接的因果關(guān)系,在程序中可以同時(shí)處理的數(shù)據(jù)單元(對(duì)于重復(fù)出現(xiàn)的數(shù)據(jù)單元必須重復(fù)的次序和次數(shù)都相同才可能有對(duì)應(yīng)關(guān)系)。,(3)用下述規(guī)則從描繪數(shù)據(jù)結(jié)構(gòu)的Jackson圖導(dǎo)出描繪程序結(jié)構(gòu)的Jackson圖:第一,為每對(duì)有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元,按照它們?cè)跀?shù)據(jù)結(jié)構(gòu)圖中的層次在程序結(jié)構(gòu)圖的相應(yīng)層次畫一個(gè)處理框(層次不同時(shí)與圖中層次低的那個(gè)對(duì)應(yīng));第二,根據(jù)輸入數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對(duì)應(yīng)的處理框;第三,根據(jù)輸出數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對(duì)應(yīng)的處理框。改進(jìn)的Jackson圖規(guī)定在構(gòu)成順序結(jié)構(gòu)的元素中不能有重復(fù)出現(xiàn)或選擇出現(xiàn)的元素,因此可能需要增加中間層次的處理框。,(4)列出所有操作和條件(包括分支條件和循環(huán)結(jié)束條件),并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。(5)用偽碼表示程序。,順序結(jié)構(gòu):AseqBCDAend,選擇結(jié)構(gòu):Aselectcond1BAorcond2CAorcond3DAend,循環(huán)結(jié)構(gòu):Aiteruntil(或while)condBAend,例1:一個(gè)正文文件由若干個(gè)記錄組成,每個(gè)記錄是一個(gè)字符串。要求統(tǒng)計(jì)每個(gè)記錄中空格字符的個(gè)數(shù),以及文件中空格字符的總個(gè)數(shù)。要求的輸出數(shù)據(jù)格式是,每復(fù)制一行輸入字符串之后,另起一行印出這個(gè)字符串中的空格數(shù),最后印出文件中空格的總個(gè)數(shù)。,設(shè)計(jì)步驟如下:(1)用Jackson圖描繪的輸入輸出數(shù)據(jù)結(jié)構(gòu)。,(2)分析確定在輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元。,(3)從數(shù)據(jù)結(jié)構(gòu)圖導(dǎo)出程序結(jié)構(gòu)圖。,(4)列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。(5)用偽碼表示程序處理過(guò)程。,例2:高考后將考生的基本情況文件(簡(jiǎn)稱考生情況文件)和考生高考成績(jī)文件(簡(jiǎn)稱考分文件)合并成一個(gè)新文件(簡(jiǎn)稱考生新文件)。考生基本情況文件中的考生記錄的內(nèi)容包括:準(zhǔn)考證號(hào)、姓名、通信地址。考分文件中的考生記錄的內(nèi)容包括:準(zhǔn)考證號(hào)和各門考分。合并后的考生新文件自然也是由考生記錄組成,內(nèi)容包括:準(zhǔn)考證號(hào)、姓名、通信地址和各門考分。,設(shè)計(jì)步驟如下:(1)用Jackson圖描繪的輸入輸出數(shù)據(jù)結(jié)構(gòu)。,輸入數(shù)據(jù)結(jié)構(gòu):,輸出數(shù)據(jù)結(jié)構(gòu):,(2)分析確定在輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元。,(3)從數(shù)據(jù)結(jié)構(gòu)圖導(dǎo)出程序結(jié)構(gòu)圖。,(4)列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。操作:停止;打開兩個(gè)輸入文件;建立輸出文件;從輸入文件中各讀一條記錄;生成一條新記錄;將新記錄寫入輸出文件;關(guān)閉全部文件。條件:I(1)文件結(jié)束。,(5)用偽碼表示程序處理過(guò)程。產(chǎn)生新文件seq打開兩個(gè)輸入文件建立輸出文件從輸入文件中各讀一條記錄分析考生記錄iteruntil文件結(jié)束處理考生記錄seq產(chǎn)生準(zhǔn)考證號(hào)產(chǎn)生姓名產(chǎn)生通信地址產(chǎn)生考分生成一條新記錄將新記錄寫入輸出文件從輸入文件中各讀一條記錄處理考生記錄end分析考生記錄end關(guān)閉全部文件停止產(chǎn)生新文件end,6.5程序復(fù)雜程度的定量度量,詳細(xì)設(shè)計(jì)階段設(shè)計(jì)出的模塊質(zhì)量可以使用軟件設(shè)計(jì)的基本原理和概念進(jìn)一步仔細(xì)衡量它們的質(zhì)量。但是,這種衡量畢竟只能是定性的,人們希望能進(jìn)一步定量度量軟件的性質(zhì)。,定量度量程序復(fù)雜程度的作用:把程序的復(fù)雜程度乘以適當(dāng)常數(shù)即可估算出軟件中錯(cuò)誤的數(shù)量以及軟件開發(fā)需要用的工作量;定量度量的結(jié)果可以用來(lái)比較兩個(gè)不同的設(shè)計(jì)或兩個(gè)不同算法的優(yōu)劣;程序的定量的復(fù)雜程度可以作為模塊規(guī)模的精確限度。,6.5.1McCabe方法,1.流圖McCabe方法根據(jù)程序控制流的復(fù)雜程度定量度量程序的復(fù)雜程度,這樣度量出的結(jié)果稱為程序的環(huán)形復(fù)雜度。所謂流圖實(shí)質(zhì)上是“退化了的”程序流程圖,它僅僅描繪程序的控制流程,完全不表現(xiàn)對(duì)數(shù)據(jù)的具體操作以及分支或循環(huán)的具體條件。,流圖的表示:結(jié)點(diǎn):用圓表示,一個(gè)圓代表一條或多條語(yǔ)句。邊:箭頭線稱為邊,代表控制流。在流圖中一條邊必

溫馨提示

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

評(píng)論

0/150

提交評(píng)論