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