软件审查流程改进与电子流程指南的应用
软件审查实验及结果分析
NTNU 实验 2
NTNU 进行的第二个实验旨在研究经验对三种常见代码缺陷(错误代码、缺失代码和多余代码)检测的影响。实验仅采用个人审查方式,并提供了检查表以增加可用经验。实验选取了 21 位高经验人员和 21 位低经验人员参与。
| 缺陷类型 | 低经验人员优势 | 高经验人员优势 | 两者无显著差异 |
|---|---|---|---|
| 具体表现 | 更擅长发现缺失代码(p < 0.01) | 更擅长发现多余代码语句(p = 0.01) | 在发现错误代码语句方面无显著差异(p = 0.38) |
令人惊讶的是,低经验人员发现的缺陷总数略多于高经验人员(5.5 对 5.1),但差异不显著。进一步分析发现,高经验组为博士研究生,低经验组为三、四年级学生,低经验组在编写和调试 Java 代码方面有更多近期实践经验。高经验人员更关注软件整体功能,容易忽略简单的低级缺陷,如缺失关键字“static”。而 D8、D10 缺失语句缺陷和 D11 错误语句缺陷最难被发现,这可能与检查表的组织方式有关,检查表较长,相关问题位于末尾,容易产生疲劳效应。
实验有效性威胁
由于三个实验均为大学学生实验,需要考虑以下有效性威胁:
1.
结论有效性
:根据所选的 I 型和 II 型错误概率,需要 22 名或更多参与者才能保证结论的统计有效性。本次实验只有 20 名参与者,结论有效性为中等。不过,高、低经验组在教育和相关经验方面具有同质性,减少了受试者选择带来的威胁。
2.
内部有效性
:实验难以仅通过统计分析证明因果关系,主要关注了选择和测量工具方面的问题。NTNU 1 实验通过参与者档案使组内同质;NTNU 2 实验除经验外,受试者本身较为同质;UNSW 实验虽无法控制经验和知识概况,但参与者软件工程教育程度相同,组内也较为同质。测量工具威胁主要源于前后测量方式差异,本次实验提前定义缺陷并记录,代码库除预设缺陷外未发现其他问题,降低了该威胁。
3.
构建有效性
:主要关注所使用的指标是否能准确衡量参与者识别代码缺陷的能力。使用的“发现的缺陷数量”指标可靠,假设猜测、研究者期望和评估担忧等威胁对本实验不相关。
4.
外部有效性
:最大威胁是实验使用学生作为受试者,低经验学生可能不能代表专业软件开发人员,但高经验学生通过暑期或兼职工作积累了一定行业经验。此外,实验代码在规模和复杂度上可能与实际软件代码有差异,但时间与代码规模的关系合理,符合工业环境预期。
mermaid 流程图展示实验流程
graph LR
A[选择参与者] --> B[分组:高经验组和低经验组]
B --> C[提供检查表和代码进行审查]
C --> D[统计发现的缺陷数量]
D --> E[按缺陷类型分析结果]
E --> F[评估实验有效性]
软件审查流程改进建议
审查团队构建
- 经验匹配 :实践经验很重要,应根据审查的缺陷类型选择具有特定主题经验的人员加入审查团队。
- 团队规模 :大团队通常比小团队表现更好。尽管 Votta 认为大小团队无差异,但本实验表明大团队平均拥有更多经验和知识,即使小团队使用检查表,大团队仍能发现更多缺陷。若团队成员经验丰富且能覆盖所有重要主题,将更有利于发现缺陷。
- 团队氛围 :审查是一个社会过程,需在团队中建立信任与合作精神,确保所有发现的缺陷都能被报告。
检查表优化
- 检查表顺序 :检查表项目顺序很重要,许多受试者按顺序使用检查表,末尾主题的缺陷发现率显著降低,如 D8 和 D10。
- 检查表拆分 :长检查表应拆分为覆盖各关注领域的小检查表,并根据参与者经验和审查目标分配,让审查者结合自身经验和检查表专注于最可能发现缺陷的主题。
电子流程指南在软件公司的应用
电子流程指南概述
电子流程指南(EPG)是一种结构化、面向工作流的参考文档,用于支持特定流程的参与者。然而,软件开发人员对遵循规定的流程模型存在怀疑,认为其过于“结构化”或“控制欲强”。因此,EPG 必须被开发者认为有用且易于使用,符合其现有价值观、过往经验和需求,才能在组织中有效推广。
流程研讨会的作用
让用户参与 EPG 创建是提高其使用率和效益的有效举措。在软件开发中,开发者和一线经理是公司业务实际情况的专家,应让所有参与软件流程的人员参与 EPG 开发决策。流程研讨会可以持续半天到几天,能促进人们讨论工作方式,在流程指南可用之前就促进学习,并且保证指南由了解实际工作的人员制定,更符合实际情况。
Kongsberg Spacetec 公司案例
Kongsberg Spacetec 是挪威一家领先的气象和地球观测卫星数据接收站生产商,80%的 62 名员工拥有物理学或计算机科学硕士学位。公司最初采用 ESA PSS - 05 软件工程标准,遵循传统“瀑布方法”。随着市场变化,公司引入电子流程指南进行软件流程改进。
mermaid 流程图展示电子流程指南引入流程
graph LR
A[公司面临流程改进需求] --> B[引入电子流程指南概念]
B --> C[组织流程研讨会]
C --> D[开发电子流程指南]
D --> E[在公司内部推广使用]
E --> F[评估使用效果并持续改进]
综上所述,软件审查流程的改进需要综合考虑人员经验、团队规模、检查表设计等因素,同时电子流程指南的有效应用可以借助流程研讨会等方式,提高开发者的接受度和使用率,从而提升软件公司的整体流程效率和质量。
软件审查与电子流程指南应用的综合分析
审查结果与指南应用的关联
软件审查实验的结果为电子流程指南的设计和应用提供了重要依据。从审查实验可知,不同经验水平的人员在发现不同类型缺陷上各有优势,这就要求电子流程指南在制定时,应根据缺陷类型和人员经验进行针对性设计。例如,对于缺失代码缺陷,可在指南中突出低经验人员的优势方法;对于多余代码缺陷,则强调高经验人员的检查重点。
| 缺陷类型 | 审查实验结果 | 电子流程指南对应设计 |
|---|---|---|
| 缺失代码 | 低经验人员更擅长发现(p < 0.01) | 突出低经验人员发现缺失代码的方法和技巧 |
| 多余代码 | 高经验人员更擅长发现(p = 0.01) | 强调高经验人员检查多余代码的重点和思路 |
| 错误代码 | 两者无显著差异(p = 0.38) | 提供通用的检查错误代码的方法 |
同时,审查实验中发现的检查表问题,如疲劳效应和顺序影响,也应在电子流程指南中得到解决。电子流程指南可以采用更灵活的结构,避免长列表带来的疲劳,并且合理安排检查项目的顺序,提高检查效率。
团队协作与电子流程指南的融合
在软件审查中,团队协作至关重要。电子流程指南可以促进团队成员之间的协作和沟通。通过电子流程指南,团队成员可以清晰了解各自的职责和任务,明确审查的流程和标准。例如,在一个审查项目中,团队成员可以根据指南中的分工,分别负责不同类型缺陷的检查,然后通过指南中的沟通机制,及时分享检查结果,提高团队协作的效率。
以下是一个团队协作在电子流程指南下的示例 mermaid 流程图:
graph LR
A[团队成员登录电子流程指南] --> B[查看各自任务分配]
B --> C{选择缺陷类型进行检查}
C -->|缺失代码| D[低经验成员检查]
C -->|多余代码| E[高经验成员检查]
C -->|错误代码| F[通用检查]
D --> G[记录检查结果]
E --> G
F --> G
G --> H[通过指南分享结果]
H --> I[团队讨论并确定最终结果]
持续改进的机制
无论是软件审查流程还是电子流程指南,都需要建立持续改进的机制。对于软件审查流程,应根据每次审查的结果,分析存在的问题,调整审查团队的组成、检查表的设计等。对于电子流程指南,应根据用户的反馈和实际应用情况,不断优化指南的内容和结构。
持续改进的步骤可以总结为以下列表:
1. 收集数据:包括审查结果、用户反馈、流程执行时间等。
2. 分析数据:找出存在的问题和改进的方向。
3. 制定改进方案:针对问题制定具体的改进措施。
4. 实施改进方案:在实际工作中应用改进措施。
5. 评估改进效果:检查改进措施是否有效,是否达到预期目标。
电子流程指南的未来发展趋势
随着技术的不断发展,电子流程指南也将不断演进。未来,电子流程指南可能会与人工智能、大数据等技术相结合,实现更智能化的流程指导。例如,通过人工智能分析大量的审查数据,为审查人员提供更精准的检查建议;利用大数据技术,对不同项目的审查结果进行分析,总结出更有效的审查流程和方法。
同时,电子流程指南的应用范围也可能会不断扩大,不仅应用于软件审查,还可能应用于软件开发生命周期的其他阶段,如需求分析、设计、测试等,为整个软件开发过程提供全面的指导。
总之,软件审查流程的改进和电子流程指南的应用是一个相互促进、不断发展的过程。通过合理利用审查实验的结果,优化电子流程指南的设计,促进团队协作,建立持续改进的机制,软件公司可以不断提高软件质量和开发效率,适应市场的变化和发展。
超级会员免费看

被折叠的 条评论
为什么被折叠?



