軟件同行評審

軟件開發裏的同行評審是評審工作產品(文件、程式碼等)的過程,是由作者的同事來進行評審,屬於軟件審查英語software review之一,其目的是要評估工作產品的技術內容以及品質。

目的

編輯

依照能力成熟度模型(CMM)所述,軟件同行評審的目的是提供「有紀律的工程實踐,在軟件製品中偵測並修正錯誤,並且避免這些疏漏進入實務產品的運作」。

若是配合軟件開發過程活動進行,軟件同行評審可以識別一些在產品生命週期初期即可修正的問題[1]。也就是說,若是在需求分析活動時就識別到需求的問題,其修正成本會比在軟件架構或是軟件測試活動時才修正要來的低。

美國軟件品質實驗[2]評估同行評審的有效性,發現「花時間軟件檢查的回報很大,將成本減到原來的四分之一。」換句話說,若之後才識別問題並且修正問題,所花的時間會是此方式的四倍。

和其他軟件審查的差異

編輯

同行評審和軟件管理審查英語Software management review不同,後者由管理者進行,而且是為了管理以及控管的考量,不是為了技術上的評估。同行評審也和軟件稽核審查英語software audit review不同,後者是由專案外的成員進行,評估是否符合規格、標準、合約協議等。

審查流程

編輯

同行評審有許多不同的形式,有可能是非正式的活動,或是類似Walkthrough技術同行評審英語technical peer review軟件檢查的作法。針對後面三種,IEEE有定義正式的結構、角色以及流程[3]

一般來說,主管不會參與軟件同行評審,除非主管本身有相關的技術經驗,或者要評審的就是管理層級的文件,主管才會參與。

正式同行評審的程序(像是軟件檢查)會定義參與者特定的角色,進入評審及離開評審的品質準則,在同行評審程序中要確認的軟件度量

開源評審

編輯

自由軟件社群中,在電腦軟件的發展及演進中,也有進行同行評審。此處的評審就像林納斯定律所述的:「足夠多的眼睛,就可讓所有問題浮現」,也就是說「若有夠多的評審者,所有問題都很容易解決。」。埃里克·雷蒙所寫有關軟件開發同行評審的文章,很有影響力[4]

參考資料

編輯
  1. ^ Kolawa, Adam; Huizinga, Dorota. Automated Defect Prevention: Best Practices in Software Management. Wiley-IEEE Computer Society Press. 2007: 261 [2023-10-31]. ISBN 978-0-470-04212-0. (原始內容存檔於2012-04-25). 
  2. ^ National Software Quality Experiment Resources and Results (PDF). [2023-11-01]. (原始內容存檔 (PDF)於2012-08-03). 
  3. ^ IEEE Std. 1028-2008, "IEEE Standard for Software Reviews and Audits"
  4. ^ Eric S. Raymond. The Cathedral and the Bazaar.