(软件工程复习核心重点)第五章详细设计-第五节:程序复杂度的定量度量
文章目錄
- 一:價(jià)值(了解)
- 二:McCabe方法
- (1)流圖
- A:定義
- B:把程序流程圖映射為流圖
- C:PDL翻譯為流圖
- (2)環(huán)形復(fù)雜度
- A:定義
- B:計(jì)算方法
- 三:Halstead方法(了解)
- (1)定義
- (2)方法
一:價(jià)值(了解)
- 把程序的復(fù)雜程度乘以適當(dāng)數(shù)可估算出軟件中錯(cuò)誤的數(shù)量以及開(kāi)發(fā)需要的工作量
- 定量度量的結(jié)果可以用來(lái)比較兩個(gè)不同的設(shè)計(jì)或兩個(gè)不同算法的優(yōu)劣
- 程序的定量的復(fù)雜程度可以作為模塊規(guī)模的精確限度
二:McCabe方法
(1)流圖
A:定義
流圖實(shí)質(zhì)上是“退化了的”程序流程圖,它僅僅描繪程序的控制流程,完全不表現(xiàn)對(duì)數(shù)據(jù)具體操作以及分支或循環(huán)的具體條件,流圖通常被用來(lái)突出表示程序的控制流
B:把程序流程圖映射為流圖
①:對(duì)于順序結(jié)構(gòu),一個(gè)順序處理和下一個(gè)選擇可以映射為一個(gè)結(jié)點(diǎn)
②:對(duì)于選擇語(yǔ)句,開(kāi)始/結(jié)束語(yǔ)句映射為一個(gè)結(jié)點(diǎn),兩條分支至少各映射成一個(gè)結(jié)點(diǎn)
③:開(kāi)始語(yǔ)句和結(jié)束語(yǔ)句各映射成一個(gè)結(jié)點(diǎn)
- 流圖中用圓表示結(jié)點(diǎn),一個(gè)圓代表一條或多條語(yǔ)句(比如4、5)。程序流程圖中的一個(gè)順序的處理框序列和一個(gè)菱形判定框,可以映射成流圖中的一個(gè)結(jié)點(diǎn)(比如2,3)
- 流圖中的箭頭線稱為邊,代表控制流。流圖中一條邊必須終止于一個(gè)結(jié)點(diǎn)(比如9必須為一個(gè)結(jié)點(diǎn)),即使這個(gè)結(jié)點(diǎn)并不代表任何語(yǔ)句
- 由邊和結(jié)點(diǎn)圍成的面積稱為區(qū)域,計(jì)算區(qū)域數(shù)時(shí)應(yīng)包括圖外部未被圍起來(lái)的區(qū)域
C:PDL翻譯為流圖
(2)環(huán)形復(fù)雜度
A:定義
McCabe方法根據(jù)程序控制流的復(fù)雜程度定量度量程序的復(fù)雜程度,這樣度量出的結(jié)果稱為程序的環(huán)形復(fù)雜度
B:計(jì)算方法
環(huán)形復(fù)雜度定量度量程序的邏輯復(fù)雜度,可以用下述3種方法中的任何一種來(lái)計(jì)算環(huán)形復(fù)雜度:
-
流圖中的區(qū)域數(shù)等于環(huán)形復(fù)雜度
-
流圖G的環(huán)形復(fù)雜度V(G)=E-N+2,E是流圖中邊的條數(shù),N是結(jié)點(diǎn)數(shù)
-
流圖G的環(huán)形復(fù)雜度V(G)=P+1,其中,P是流圖中判定結(jié)點(diǎn)的數(shù)目。V(G)小于等于10比較科學(xué)
三:Halstead方法(了解)
(1)定義
Halstead方法是根據(jù)程序中運(yùn)算符和操作數(shù)的總數(shù)來(lái)度量程序的復(fù)雜程度
(2)方法
1.程序長(zhǎng)度NNN定義,其中N1N_{1}N1?是程序中運(yùn)算符出現(xiàn)總次數(shù),N2N_{2}N2?是程序中操作數(shù)出現(xiàn)總次數(shù)
N=N1+N2N=N_{1}+N_{2}N=N1?+N2?
2.預(yù)測(cè)程序長(zhǎng)度的公式,使用的不同運(yùn)算符的個(gè)數(shù)為n1n_{1}n1?,不同操作數(shù)的個(gè)數(shù)為n2n_{2}n2?
H=n1log2n1+n2log2n2H=n_{1}log_{2}n_{1}+n_{2}log_{2}n_{2}H=n1?log2?n1?+n2?log2?n2?
3.預(yù)測(cè)程序中包含錯(cuò)誤的個(gè)數(shù)的公式
E=N?log2(n1+n2)/3000E=N*log_{2}(n_{1}+n_{2})/3000E=N?log2?(n1?+n2?)/3000
總結(jié)
以上是生活随笔為你收集整理的(软件工程复习核心重点)第五章详细设计-第五节:程序复杂度的定量度量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 横向经济联合的理论认识
- 下一篇: 修改VS2010生成的dll文件中的内容