版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、教學(xué)目標(biāo) 掌握常用的詳細(xì)設(shè)計(jì)工具、了解人機(jī)界面設(shè)計(jì)問題、了解Jackson結(jié)構(gòu)程序設(shè)計(jì)技術(shù)。教學(xué)重點(diǎn) 各種詳細(xì)設(shè)計(jì)工具的使用。教學(xué)難點(diǎn) Jackson結(jié)構(gòu)程序設(shè)計(jì)技術(shù)。第6章 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)的基本目的就是回答“詳盡、精確地描述系統(tǒng)各模塊的具體實(shí)現(xiàn)方法”。 詳細(xì)設(shè)計(jì)的結(jié)果基本決定了最終程序代碼的質(zhì)量,其中包括:正確性、可讀性、效率。第6章 詳細(xì)設(shè)計(jì)第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ù)雜程度的定量度量6.6 小結(jié)及作業(yè)結(jié)構(gòu)程序設(shè)計(jì)的經(jīng)典定義:“如果一個(gè)程序的代碼塊僅僅通過(guò)順序、選擇和循環(huán)這3種基本控制結(jié)構(gòu)進(jìn)行連
2、接,并且每個(gè)代碼塊只有一個(gè)入口和一個(gè)出口,則稱這個(gè)程序是結(jié)構(gòu)化的?!毕麥鏕OTO語(yǔ)句!僅用3種基本結(jié)構(gòu),稱為經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì);若還允許使用DO-CASE(多分支循環(huán))、DO-UNTIL(直到型循環(huán)),成為擴(kuò)展結(jié)構(gòu)程序設(shè)計(jì);如果在允許使用LEAVE(或BREAK,中斷)結(jié)構(gòu),則稱為修正結(jié)構(gòu)程序設(shè)計(jì)。6.1 結(jié)構(gòu)程序設(shè)計(jì)6.2 人機(jī)界面設(shè)計(jì)對(duì)于交互式系統(tǒng)來(lái)說(shuō),人機(jī)界面設(shè)計(jì)和數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)及過(guò)程設(shè)計(jì)一樣重要。直接影響用戶對(duì)軟件產(chǎn)品的評(píng)價(jià),從而影響軟件產(chǎn)品的競(jìng)爭(zhēng)力和壽命。人機(jī)界面目前所占的工作量越來(lái)越大。固定菜單下拉菜單在設(shè)計(jì)人機(jī)界面常會(huì)遇到下述4個(gè)問題:系統(tǒng)響應(yīng)時(shí)間用戶幫助設(shè)施出錯(cuò)信息處理
3、命令交互上述問題,最好在設(shè)計(jì)初期作為重要的設(shè)計(jì)問題來(lái)考慮,這時(shí)修改比較容易,代價(jià)也低。6.2.1 設(shè)計(jì)問題系統(tǒng)響應(yīng)時(shí)間有兩個(gè)重要屬性,分別是長(zhǎng)度和易變性。原則:避免相應(yīng)時(shí)間過(guò)長(zhǎng)或過(guò)短:響應(yīng)時(shí)間過(guò)長(zhǎng),會(huì)感到沮喪;響應(yīng)時(shí)間過(guò)短,會(huì)迫使用戶加快節(jié)奏,會(huì)犯錯(cuò)。減少易變性。一般穩(wěn)定較好,若發(fā)生變化,用戶往往比較敏感,擔(dān)心系統(tǒng)工作出現(xiàn)了異常。1. 系統(tǒng)響應(yīng)時(shí)間常見的幫助設(shè)施可分為集成的(根據(jù)當(dāng)前的應(yīng)用進(jìn)行的幫助)和附加的(需查詢使用)兩類。集成的幫助優(yōu)于附加的幫助設(shè)施。具體設(shè)計(jì)幫助設(shè)施時(shí),必須解決下述的 問題。(1) 幫助的程度:全部還是部分;(2) 如何實(shí)現(xiàn)幫助:菜單、功能鍵和HELP命令;(3) 怎樣
4、顯示幫助信息:獨(dú)立窗口、指出參考某個(gè)文檔(不理想)、顯示簡(jiǎn)短;(4) 使用幫助后,如何返回原交互方式中:返回按鈕、功能鍵;(5) 如何組織幫助信息:平面結(jié)構(gòu)、信息的層次結(jié)構(gòu)和超文本結(jié)構(gòu)。2. 用戶幫助設(shè)施交互式系統(tǒng)的出錯(cuò)信息或警告信息,應(yīng)該具有下述屬性:(1) 信息應(yīng)該使用用戶可以理解的術(shù)語(yǔ)描述問題;(2) 信息應(yīng)該提供有助于從錯(cuò)誤中恢復(fù)的建設(shè)性意見;(3) 信息應(yīng)該指出錯(cuò)誤可能導(dǎo)致哪些負(fù)面后果(例如,破壞數(shù)據(jù)文件);(4) 信息應(yīng)該伴隨著聽覺上或視覺上的提示,強(qiáng)化出現(xiàn)異常;(5) 信息不能帶有指責(zé)用戶的內(nèi)容。當(dāng)確實(shí)出現(xiàn)了問題的時(shí)候,有效的出錯(cuò)信息能提高交互式系統(tǒng)的質(zhì)量,減輕用戶的挫折感。3.
5、 出錯(cuò)信息處理在多數(shù)情況下,用戶既可以從菜單中選擇軟件功能,也可以通過(guò)鍵盤命令序列調(diào)用軟件功能。在提供命令交互方式時(shí),必須考慮下列設(shè)計(jì)問題:(1) 是否每個(gè)菜單選項(xiàng)都有對(duì)應(yīng)的命令;(2) 采用何種命令形式:控制序列(如Ctrl+P)、功能鍵、鍵入命令。(3) 命令的難度有多大,忘記了命令怎么辦;(4) 用戶是否可以定制或縮寫命令。4. 命令交互6.3 過(guò)程設(shè)計(jì)的工具描述程序處理過(guò)程的工具稱為過(guò)程設(shè)計(jì)的工具。一般有圖形、表格和語(yǔ)言3種。6.3.1 程序流程圖程序流程圖的主要缺點(diǎn)如下:(1) 程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過(guò)早地考慮程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。(2
6、) 程序流程圖中用箭頭代表控制流,因此程序員不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計(jì)的精神,隨意轉(zhuǎn)移控制。(3) 程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。6.3.1 程序流程圖abX1X2X7X6X4X3X5higfedcjFTFFFTTT多分支選擇結(jié)構(gòu)先判定型循環(huán)結(jié)構(gòu)選擇結(jié)構(gòu)后判定型循環(huán)結(jié)構(gòu)6.3.2 盒圖(N-S圖)順序結(jié)構(gòu)塊1塊2塊3塊4條件T FELSETHEN選擇結(jié)構(gòu)Case I=1,2,3T塊1塊2多分支選擇結(jié)構(gòu)F塊3塊當(dāng)條件成立時(shí)當(dāng)型循環(huán)塊直到條件成立時(shí)直到型循環(huán)6.3.2 盒圖(N-S圖)N-S圖。它有下述特點(diǎn):(1) 功能域(即,一個(gè)特定控制結(jié)構(gòu)的作用域)明確,可以從盒圖上一眼就看出來(lái)。(
7、2) 不可能任意轉(zhuǎn)移控制。(3) 很容易確定局部和全程數(shù)據(jù)的作用域。(4) 很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。ab條 件 1TF Case Xi, i=2,3,4X2X3X4當(dāng)條件3成立條 件 2直到條件4成立直 到 條 件 成立cdefghij順序結(jié)構(gòu)選擇結(jié)構(gòu)多分支選擇結(jié)構(gòu)先判定型循環(huán)結(jié)構(gòu)后判定型循環(huán)結(jié)構(gòu)FTTFN-S圖舉例NS圖舉例6.3.3 PAD圖任務(wù)1任務(wù)2任務(wù)3 順序結(jié)構(gòu)WHILE型條件循環(huán)體先判定型循環(huán)結(jié)構(gòu)條件then部分else部分選擇結(jié)構(gòu)TFUNTIL型條件循環(huán)體后判定型循環(huán)結(jié)構(gòu)控制變量 任務(wù)1任務(wù)2任務(wù)n多分支選擇結(jié)構(gòu)值 1值 2值 nPAD圖基本結(jié)構(gòu)6.3.3
8、 PAD圖PAD(problem analysis diagram,問題分析圖) 自1973年由日本日立公司發(fā)明以后,已得到一定程度的推廣,該圖翻譯成程序代碼比較容易。PAD圖的主要優(yōu)點(diǎn)如下:(1) 使用表示結(jié)構(gòu)化控制結(jié)構(gòu)的PAD符號(hào)所設(shè)計(jì)出來(lái)的程序必然是結(jié)構(gòu)化程序。6.3.3 PAD圖(2) 便于描繪程序結(jié)構(gòu),圖中最左面的豎線是程序的主線,即第一層結(jié)構(gòu)。隨著程序?qū)哟蔚脑黾?,PAD圖逐漸向右延伸,每增加一個(gè)層次,圖形向右擴(kuò)展一條豎線。PAD圖中豎線的總條數(shù)就是程序的層次數(shù)。6.3.3 PAD圖(3) 程序從圖中最左豎線上端的結(jié)點(diǎn)開始執(zhí)行,自上而下,從左向右順序執(zhí)行,遍歷所有結(jié)點(diǎn),易讀、易懂、易
9、記。(4) 容易將PAD圖轉(zhuǎn)換成高級(jí)語(yǔ)言源程序,這種轉(zhuǎn)換可用軟件工具自動(dòng)完成,從而可省去人工編碼的工作,有利于提高軟件可靠性和軟件生產(chǎn)率。(5) 即可用于表示程序邏輯,也可用于描繪數(shù)據(jù)結(jié)構(gòu)。6.3.3 PAD圖(6) PAD圖的符號(hào)支持自頂向下、逐步求精方法的使用。開始時(shí)設(shè)計(jì)者可以定義一個(gè)抽象的程序,隨著設(shè)計(jì)工作的深入而使用def符號(hào)逐步增加細(xì)節(jié),直至完成詳細(xì)設(shè)計(jì),如圖所示。BEGIN FIRST:=K1; SECOND:=0;FIRST=KISECOND=0I:=2 to NKI SECONDKIFIRSTSECOND =FIRSTFIRST=KISECOND =KI ELSE SECOND
10、:=KI END END END. PASCAL源程序段對(duì)應(yīng)PAD圖FOR I:=2 TO N DO BEGIN IF KISECOND THENBEGIN IF KIFIRSTTHEN BEGIN SECOND:=FIRST; FIRST:=KI ENDPAD圖應(yīng)用舉例例2PAD圖應(yīng)用舉例6.3.4 判定表對(duì)于多重嵌套的條件選擇,用程序流程圖、盒圖、PAD圖或后面即將介紹的過(guò)程設(shè)計(jì)語(yǔ)言(PDL)都不易清楚地描述。例如:假設(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ì)外
11、國(guó)乘客超重部分每公斤收費(fèi)比國(guó)內(nèi)乘客多一倍,對(duì)殘疾乘客超重部分每公斤收費(fèi)比正常乘客少一半。利用判定表則可清晰地描述。6.3. 判定表6.3.5 判定樹判定表含義不是一眼就能看出來(lái)的。PDL(Program Design Language)程序設(shè)計(jì)語(yǔ)言,這是一種結(jié)構(gòu)化的語(yǔ)言。是非形式化比較靈活的語(yǔ)言,用于描述模塊內(nèi)部過(guò)程的具體算法,以便在開發(fā)人員之間比較精確的進(jìn)行交流。PDL的語(yǔ)法是開放式的,其外層語(yǔ)法是確定的,而內(nèi)層語(yǔ)法則不確定。外層語(yǔ)法描述控制結(jié)構(gòu)它用類似于一般程序設(shè)計(jì)語(yǔ)言控制結(jié)構(gòu)的關(guān)鍵字:IF-THEN-ELSE WHILE- DO REPEAT- UNTIL DO CASE DO WHIL
12、E 等表示。有時(shí)還用關(guān)鍵字反排,表示控制結(jié)構(gòu)結(jié)束: DO - OD IF - FI6.3.6 過(guò)程設(shè)計(jì)語(yǔ)言 PDL例如: if X is not negative then return(square root of X as a real number); else return(square root of -X as an imaginary number); 外層語(yǔ)法IF-THEN-ELSE是確定的,內(nèi)層操作“square root of X ”是不確定的。6.4 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法是按輸入和輸出以及內(nèi)部存儲(chǔ)信息的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì),然后再把數(shù)據(jù)結(jié)構(gòu)的描述變換為
13、對(duì)軟件結(jié)構(gòu)的描述。Jackson方法和Warnier方法是最著名的兩個(gè)面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,本節(jié)結(jié)合一個(gè)簡(jiǎn)單例子扼要地介紹Jackson方法,目的是使讀者對(duì)面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法有初步了解。29主要適用范 圍面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)最終目標(biāo)工作基礎(chǔ)面向數(shù)據(jù)流的設(shè)計(jì)設(shè)計(jì)方法 在詳細(xì)設(shè)計(jì)階段確定部分或全部模塊的邏輯過(guò)程。 在概要設(shè)計(jì)階段用SD方法確定軟件的結(jié)構(gòu)。 以數(shù)據(jù)結(jié)構(gòu) 為基礎(chǔ)。從問題的數(shù)據(jù)結(jié)構(gòu)出發(fā)導(dǎo)出它的程序結(jié)構(gòu) 。 以數(shù)據(jù)流圖為基礎(chǔ)。在分析階段用DFD表示軟件的邏輯模型,在設(shè)計(jì)階段按數(shù)據(jù)流類型,將數(shù)據(jù)流圖轉(zhuǎn)換為軟件結(jié)構(gòu)。兩種方法的共同點(diǎn): 1.遵循“由頂向下、逐步細(xì)化”的原則; 2.服從“程序
14、結(jié)構(gòu)必須適應(yīng)問題結(jié)構(gòu)”的原則。程序的過(guò)程性描述。軟件的最終SC圖面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)與面向數(shù)據(jù)流的設(shè)計(jì)的異同Jackson圖是作為Jackson方法配套使用的表達(dá)工具,可以作為需求分析和程序設(shè)計(jì)階段的表達(dá)工具。Jackson圖的優(yōu)點(diǎn):便于表示層次結(jié)構(gòu),是對(duì)結(jié)構(gòu)進(jìn)行自頂向下分解的有力工具;形象直觀,可讀性好;既能表達(dá)程序的結(jié)構(gòu),也可表達(dá)問題的數(shù)據(jù)結(jié)構(gòu)。6.4.1 Jackson圖31重復(fù)結(jié)構(gòu)選擇結(jié)構(gòu)ABCAB0C0AB*ABCAB0C0sAB*I A由B、C兩部分順序組成 A可以包含B或C(S代表選擇) A由B重復(fù)任意次(含零次)構(gòu)成( I 代表重復(fù)) 注:改進(jìn)的Jackson圖規(guī)定順序執(zhí)行的處理
15、中不許混有選擇執(zhí)行和重復(fù)執(zhí)行。順序結(jié)構(gòu)Jackson圖表達(dá)符號(hào)Jackson圖是層次圖的一種精化,兩者的圖形類似,但有著許多區(qū)別,表現(xiàn)在:層次圖主要描繪軟件結(jié)構(gòu),而Jackson圖除描繪軟件結(jié)構(gòu)外,也能描繪數(shù)據(jù)結(jié)構(gòu);層次圖中的一個(gè)方框代表一個(gè)模塊,而Jackson圖即使在描繪程序結(jié)構(gòu)時(shí),一個(gè)方框也不表示一個(gè)模塊,而只代表幾個(gè)語(yǔ)句;層次圖表現(xiàn)的是調(diào)用關(guān)系,通常一個(gè)模塊除了調(diào)用下級(jí)模塊外還完成其它操作;而Jackson圖表現(xiàn)的是組織關(guān)系,一個(gè)方框中包括的操作僅僅由它下層框中的哪些操作組成。Jackson圖與層次圖的區(qū)別Jackson圖中三種結(jié)構(gòu)對(duì)應(yīng)的偽代碼如下(凡帶下劃線的字均為關(guān)鍵字)Jacks
16、on偽代碼重復(fù)結(jié)構(gòu)偽代碼選擇結(jié)構(gòu)偽代碼 A seq B C end A A select cond1 B or cond2 C end AABCAB0C0SAB*I untilA iter cond while Bend A順序結(jié)構(gòu)偽代碼姓名類別津貼表頭表體教職工名冊(cè)6.4.1 Jackson圖名冊(cè)欄名行表名行表頭表體行*姓名類別津貼工齡津貼0教齡津貼0IS教職工名冊(cè)的數(shù)據(jù)結(jié)構(gòu)6.4.1 Jackson圖產(chǎn)生名冊(cè)文件產(chǎn)生欄名行產(chǎn)生表名行產(chǎn)生表頭產(chǎn)生表體產(chǎn)生行*產(chǎn)生姓名產(chǎn)生類別產(chǎn)生津貼產(chǎn)生工齡津貼0產(chǎn)生教齡津貼0SI教職工名冊(cè)的程序結(jié)構(gòu)6.4.1 Jackson圖程序分析詳細(xì)設(shè)計(jì)結(jié)構(gòu)設(shè)計(jì)程序設(shè)計(jì)
17、Jackson方法映射數(shù)據(jù)結(jié)構(gòu)(Jackson圖)程序結(jié)構(gòu)(Jackson圖)程序的過(guò)程描述(Jackson偽代碼)SD方法映射問題結(jié)構(gòu)(DFD)軟件結(jié)構(gòu)(SC圖)模塊的過(guò)程表示(PDL等工具)兩種方法的比較6.4.2 Jackson方法Jackson方法的步驟 分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),用Jackson圖描繪這些數(shù)據(jù)結(jié)構(gòu)。實(shí)質(zhì)是對(duì)求解的問題進(jìn)行需求分析。 用Jackson圖表示數(shù)據(jù)結(jié)構(gòu)時(shí),省略與解題無(wú)關(guān)的多余信息,僅保留需要用到的數(shù)據(jù)單元。找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元(即有因果關(guān)系,在程序中可以同時(shí)處理的數(shù)據(jù)單元),按照下列映射規(guī)則, 導(dǎo)出描繪程序結(jié)構(gòu)的
18、Jackson圖。6.4.2 Jackson方法(1)為每一對(duì)在輸入結(jié)構(gòu)和輸出結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的單元畫一個(gè)處理框; (2)為輸入數(shù)據(jù)結(jié)構(gòu)中每一剩余的數(shù)據(jù)單元畫一個(gè)處理框;(3)為輸出數(shù)據(jù)結(jié)構(gòu)中每一剩余的數(shù)據(jù)單元畫一個(gè)處理框;(4)所有處理框在程序結(jié)構(gòu)上的位置, 應(yīng)與由它處理的數(shù)據(jù)單元在數(shù)據(jù)結(jié)構(gòu)Jackson圖上的位置相對(duì)應(yīng)(程序中具有因果關(guān)系)。6.4.2 Jackson方法寫出程序的過(guò)程性表示:列出所有操作和條件,并把它們分配 到程序結(jié)構(gòu)圖的適當(dāng)位置。用Jackson偽代碼寫出與程序結(jié)構(gòu)圖對(duì)應(yīng)的過(guò)程性表示。6.4.2 Jackson方法例:有兩個(gè)輸入文件:考生基本情況文件(簡(jiǎn)稱考生情況文件)
19、和考生 高考成績(jī)文件(簡(jiǎn)稱考分文件)如下: 考生情況文件 考分文件通訊地址姓 名準(zhǔn)考證號(hào)考 分準(zhǔn)考證號(hào) 產(chǎn)生輸出文件: 考生新文件 通訊地址考 分姓 名準(zhǔn)考證號(hào) 試用Jackson方法完成下列工作 (1)用Jackson圖表示輸入與輸出結(jié)構(gòu),找出它們之間的對(duì)應(yīng)單元; (2)畫出用Jackson圖表示的程序結(jié)構(gòu); (3)列出程序所需要的操作,并加到上一步畫出的程序結(jié)構(gòu)圖上; (4)用Jackson偽代碼寫出與程序結(jié)構(gòu)圖對(duì)應(yīng)的過(guò)程性表示。 (1)輸入結(jié)構(gòu)考生情況文件通訊地址姓 名準(zhǔn)考證號(hào)考生情況文件考分文件考 分準(zhǔn)考證號(hào)輸出結(jié)構(gòu)通訊地址姓 名準(zhǔn)考證號(hào)考 分考生記錄I考生記錄I考生記錄I43 輸入結(jié)
20、構(gòu)與輸出結(jié)構(gòu)中對(duì)應(yīng)的數(shù)據(jù)單元產(chǎn)生新文件(2)程序結(jié)構(gòu)圖產(chǎn)生通訊地址產(chǎn)生姓名產(chǎn)生準(zhǔn)考證號(hào)產(chǎn)生考分考生情況文件考生記錄通訊地址姓名準(zhǔn)考證號(hào)I處理考生記錄I考生新文件考分通訊地址姓名準(zhǔn)考證號(hào)考生記錄I考分文件考生記錄I考分準(zhǔn)考證號(hào) (3)列出程序所需用的操作,并加到上一步畫出的程序結(jié)構(gòu)圖上I(1)將新記錄寫入輸出文件;建立輸出文件;I(1)文件結(jié)束生成一條新記錄;打開兩個(gè)輸入文件;關(guān)閉全部文件;從輸入文件中各讀一條記錄停止;分析考生記錄產(chǎn)生新文件處理考生記錄產(chǎn)生通訊地址產(chǎn)生姓名產(chǎn)生準(zhǔn)考證號(hào)產(chǎn)生考分14657432 產(chǎn)生新文件 seq 打開兩個(gè)輸入文件 建立輸出文件 從輸入文件中各讀一條記錄 分析考生
21、記錄iter until文件結(jié)束 處理考生記錄 seq 產(chǎn)生準(zhǔn)靠證號(hào) 產(chǎn)生姓名 產(chǎn)生通訊地址 產(chǎn)生考分 生成一條新記錄 將新記錄寫入輸出文件 從輸入文件中各讀一條記錄 處理考生記錄 end 關(guān)閉全部文件 停止 產(chǎn)生新文件 end(4)用Jackson偽代碼寫出上述程序的過(guò)程表示。6.5 程序復(fù)雜程度的定量度量定性度量軟件質(zhì)量軟件設(shè)計(jì)基本原理;定量度量軟件質(zhì)量程序復(fù)雜度是一種方法。定量度量程序復(fù)雜程度的方法的意義:程序的復(fù)雜程度乘以適當(dāng)常數(shù):估算軟件中錯(cuò)誤的數(shù)量、軟件開發(fā)需要用的工作量;可用來(lái)比較不同的設(shè)計(jì)或不同算法的優(yōu)劣;定量的復(fù)雜程度可以作為模塊規(guī)模的精確限度。下面著重介紹使用得比較廣泛的M
22、cCabe方法和Halstead方法。1. 流圖McCabe方法根據(jù)程序控制流的復(fù)雜程度定量度量程序的復(fù)雜程度程序的環(huán)形復(fù)雜度。流圖程序圖,實(shí)質(zhì)是“退化了的”程序流程圖,僅描繪程序的控制流程。在流圖中用圓表示結(jié)點(diǎn),一個(gè)圓代表一條或多條語(yǔ)句。程序流程圖中的一個(gè)順序的處理框序列和一個(gè)菱形判定框,可以映射成流圖中的一個(gè)結(jié)點(diǎn)。6.5.1 McCabe方法1. 流圖流圖中的箭頭線稱為邊,代表控制流,終止于一個(gè)結(jié)點(diǎn)。由邊和結(jié)點(diǎn)圍成的面積稱為區(qū)域,當(dāng)計(jì)算區(qū)域數(shù)時(shí)應(yīng)該包括圖外部未被圍起來(lái)的那個(gè)區(qū)域。圖6.15所示。6.5.1 McCabe方法6.5.1 McCabe方法圖6.15程序流程圖映射成流圖用任何方法
23、表示的過(guò)程設(shè)計(jì)結(jié)果,都可以翻譯成流圖。圖6.16是用PDL表示的處理過(guò)程及與之對(duì)應(yīng)的流圖。6.5.1 McCabe方法圖6.16 由PDL翻譯成的流圖當(dāng)過(guò)程設(shè)計(jì)中包含復(fù)合條件時(shí),生成流圖的方法稍微復(fù)雜一些。所謂復(fù)合條件,就是在條件中包含了一個(gè)或多個(gè)布爾運(yùn)算符(邏輯OR,AND,NAND,NOR)。在這種情況下,應(yīng)該把復(fù)合條件分解為若干個(gè)簡(jiǎn)單條件,每個(gè)簡(jiǎn)單條件對(duì)應(yīng)流圖中一個(gè)結(jié)點(diǎn)。包含條件的結(jié)點(diǎn)稱為判定節(jié)點(diǎn),從每個(gè)判定結(jié)點(diǎn)引出兩條或多條邊。圖6.17是由包含復(fù)合條件的PDL片斷翻譯成的流圖。6.5.1 McCabe方法圖6.17 由包含復(fù)合條件的PDL映射成的流圖2. 計(jì)算環(huán)形復(fù)雜度的方法環(huán)形復(fù)雜
24、度定量度量程序的邏輯復(fù)雜度。利用流圖,可以用下述3種方法中的任何一種來(lái)計(jì)算環(huán)形復(fù)雜度。(1) 流圖中的區(qū)域數(shù)等于環(huán)形復(fù)雜度。(2) 流圖G的環(huán)形復(fù)雜度V(G)=E-N+2,其中,E是流圖中邊的條數(shù),N是結(jié)點(diǎn)數(shù)。(3) 流圖G的環(huán)形復(fù)雜度V(G)=P+1,其中,P是流圖中判定結(jié)點(diǎn)的數(shù)目。6.5.1 McCabe方法(1) 流圖中的區(qū)域數(shù)等于環(huán)形復(fù)雜度;V(G)=4(2) 流圖G的環(huán)形復(fù)雜度V(G)=E-N+2,其中,E是流圖中邊的條數(shù),N是結(jié)點(diǎn)數(shù);E=11,N=9,V(G)=4(3) 流圖G的環(huán)形復(fù)雜度V(G)=P+1,其中,P是流圖中判定結(jié)點(diǎn)的數(shù)目;P=3,V(G)=4。3. 環(huán)形復(fù)雜度的用途程序的環(huán)形復(fù)雜度取決于程序控制流的復(fù)雜程度,也即是取決于程序結(jié)構(gòu)的復(fù)雜程度。當(dāng)程序內(nèi)分支數(shù)或循環(huán)個(gè)數(shù)增加時(shí),環(huán)形復(fù)雜度也隨之增加,因此它是對(duì)測(cè)試難度的一種定量度量,也能對(duì)軟件最終的可靠性給出某種預(yù)測(cè)。McCabe研究大量程序后發(fā)現(xiàn),環(huán)形復(fù)雜度高的程序往往是最困難、最容
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度汽車租賃與智能交通系統(tǒng)對(duì)接合同3篇
- 2025-2030全球全自動(dòng)農(nóng)業(yè)機(jī)器人行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2024年全國(guó)數(shù)控技能大賽理論考試題庫(kù)-上(單選題) (二)
- 2025年度鋼管架施工設(shè)備租賃合同樣本
- 2025年度個(gè)人反擔(dān)保合同糾紛解決協(xié)議
- 2025年度數(shù)字電視信號(hào)接收器采購(gòu)合同4篇
- 2025版施工合同擔(dān)保人資質(zhì)審核及責(zé)任規(guī)范3篇
- 教育者與科技聯(lián)手強(qiáng)化校園安全措施
- 2025年度商鋪物業(yè)管理與商業(yè)策略規(guī)劃合同4篇
- 二零二五年度茶館社區(qū)服務(wù)合作協(xié)議4篇
- 定額〔2025〕1號(hào)文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價(jià)格水平調(diào)整的通知
- 2024年城市軌道交通設(shè)備維保及安全檢查合同3篇
- 電力溝施工組織設(shè)計(jì)-電纜溝
- 單位往個(gè)人轉(zhuǎn)賬的合同(2篇)
- 科研倫理審查與違規(guī)處理考核試卷
- GB/T 44101-2024中國(guó)式摔跤課程學(xué)生運(yùn)動(dòng)能力測(cè)評(píng)規(guī)范
- 鍋爐本體安裝單位工程驗(yàn)收表格
- 一種基于STM32的智能門鎖系統(tǒng)的設(shè)計(jì)-畢業(yè)論文
- 高危妊娠的評(píng)估和護(hù)理
- 妊娠合并強(qiáng)直性脊柱炎的護(hù)理查房
- 2024年山東鐵投集團(tuán)招聘筆試參考題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論