軟件設(shè)計(jì)師考試 | 第五章 軟件工程基礎(chǔ)知識(shí) | 軟件度量

軟件度量用于對(duì)產(chǎn)品及開發(fā)產(chǎn)品的過程進(jìn)行度量。

軟件產(chǎn)品、軟件過程、資源都具有外部屬性和內(nèi)部屬性。

  • 外部屬性(指面向管理者和用戶的屬性,體現(xiàn)了軟件產(chǎn)品/軟件過程與相關(guān)資源和環(huán)境的關(guān)系)
  • 內(nèi)部屬性(指軟件產(chǎn)品或軟件過程本身的屬性,如可靠性、可維護(hù)性等,只能用間接測(cè)量的方法度量)

(一)軟件度量分類

軟件度量有兩種分類方法,第一種分類是將軟件度量分為面向規(guī)模的度量、面向功能的度量和面向人的度量;第二種分類是將軟件度量分為生產(chǎn)率度量、質(zhì)量度量和技術(shù)度量。

  • 面向規(guī)模的度量用于收集與軟件規(guī)模相關(guān)的軟件工程輸出信息和質(zhì)量信息。
  • 面向功能的度量集中在程序的“功能性”和“實(shí)用性”。
  • 面向人的度量收集有關(guān)人們開發(fā)軟件所用方式的信息和人員理解有關(guān)工具的方法和效率的信息。
  • 軟件生產(chǎn)率度量主要關(guān)注于軟件工程活動(dòng)的制品。
  • 軟件質(zhì)量度量可指明軟件滿足明確的和隱含的用戶需求的程度。
  • 技術(shù)度量主要集中在軟件產(chǎn)品的某些特征上,而不是軟件開發(fā)的全過程。

1.面向規(guī)模的度量

面向規(guī)模的度量通過對(duì)質(zhì)量和生產(chǎn)率的測(cè)量進(jìn)行規(guī)范得到的,這些量都是根據(jù)開發(fā)過的軟件的規(guī)模得到的。

軟件規(guī)模通常用程序的代碼行(LOC)或千行代碼(KLOC)來衡量。

計(jì)算出軟件項(xiàng)目的代碼行后,可方便地度量其他的軟件屬性,如軟件開發(fā)的生產(chǎn)率、每行代碼的平均開發(fā)成本、文檔數(shù)量(頁(yè)數(shù))與代碼量的比例關(guān)系、每千行代碼中包含的軟件錯(cuò)誤數(shù)等。

面向規(guī)模的度量公式

對(duì)于同一軟件、采用不同程序語(yǔ)言編寫的程序,還有一些因良好的設(shè)計(jì)而導(dǎo)致代碼量小的軟件來說,這種度量不夠客觀。

2.面向功能的度量

面向功能的度量以功能測(cè)量數(shù)據(jù)作為規(guī)范化值。應(yīng)用最廣泛的面向功能的度量是功能點(diǎn)。功能點(diǎn)是根據(jù)軟件信息域的特性及復(fù)雜度來計(jì)算的。

信息域的值用下列方式定義:

  • 外部輸入數(shù)(EI
  • 外部輸出數(shù)(EO
  • 外部查詢數(shù)(EQ
  • 內(nèi)部邏輯文件數(shù)(ILF
  • 外部接口文件數(shù)(EIF

(二)軟件復(fù)雜性度量

軟件復(fù)雜性是指理解和處理軟件的難易程度。
軟件復(fù)雜性度量的參數(shù):

  • 規(guī)模(總共的指令數(shù)或源程序行數(shù))
  • 難度(通常由程序中出現(xiàn)的操作數(shù)的數(shù)目所決定的量來表示)
  • 結(jié)構(gòu)(用與程序結(jié)構(gòu)有關(guān)的度量來表示)
  • 智能度(算法的難易程度)

1.程序復(fù)雜性度量原則

程序復(fù)雜性度量模型應(yīng)遵循以下基本原則:

  • 程序復(fù)雜性與程序大小的關(guān)系不是線性的
  • 控制結(jié)構(gòu)復(fù)雜的程序較復(fù)雜
  • 數(shù)據(jù)結(jié)構(gòu)復(fù)雜的程序較復(fù)雜
  • 轉(zhuǎn)向語(yǔ)句使用不當(dāng)?shù)某绦蜉^復(fù)雜
  • 循環(huán)結(jié)構(gòu)比選擇結(jié)構(gòu)復(fù)雜,選擇結(jié)構(gòu)又比順序結(jié)構(gòu)復(fù)雜
  • 語(yǔ)句、數(shù)據(jù)、子程序和模塊在程序中的次序?qū)?fù)雜性有影響
  • 全局變量、非局部變量較多時(shí)程序較復(fù)雜
  • 函數(shù)的隱式副作用相對(duì)于顯示參數(shù)傳遞而言更加難以理解
  • 具有不同作用的變量公用一個(gè)名字時(shí)較難理解
  • 模塊間、過程間聯(lián)系密切的程序較復(fù)雜
  • 嵌套程序越深、程序越復(fù)雜

2.McCabe度量法

McCabe度量法又稱為環(huán)路度量,它認(rèn)為程序的復(fù)雜性在很大程度上取決于控制的復(fù)雜性。

該方法以圖論為工具,先畫出程序圖,然后用該圖的環(huán)路數(shù)作為程序復(fù)雜性的度量值。
把程序流程圖中每個(gè)處理符號(hào)都退化成一個(gè)結(jié)點(diǎn),原來連接不同處理符號(hào)的流線變成連接不同點(diǎn)的有向弧。在圖的入口點(diǎn)到出口點(diǎn)加一條用虛線表示的有向邊,使圖成為強(qiáng)連通圖。然后利用公式計(jì)算環(huán)路復(fù)雜性。
當(dāng)環(huán)路復(fù)雜度的度量值超過10時(shí),要充分測(cè)試這個(gè)模塊變得特別困難。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容