《詳細(xì)設(shè)計(jì)》PPT課件

上傳人:san****019 文檔編號(hào):21420663 上傳時(shí)間:2021-04-30 格式:PPT 頁(yè)數(shù):50 大小:751.60KB
收藏 版權(quán)申訴 舉報(bào) 下載
《詳細(xì)設(shè)計(jì)》PPT課件_第1頁(yè)
第1頁(yè) / 共50頁(yè)
《詳細(xì)設(shè)計(jì)》PPT課件_第2頁(yè)
第2頁(yè) / 共50頁(yè)
《詳細(xì)設(shè)計(jì)》PPT課件_第3頁(yè)
第3頁(yè) / 共50頁(yè)

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《《詳細(xì)設(shè)計(jì)》PPT課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《《詳細(xì)設(shè)計(jì)》PPT課件(50頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 詳細(xì)設(shè)計(jì)階段的根本目標(biāo)是確定應(yīng)該怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng)。 詳細(xì)設(shè)計(jì)的結(jié)果基本上決定了最終的程序代碼的質(zhì)量。 5.1 結(jié)構(gòu)程序設(shè)計(jì) 早在1965年,E.W.Dijkstra就提出結(jié)構(gòu)程序設(shè)計(jì)的概念。 1966年,Bohm和Jacopini證明了只用三種基本的控制結(jié)構(gòu)就能實(shí)現(xiàn)任何單人口單出口的程序。 這三種基本的控制結(jié)構(gòu)是“順序”、“選擇”和“循環(huán)”。 上圖中的(a)、(b)和(c)就分別是順序、選擇和循環(huán)的流程圖。 什么是結(jié)構(gòu)程序設(shè)計(jì)呢? 結(jié)構(gòu)程序設(shè)計(jì)是一個(gè)設(shè)計(jì)程序的技術(shù),它采用自頂向下逐步求精的設(shè)計(jì)方法和單入口單出口的控制結(jié)構(gòu)。 有人認(rèn)為結(jié)構(gòu)程序設(shè)計(jì)的定義中還應(yīng)包括采用“主程序員組”這種

2、人員組織形式。 使用結(jié)構(gòu)程序設(shè)計(jì)也存在一些好處和一些缺點(diǎn)。 從理論上說(shuō)只用那三種基本控制結(jié)構(gòu)就可以實(shí)現(xiàn)任何單入口單出口的程序。 但是為了實(shí)際使用方便,還常常允許使用DO-UNTIL和DO-CASE兩種控制結(jié)構(gòu)。它們的流程圖如上圖所示。 5.2 詳細(xì)設(shè)計(jì)的工具 描述程序處理過(guò)程的工具稱為詳細(xì)設(shè)計(jì)的工具,它們可以分為圖形、表格和語(yǔ)言三類。 不論是哪類工具,對(duì)它們的基本要求都是能提供對(duì)設(shè)計(jì)的無(wú)歧義的描述,也就是應(yīng)該能指明控制流程、處理功能、數(shù)據(jù)組織以及其他方面的實(shí)現(xiàn)細(xì)節(jié),從而在編碼階段能把對(duì)設(shè)計(jì)的描述直接翻譯成程序代碼。 5.2.1 程序流程圖 程序流程圖又稱為程序框圖,它是歷史最悠久使用最廣泛的描

3、述軟件設(shè)計(jì)的方法。它使用了一些系統(tǒng)流程圖中沒(méi)有的符號(hào)。如下圖所示: 程序流程圖一直是軟件設(shè)計(jì)的主要工具。 它的主要優(yōu)點(diǎn)是:對(duì)控制流程的描繪很直觀,便于初學(xué)者掌握。 它的主要缺點(diǎn)是: 1. 程序流程圖本質(zhì)上不是逐步求精的好工具。它誘使程序員過(guò)早的考慮程序的控制流,而不去考慮程序的全局結(jié)構(gòu)。 2. 程序流程圖中用箭頭代表控制流,因此程序員可以不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計(jì)的精神,隨意轉(zhuǎn)移控制。 3. 程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。 5.2.2 盒圖(N_S圖) 這種盒圖是不允許違背結(jié)構(gòu)程序設(shè)計(jì)精神的圖形工具。它有下述特點(diǎn): 1. 功能域明確,可以從盒圖上看出來(lái)。 2. 不可能任意轉(zhuǎn)移控制。

4、3. 很容易確定局部和全程數(shù)據(jù)的作用域。 4. 很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。 上圖給出了結(jié)構(gòu)化控制結(jié)構(gòu)和調(diào)用子程序的盒圖表示方法。 5.2.3 PAD圖 PAD是問(wèn)題分析圖(Problem Analysis Diagram)的英文縮寫。它用二維樹形結(jié)構(gòu)的圖來(lái)表示程序的控制流。下圖給出了PAD圖的基本符號(hào):其中: (a)順序(先執(zhí)行P1后執(zhí)行P 2) (b)選擇(IF C THEN P1 ELSE P2) (c)CASE型對(duì)分支 (d)WHILE型循環(huán)(WHILE C DO P) (e)UNTIL型循環(huán)(REPEAT P UNTIL C) (f)語(yǔ)句標(biāo)號(hào) (g)定義 PAD圖的

5、主要優(yōu)點(diǎn)如下: (1)使用表示結(jié)構(gòu)化控制結(jié)構(gòu)的PAD符號(hào)所設(shè)計(jì)出來(lái)的程序必然是結(jié)構(gòu)化程序。 (2)PAD圖所描繪的程序結(jié)構(gòu)十分清晰。上圖最左邊的豎線是程序的主線,PAD圖中豎線的總條數(shù)就是程序的層次數(shù)。 (3)用PAD圖表現(xiàn)程序邏輯,易讀,易懂,易記。 (4)容易將PAD圖轉(zhuǎn)換成高級(jí)語(yǔ)言源程序。 (5)即可用于表示程序邏輯,也可用于描繪數(shù)據(jù)結(jié)構(gòu)。 (6)PAD圖的符號(hào)支持自頂向下、逐步求精方法的使 用。 使用PAD圖,開(kāi)始時(shí)設(shè)計(jì)者可以定義一個(gè)抽象的程序,隨著設(shè)計(jì)工作的深入而使用def符號(hào)逐步增加細(xì)節(jié),直到完成詳細(xì)設(shè)計(jì),如下圖所示: 5.2.4 判定表 判定表能夠清晰地表示復(fù)雜的條件組合與應(yīng)做的

6、動(dòng)作之間的對(duì)應(yīng)關(guān)系。一張判定表由四部分組成: 左上部列出所有條件。 左下部是所有可能做的動(dòng)作。 右上部是表示各種條件組合的一個(gè)矩陣。 右下部是和每種條件組合相對(duì)應(yīng)的動(dòng)作。 判定表右半部的每一列實(shí)質(zhì)上是一條規(guī)則,規(guī)定了與特定的條件組合相對(duì)應(yīng)的動(dòng)作。 下面以行李托運(yùn)費(fèi)的算法為例說(shuō)明判定表的組織方式。 假設(shè)某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重量不超過(guò)30公斤的行李。當(dāng)行李重量超過(guò)30公斤時(shí),對(duì)頭等艙的國(guó)內(nèi)乘客超重部分每公斤收費(fèi)4元,對(duì)其他艙的國(guó)內(nèi)乘客超重部分每公斤收費(fèi)6元,對(duì)國(guó)外乘客超重部分每公斤收費(fèi)比國(guó)內(nèi)乘客多一倍,對(duì)殘疾乘客超重部分每公斤比正常乘客少一半。 用判定表可以清楚的表示與上述每種條件組合

7、相對(duì)應(yīng)的動(dòng)作(算法),如下頁(yè)圖所示: 其中“T”表示條件成立,“F”表示條件不成立,空白表示這個(gè)條件的成立與否并不影響對(duì)動(dòng)作的選擇。 畫“”表示做它左邊的那項(xiàng)動(dòng)作,空白表示不做這項(xiàng)動(dòng)作。 5.2.5 判定樹 判定樹是判定表的變種,也能清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系,是一種比較常用的系統(tǒng)分析和設(shè)計(jì)工具。 與上表判定表對(duì)應(yīng)的判定樹如下: 5.2.6 過(guò)程設(shè)計(jì)語(yǔ)言(PDL) 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)目

8、的需要,它使用一種語(yǔ)言的詞匯,卻使用另一種語(yǔ)言的語(yǔ)法。 它具有以下特點(diǎn): 1. 關(guān)鍵字的固定語(yǔ)法,它提供了結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說(shuō)明和模塊化的特點(diǎn)。 2. 自然語(yǔ)言的自由語(yǔ)法,它描述處理特點(diǎn)。 3. 數(shù)據(jù)說(shuō)明的手段既包括簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),又包括復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。 4. 模塊定義和調(diào)用的技術(shù),應(yīng)該提供各種接口描述模式。 PDL作為一種設(shè)計(jì)工具還有如下一些優(yōu)點(diǎn): 1.可以作為注釋直接插在源程序中間。 2.可以使用普通的正文編輯程序或文字處理系統(tǒng),很方便地完成PDL的書寫和編輯工作。 3.已經(jīng)有自動(dòng)處理程序存在,而且可以自動(dòng)由PDL生成程序代碼。 5.2.7 模塊開(kāi)發(fā)文件夾 模塊開(kāi)發(fā)文件夾是組織和保存在軟

9、件開(kāi)發(fā)過(guò)程種不斷產(chǎn)生出來(lái)的文檔資料的一種有效方法,用這種方法保存和管理文檔既方便又容易查閱。 文件夾的封面上列出工程項(xiàng)目的名稱、模塊名字、程序員姓名、完成日期、修改日期、源程序行數(shù)、目標(biāo)代碼長(zhǎng)度、對(duì)模塊的簡(jiǎn)要描述、以及設(shè)計(jì)、編碼、單元測(cè)試和集成測(cè)試等階段的起止時(shí)間等等。 文件夾內(nèi)應(yīng)該保存對(duì)模塊詳細(xì)設(shè)計(jì)結(jié)果的描述、源程序清單、測(cè)試時(shí)間、修改的源程序清單、最終的源程序清單、測(cè)試方案、測(cè)試軟件和測(cè)試結(jié)果等等。 5.3 Jackson程序設(shè)計(jì)方法 Jackson程序設(shè)計(jì)方法是面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,也就是用數(shù)據(jù)結(jié)構(gòu)作為程序設(shè)計(jì)的基礎(chǔ)。 它的最終目的是得出對(duì)程序處理過(guò)程的描述,因此,這種方法最適合于在詳

10、細(xì)設(shè)計(jì)階段使用,也就是在完成了軟件結(jié)構(gòu)設(shè)計(jì)之后,可以使用面向數(shù)據(jù)結(jié)構(gòu)的方法來(lái)設(shè)計(jì)每個(gè)模塊的處理過(guò)程。 5.3.1 Jackson圖 它的邏輯數(shù)據(jù)結(jié)構(gòu)只有三種:順序、選擇和重復(fù)。 順序結(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è)。下圖所示的是三個(gè)中選一個(gè)結(jié)構(gòu)的Jackson圖: 重復(fù)結(jié)構(gòu):它的數(shù)據(jù),根據(jù)使用時(shí)的條件由一個(gè)數(shù)據(jù)元素出現(xiàn)零次或多次構(gòu)成。下圖表示重復(fù)結(jié)構(gòu)的Jackson圖: Jackson圖有下述優(yōu)點(diǎn): 便于表示層次結(jié)構(gòu),而且是對(duì)結(jié)構(gòu)進(jìn)行自頂向下分解

11、的有力工具。 形象直觀可讀性好。 既能表示數(shù)據(jù)結(jié)構(gòu)也能表示程序結(jié)構(gòu)。 5.3.2 改進(jìn)的Jackson圖 上面介紹的Jackson圖的缺點(diǎn)是,用這種圖形工具表示選擇或重復(fù)結(jié)構(gòu)時(shí),選擇條件或循環(huán)結(jié)束條件不能直接在圖上表示出來(lái),影響了圖的表達(dá)能力,也不易直接把圖翻譯成程序,此外,框間連線為斜線,不易在行式打印機(jī)上輸出。 為了解決上述問(wèn)題,建議使用改進(jìn)的Jackson圖。如下頁(yè)圖所示: 5.3.3 Jackson方法 Jackson結(jié)構(gòu)程序設(shè)計(jì)方法基本上由下述五個(gè)步驟組成: 1. 分析并確認(rèn)輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用Jackson圖描述這些數(shù)據(jù)結(jié)構(gòu)。 2. 找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有

12、對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元。 3. 從描述數(shù)據(jù)結(jié)構(gòu)的Jackson圖導(dǎo)出描繪程序結(jié)構(gòu)的Jackson圖。 4. 列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。 5. 用偽代碼表示程序。 其中第三條需要根據(jù)下列規(guī)則: 第一,為每對(duì)有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元,按照它們?cè)跀?shù)據(jù)結(jié)構(gòu)圖中的層次在程序結(jié)構(gòu)圖的相應(yīng)層次畫一個(gè)處理框。 第二,根據(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)的處理框。 Jackson方法中使用的偽碼和Jackson圖是完全對(duì)應(yīng)的,下面是

13、和三種基本結(jié)構(gòu)對(duì)應(yīng)的偽碼。 和圖5.11(a)所示的順序結(jié)構(gòu)對(duì)應(yīng)的偽碼:其中seq和end是關(guān)鍵字。 A seq B C D A end 和圖5.11(b)所示的選擇結(jié)構(gòu)對(duì)應(yīng)的偽碼,其中select、 or和end示關(guān)鍵字,cond1、cond2和cond3分別是執(zhí)行B、C和D的條件: A select cond1 B A or cond2 C A or cond3 D A end 和圖5.11(d)所示重復(fù)結(jié)構(gòu)對(duì)應(yīng)的偽碼,其中iter、 until、 while和end是關(guān)鍵字(重復(fù)結(jié)構(gòu)有until和while兩種形式),cond是條件: A iter until (或while) cond

14、 B A end 舉例: 一個(gè)正文文件由若干記錄組成,每個(gè)記錄是一個(gè)字符串。要求統(tǒng)計(jì)每個(gè)記錄中空格字符的個(gè)數(shù),以及文件中空格字符的總個(gè)數(shù)。要求的輸出數(shù)據(jù)格式是,每復(fù)制一行輸入字符串之后,另起一行印出這個(gè)字符串中的空格數(shù),最后印出文件中空格的總個(gè)數(shù)。解析: 對(duì)于這個(gè)簡(jiǎn)單的例子而言。 第一步:確定輸入和輸出數(shù)據(jù)的結(jié)構(gòu)。下圖是用Jackson圖描繪的輸入/輸出數(shù)據(jù)結(jié)構(gòu)。 第二步:在確定了輸入/輸出數(shù)據(jù)結(jié)構(gòu)之后,下一步是分析確定在輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中由有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元。 第三步:從數(shù)據(jù)結(jié)構(gòu)中導(dǎo)出程序結(jié)構(gòu)圖。如下: 第四步:列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。 首先,列

15、出統(tǒng)計(jì)空格個(gè)數(shù)需要的全部操作和條件如下:(1)停止 (2)打開(kāi)文件(3)關(guān)閉文件 (4)印出字符串(5)印出空格數(shù)目 (6)印出空格總數(shù)(7)sum : =sum+1 (8)totalsum : =totalsum+sum(9)讀入字符串 (10)sum : = 0(11)totalsum : = 0 (12)pointer : = 1(13)pointer : =pointer+1 I(1)文件結(jié)束 I(2)字符串結(jié)束 S(3)字符是空格 其中,sum是保存空格個(gè)數(shù)的變量,totalsum是保存空格總數(shù)的變量,pionter是指示當(dāng)前分析的字符的在字符串中的位置的變量。 得到如下圖形: 第五

16、步:用偽碼表示程序處理過(guò)程。從圖5.14可以得出下列代碼:統(tǒng)計(jì)空格 seq 打開(kāi)文件 讀入字符串 totalsum : = 0 程序體 iter until文件結(jié)束 處理字符串 seq 印字符串 seq 印出字符串 印出字符串 end sum := 0 pointer := 1 分析字符串 iter until 字符串結(jié)束 分析字符 select 字符是空格 處理空格 seq sum :=sum+1 pointer :=pointer+1 處理空格 end 分析字符 or 字符不是空格 處理非空格 seq pointer :=pointer+1 處理非空格 end 分析字符 end 分析字符串

17、 end 印空格數(shù) seq 印出空格數(shù)目 印空格數(shù) end totalsum :=totalsum+sum 讀入字符串 處理字符串 end 程序體 end 印總數(shù) seq 印出空格總數(shù) 印總數(shù) end 關(guān)閉文件 停止 統(tǒng)計(jì)空格 end 5.5 程序復(fù)雜程度的定量度量 定量度量程序復(fù)雜程度的方法很有價(jià)值:把程序的復(fù)雜程度乘以適當(dāng)常數(shù)即可估算出軟件中故障的數(shù)量以及軟件開(kāi)發(fā)需要用的工作量,定量度量的結(jié)果可以用來(lái)比較兩個(gè)不同的設(shè)計(jì)或兩個(gè)不同算法的優(yōu)劣;程序的定量的復(fù)雜程度可以作為模塊規(guī)模的精確限度。 這里著重介紹使用比較廣泛的McCabe方法和Halstead方法。 5.5.1 McCabe方法 使用

18、McCabe方法首先需要畫出程序圖。 所謂程序圖可以看成是“退化了的”程序流程圖,也就是把程序程序流程圖中每個(gè)處理符號(hào)都退化成一個(gè)點(diǎn),原來(lái)連接不同處理符號(hào)的箭頭變成連接不同點(diǎn)的有向弧,這樣的有向圖就稱為程序圖。 用McCabe方法度量得出的結(jié)果稱為程序的環(huán)形復(fù)雜度,它等于強(qiáng)連通的程序圖中線性無(wú)關(guān)的有向環(huán)的個(gè)數(shù)。 通常稱程序圖中開(kāi)始點(diǎn)后面的那個(gè)節(jié)點(diǎn)為入口點(diǎn),稱停止點(diǎn)前面的那個(gè)節(jié)點(diǎn)為出口點(diǎn)。 從程序流程圖導(dǎo)出程序圖如下頁(yè)所示: 1.環(huán)形復(fù)雜度的計(jì)算方法 根據(jù)圖論,在一個(gè)強(qiáng)連通的有向圖中線形無(wú)關(guān)環(huán)的個(gè)數(shù)由下面的公式給出:V(G) = m- n +p 其中V(G)是有向圖G中的環(huán)數(shù), m是有向圖G中的

19、弧數(shù); n 是有向圖G中的節(jié)點(diǎn)數(shù); p 是有向圖G中分離部分的數(shù)目。 對(duì)于一個(gè)正常的程序來(lái)說(shuō),應(yīng)該能夠從程序圖內(nèi)的入口點(diǎn)到達(dá)圖中任何一個(gè)節(jié)點(diǎn),因此,程序圖總是連通的,也就是說(shuō),p=1。 強(qiáng)連通圖是指從圖中任一個(gè)節(jié)點(diǎn)出發(fā)都可以到達(dá)所有其他節(jié)點(diǎn)。 程序圖通常不是強(qiáng)連通的,因?yàn)閺膱D中較低的(即較靠近出口點(diǎn)的)節(jié)點(diǎn)往往不能到達(dá)較高的節(jié)點(diǎn)。然而,如果從出口到入口點(diǎn)畫一條虛弧,則程序圖必然成為強(qiáng)連通的。做出這個(gè)結(jié)論有下述三點(diǎn)理由: (1) 從入口點(diǎn)總能到達(dá)圖中任何一點(diǎn); (2) 從圖中任何一點(diǎn)總能到達(dá)出口點(diǎn); (3) 經(jīng)過(guò)從出口點(diǎn)到入口點(diǎn)的弧,可以從出口點(diǎn)到達(dá)入口點(diǎn)。 圖5.24(b)不是強(qiáng)連通的,必須增

20、加一條從出口點(diǎn)j到入口點(diǎn)b的虛弧,結(jié)果如下圖所示: 2. 環(huán)形復(fù)雜度的用途 程序的環(huán)形復(fù)雜度取決于程序控制流的復(fù)雜程度,也即是取決于程序結(jié)構(gòu)的復(fù)雜程度。 當(dāng)程序內(nèi)分支或循環(huán)個(gè)數(shù)增加時(shí),環(huán)形復(fù)雜度也隨之增加,因此它是對(duì)測(cè)試難度的一種定量度量,也能對(duì)軟件最終的可靠性給出某種預(yù)測(cè)。 McCabe研究大量程序后發(fā)現(xiàn),環(huán)形復(fù)雜度高的程序往往是最困難、最容易出問(wèn)題的程序。 實(shí)驗(yàn)表明,模塊規(guī)模以V(G)10為宜,也就是說(shuō), V(G)=10是規(guī)模的一個(gè)更科學(xué)更精確的上限。 5.5.2 H alstead方法 Halstead方法是另一個(gè)著名的方法,它是根據(jù)程序運(yùn)算中運(yùn)算符和操作符的總數(shù)來(lái)度量程序的復(fù)雜程度。

21、令N1為程序中運(yùn)算符出現(xiàn)的總次數(shù),N2為操作數(shù)出現(xiàn)的總次數(shù),程序長(zhǎng)度N定義為:N= N 1 +N2 詳細(xì)設(shè)計(jì)完成之后,可以知道程序中使用的不同運(yùn)算符(包括關(guān)鍵字)的個(gè)數(shù)n1,以及不同操作數(shù)(變量和常數(shù))的個(gè)數(shù)n2。Halstead給出預(yù)測(cè)程序長(zhǎng)度的公式如下:H= n1 log2 n1+ n2 log2 n2 多次實(shí)驗(yàn)都證明,預(yù)測(cè)的長(zhǎng)度H與實(shí)際長(zhǎng)度N非常接近。 Halstead還給出了預(yù)測(cè)程序中包含錯(cuò)誤的個(gè)數(shù)的公式如下:E=N log 2 (n1+n2)/3000 5.6 小 結(jié) 詳細(xì)設(shè)計(jì)階段的關(guān)鍵任務(wù)是確定怎樣具體地實(shí)現(xiàn)所要求的目標(biāo)系統(tǒng),也就是要設(shè)計(jì)出程序的“藍(lán)圖”。除了應(yīng)該保證的可靠性之外,

22、使將來(lái)編寫出的程序可讀性好,容易理解,容易測(cè)試和容易修改、維護(hù)使詳細(xì)設(shè)計(jì)階段最重要的目標(biāo)。 理論研究和大量實(shí)踐都表明,采用自頂向下逐步求精的策略和單入口單出口的控制結(jié)構(gòu)設(shè)計(jì)程序是完全可行的,而且有一系列重大優(yōu)點(diǎn),因此,結(jié)構(gòu)程序設(shè)計(jì)技術(shù)是實(shí)現(xiàn)上述目標(biāo)的基本保證,是進(jìn)行詳細(xì)設(shè)計(jì)的邏輯基礎(chǔ)。 程序流程圖、盒圖、PAD圖、HIPO圖、判定表、判定樹和PDL語(yǔ)言等等都是完成詳細(xì)設(shè)計(jì)的工具,選擇合適的工具并且正確地使用它們是十分重要的。用模塊開(kāi)發(fā)文件夾的形式組織管理與一個(gè)模塊有關(guān)的全部文檔,可能是一個(gè)行之有效的好方法。 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法(例如Jackson方法和Warnier方法)是進(jìn)行詳細(xì)設(shè)計(jì)的形式化的方法。本章的目的僅僅是使讀者對(duì)這類方法有初步了解,為了能熟練地使用這種方法解決實(shí)際問(wèn)題,還需要進(jìn)一步鉆研有關(guān)的專著并進(jìn)行達(dá)來(lái)大量的實(shí)踐。 使用環(huán)形復(fù)雜度可以定量度量程序的復(fù)雜程度,實(shí)踐表明環(huán)形復(fù)雜度V(G)=10是模塊規(guī)模的合理上限。

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!