軟體度量: 测量软件的一些属性

軟體度量(software metric)是一個對於軟體性質及其規格的量測。軟體度量的目的是獲得客觀、可以複製及量化的量測結果,依軟體度量性質及特性的不同,可以分別應用在軟體開發的時程及預算規劃、成本估算、品質保證測試、軟體偵錯、軟體性能最佳化或專案人員配置的最佳化等領域。

舉例

源代碼行數簡稱SLOC,是最簡單的一種軟體度量,以下以包括注釋的實體源代碼行數(LOC)為準,說明軟體度量的特性及一些限制。

以下的C程式碼只有一行,其LOC為1:

for (i = 0; i < 10; i += 1) printf("hello"); /* How many lines of code is this? */ 

但程式碼在重新排版為以下的程式碼時,其LOC就從1改變為5,但實際的程式機能沒有改變:

/* Now how many lines of code is this? */ for (i = 0; i < 10; i += 1) {     printf("hello"); } 

若不使用迴圈的架構,直接呼叫10次printf,一般不建議以這種方式撰寫程式,但其LOC為11,比上述二個程式的LOC都大:

/* It is not a good code style */ printf("hello"); printf("hello"); printf("hello"); printf("hello"); printf("hello"); printf("hello"); printf("hello"); printf("hello"); printf("hello"); printf("hello"); 

不同的軟體度量可量測的軟體性質也隨之不同,像源代碼行數適合量測軟體的大小,但無法量測軟體的模組化程度,而且此度量方式是要量測原代碼的長度,不適合作為軟體規劃階段進行度量。

常見的軟體度量

以下是一些常見的軟體度量:

限制

軟體的開發過程相當複雜,其方法論及目標都有高度的變異性,因此很難定義軟體質或是量的數據,並確定一個有效的和及時的計量方式,尤其要在軟體的細部設計前進行相關的預估,更加困難。另一個困難、常產生爭議的是度量的定義,以及各度量之間的重要性。 實務上的軟體度量常常縮減為以下幾個因素的組合:

度量的目標可能會針對是上述的一項因素或是多項因素。

評論

軟體開發者指出過於簡化的軟體度量可能弊大於利。有些軟體開發者也注意到軟體度量已成為軟體開發過程中的一部份。有些軟體開發者注意到軟體度量可能造成程式設計者的壓力及焦慮,或是設法製造不實的度量,不過也有些軟體開發者認為軟體度量對程式設計者有正面影響,可以肯定自身工作的價值。

有些軟體開發者認為許多軟體度量的定義不夠精確,而在實務上也很難預估當軟體完成時,其對應的軟體度量的目標值為何,不過也有些軟體開發者認為不精確的量測至少比沒有量測要好「若對一個事物無法測量,也就無法控制這個事物。」。

軟體度量已廣為政府機關、美國軍方、美国国家航空航天局(NASA)、資訊科技諮詢機構、學術機構所使用,也有許多商用或學術使用的軟體開發預估軟體英语Comparison of development estimation software

相關條目

注释

参考文献

Tags:

軟體度量 舉例軟體度量 常見的軟體度量 限制軟體度量 評論軟體度量 相關條目軟體度量 注释軟體度量 参考文献軟體度量偵錯軟體

🔥 Trending searches on Wiki 中文:

白鹿 (演員)張員瑛Aespa劉冠佑 (五月天)Skytrax小魔女DoReMi丹貝偷偷藏不住 (电视剧)愛愛內含光抖音捷克日本柯玲玲KANO韓孝周全斗煥乌鲁木齐七五事件ILLIT英伟达鏈鋸人王一博世界棒球12強賽西班牙秦刚知否?知否?应是绿肥红瘦馬來西亞公共假期2024年4月8日日食沙特阿拉伯以家人之名阮經天愛·回家之開心速遞老挝白沙屯媽祖進香東京都反對逃犯條例修訂草案運動3月20日克里斯托弗·诺兰河北彩花Wiki白沙屯拱天宮冉钧Dragon Beauties鄭華娟雷军王嘉爾Mozilla越南馬英九林更新修昔底德陷阱赵鼎新孟建柱NCT DREAM周武帝格力高·森永事件臺灣般若波羅蜜多心經刘宇宁张学友2024年美國總統選舉唐納·川普OH MY GIRL3月28日星汉灿烂·月升沧海COLLAR李强 (1959年)體能之巔:百人大挑戰广州地铁少年歌行賴買丹月坂本龍一鳥山明朝鲜战争尼古拉·特斯拉KontinueMIRROR (組合)朴炯植汉服再見·枕邊人🡆 More