跳轉到內容

軟體工程/質量/指標簡介

來自華夏公益教科書

軟體指標是對軟體或其規範的某些屬性的度量。由於定量測量在所有科學中都是必不可少的,因此計算機科學從業人員和理論家一直在不斷努力將類似的方法引入軟體開發。目標是獲得客觀、可重複和可量化的測量結果,這些測量結果在進度和預算計劃、成本估算、質量保證測試、軟體除錯、軟體效能最佳化以及最佳人員任務分配方面可能具有許多有價值的應用。

常見的軟體度量

[編輯 | 編輯原始碼]

常見的軟體度量包括

  • 平衡計分卡
  • 每行程式碼的錯誤數
  • COCOMO
  • 程式碼覆蓋率
  • 內聚性
  • 註釋密度[1]
  • 可識別的軟體元件
  • 耦合
  • 圈複雜度
  • 功能點分析
  • 霍爾斯特德複雜度
  • 指令路徑長度
  • 類和介面的數量
  • 程式碼行數
  • 客戶需求行數
  • 程式執行時間
  • 程式載入時間
  • 二進位制檔案 | 程式大小(二進位制)
  • 羅伯特·C·馬丁的軟體包指標
  • 加權微功能點

侷限性

[編輯 | 編輯原始碼]

由於軟體開發是一個複雜的過程,在方法和目標方面差異很大,因此很難定義或衡量軟體質量和數量,並確定有效的併發測量指標,尤其是在進行此類預測之前進行詳細設計。另一個困難和爭論的來源是確定哪些指標很重要以及它們意味著什麼。[2][3] 因此,軟體測量的實際效用僅限於狹窄的領域,其中它們包括

  • 時間表
  • 大小/複雜度
  • 成本
  • 質量

常見的測量目標可能是針對上述一個或多個方面,或它們之間的平衡作為團隊動機或專案績效的指標。

接受度和公眾輿論

[編輯 | 編輯原始碼]

一些軟體開發從業人員指出,簡單的測量結果可能弊大於利。[4] 其他人指出,指標已成為軟體開發過程不可或缺的一部分。[2] 測量對程式設計師心理的影響引起了人們對由於壓力、績效焦慮以及試圖欺騙指標而導致的負面績效影響的擔憂,而另一些人發現它對開發人員對自身工作的價值觀產生了積極的影響,並防止他們被低估。[5] 有人認為,許多測量方法的定義並不精確,因此通常不清楚計算它們的工具是如何得出特定結果的,[6] 而另一些人則認為,不完美的量化總比沒有好(“你無法控制你無法衡量的東西。”)[7]。證據表明,軟體指標被政府機構、美國軍方、NASA[8]、IT 諮詢師、學術機構[9]以及商業和學術開發估計軟體廣泛使用。

參考文獻

[編輯 | 編輯原始碼]
  1. "描述資訊 (DI) 度量閾值". 陸地軟體工程中心. 檢索於 2010 年 10 月 19 日.
  2. a b Binstock, Andrew. "整合觀察:有效使用指標". SD Times. BZ Media. 檢索於 2010 年 10 月 19 日.
  3. Kolawa, Adam. "何時、為何以及如何:程式碼分析". 程式碼專案. 檢索於 2010 年 10 月 19 日.
  4. Kaner, Dr. Cem, 軟體工程師指標:它們測量什麼以及我們如何知道?
  5. ProjectCodeMeter (2010) "ProjectCodeMeter 使用者手冊" 第 65 頁 [1]
  6. Lincke, Rüdiger; Lundberg, Jonas; Löwe, Welf (2008), "Comparing software metrics tools" (PDF), International Symposium on Software Testing and Analysis 2008, pp. 131–142
  7. DeMarco, Tom. Controlling Software Projects: Management, Measurement and Estimation. ISBN 0-13-171711-1.
  8. NASA Metrics Planning and Reporting Working Group (MPARWG) [2]
  9. USC Center for Systems and Software Engineering [3]
[編輯 | 編輯原始碼]
華夏公益教科書