軟體同行評審
软件开发 |
---|
核心行动 |
范式与模式 |
方法论与框架 |
支持行为 |
实践 |
工具 |
标准与知识体系 |
軟體開發裡的同行評審是評審工作產品(文件、程式碼等)的過程,是由作者的同事來進行評審,屬於軟體審查之一,其目的是要評估工作產品的技術內容以及品質。
目的
依照能力成熟度模型(CMM)所述,軟體同行評審的目的是提供「有紀律的工程實踐,在軟體製品中偵測並修正錯誤,並且避免這些疏漏進入實務產品的運作」。
若是配合软件开发过程活動進行,軟體同行評審可以識別一些在產品生命週期初期即可修正的問題[1]。也就是說,若是在需求分析活動時就識別到需求的問題,其修正成本會比在軟體架構或是軟體測試活動時才修正要來的低。
美國軟體品質實驗[2]評估同行評審的有效性,發現「花時間軟體檢查的回報很大,將成本減到原來的四分之一。」換句話說,若之後才識別問題並且修正問題,所花的時間會是此方式的四倍。
和其他軟體審查的差異
同行評審和軟體管理審查不同,後者由管理者進行,而且是為了管理以及控管的考量,不是為了技術上的評估。同行評審也和軟體稽核審查不同,後者是由專案外的成員進行,評估是否符合規格、標準、合約協議等。
審查流程
同行評審有許多不同的形式,有可能是非正式的活動,或是類似Walkthrough、技術同行評審或軟體檢查的作法。針對後面三種,IEEE有定義正式的結構、角色以及流程[3]。
一般來說,主管不會參與軟體同行評審,除非主管本身有相關的技術經驗,或者要評審的就是管理層級的文件,主管才會參與。
正式同行評審的程序(像是軟體檢查)會定義參與者特定的角色,進入評審及離開評審的品質準則,在同行評審程序中要確認的軟體度量。
開源評審
在自由软件社群中,在電腦軟體的發展及演進中,也有進行同行評審。此處的評審就像林纳斯定律所述的:「足夠多的眼睛,就可讓所有問題浮現」,也就是說「若有夠多的評審者,所有問題都很容易解決。」。埃里克·雷蒙所寫有關軟體開發同行評審的文章,很有影響力[4]。
參考資料
- ^ 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).
- ^ National Software Quality Experiment Resources and Results (PDF). [2023-11-01]. (原始内容存档 (PDF)于2012-08-03).
- ^ IEEE Std. 1028-2008, "IEEE Standard for Software Reviews and Audits"
- ^ Eric S. Raymond. The Cathedral and the Bazaar.