決策到決策路徑

決策到決策路徑decision-to-decision path)是指當用控制流程圖表示程式時,一條不包含任何決策節點的路徑,換句話說,決策到決策路徑是介於二個決策點中的路徑。

基本介紹

  • 中文名:決策到決策路徑
  • 外文名:decision-to-decision path
  • 本質:一種路徑
  • 領域:計算機
基本特點,本質複雜度,代碼覆蓋率,循環複雜度,

基本特點

決策點是類似if-else指令或for循環一様,會根據變數的數值決定後續執行程式的節點。
決策到決策路徑有以下的特性:
  • 啟始節點和結束節點不是同一個節點。
  • 除啟始節點和結束節點外,所有節點的入度及出度均為1,也就是每個節點都只是一個邊的起點和一個邊的終點。
若利用控制流程圖計算循環複雜度時,每一個決策到決策路徑均可以簡化為一個節點,不會影響循環複雜度的計算。

本質複雜度

本質複雜度(Essential complexity)是指由於一問題的本質不適合簡單的求解方式,所有可行的求解方式都很複雜的情形。本質複雜度和偶然複雜度不同,後者的複雜度和問題本質無關,和選用求解的工具或方法有關。
本質複雜度至少在1980年代中期已被使用,圖靈獎得主佛瑞德·布魯克斯當時已開始使用本質複雜度及其反義詞偶然複雜度。他也在1995年時在《人月神話》中的沒有銀彈一段中提出他的新論點。

代碼覆蓋率

代碼覆蓋(英語:Code coverage)是軟體測試中的一種度量,描述程式中原始碼被測試的比例和程度,所得比例稱為代碼覆蓋率
代碼覆蓋是由系統化軟體測試所衍生的方式。第一份出版的相關參考資料是Miller及Maloney1963年在ACM通訊上發表的論文。
代碼覆蓋是飛行設備進行安全認證中的考量項目之一。飛行設備相關認證的指南列在美國聯邦航空管理局的檔案DO-178B及最近出版的檔案DO-178C。功能安全標準,如IEC 61508或ISO 26262,並未定義程式碼覆蓋率之需求值,只列為軟體測試方法的選項,唯有航太產業標準(DO-178B)要求100%,以因應超高可靠度的產品需求,此數值對於工業或汽車產品實屬理想目標。

循環複雜度

循環複雜度Cyclomatic complexity)也稱為條件複雜度圈複雜度,是一種軟體度量,是由老托馬斯·J·麥凱布在1976年提出,用來表示程式的複雜度,其符號為VG或是M。循環複雜度由程式的原始碼中量測線性獨立路徑的個數。此概念有些類似的量測文字複雜度的Flesch-Kincaid可讀性測試,不過方法不完全相同。
循環複雜度是由程式的控制流圖來計算:有向圖的節點對應程式中個別的代碼,而若一個程式運行後會立刻運行另一代碼,會有邊連結二代碼對應的節點。圈複雜度可套用在程式的子程式模組方法類別
麥凱布首先提出一種稱為“基礎路徑測試”(Basis Path Testing)的軟體測試方式,是測試程式中的每一線性獨立路徑,此情形的測試用例個數即為程式的循環複雜度。
“循環複雜度”的名稱有時會讓人誤解,因為此複雜度不只計算程式中的循環(循環)個數。循環複雜度是指程式的控制流圖中,若將結束點到啟始點再增加一個邊時,控制流圖中的圈(幾個邊形成封閉路徑)的個數。

相關詞條

熱門詞條

聯絡我們