软件同行评审

软件开发里的同行评审是评审工作产品(文件、程式码等)的过程,是由作者的同事来进行评审,属于软件审查英语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.