软件同行评审
软件开发 |
---|
核心行动 |
范式与模式 |
方法论与框架 |
支持行为 |
实践 |
工具 |
标准与知识体系 |
软件开发里的同行评审是评审工作产品(文件、程式码等)的过程,是由作者的同事来进行评审,属于软件审查之一,其目的是要评估工作产品的技术内容以及品质。
目的
[编辑]依照能力成熟度模型(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.