Page 44 - 《软件学报》2025年第5期
P. 44

1944                                                       软件学报  2025  年第  36  卷第  5  期


                 “假”链接的   ground-truth  数据集, 本文抽取了缺陷管理系统中       10  个企业项目在规定时间内发布的完整版本的缺陷
                 报告记录, 选择了明确“已修复        (resolved)”且“已关闭  (closed)”的缺陷, 从代码仓中选择成功合入       (merged) 的  commit
                 记录, 并以开发人员在      commit 属性表中关联的制品       ID  记录作为确定样本      ground-truth  标签的依据. 样本  ground-
                 truth  标注过程中的毋庸置疑会存在标签准确性的问题. 本文为了模拟真实数据集上有标签样本和无标签样本的
                 真实分布, 将   100%  的有标签集合    (ground-truth) 视为每个项目的全部数据集, 并从中随机选择           30%  的样视为初始
                 有标签样本, 同时也是初始训练集, 剩余           70%  视作无标签样本, 来支持本文        STRACE(AL+SSL) 方法的循环迭代训
                 练. 其中无论是初始的      30%  的有标签训练集, 还是      70%  的无标签数据集, 其标签的标注结果都可能由于开发人员
                 人工打错   tag  等原因引入的标签错误       (label error) 问题则会对模型效果产生影响. 如何保障标签结果准确性的工作
                 还值得进一步研究与探索. 本文建议可参考人工和自动化双保障的手段, 如采用增加人力成本来保障标注结果准
                 确性, 多人标注交叉验证, 多次标注降低误差, 领域专家审查                 [73,74]  等. 当然还可以尝试自动化的手段, 如一致性检
                 查, 标注模型融合等     [75,76]  来识别和修正标签错误   (label error) 问题.
                    为了应对结论效度       (conclusion validity) 威胁, 本文首先基于合作企业的所有可访问项目          (50  余个) 的历史数
                 据进行了前期调研工作, 并结合内部不同角色工程师                 (业务项目工程师、开发人员、测试人员和软件资源库平台
                 工程师) 的反馈, 汇总了软件可追踪性现状及潜在的关键挑战, 以确保调研工作的系统性和全面性. 在后续实验验
                 证环节结合了假设检验方法和           Cohen’s d  效应量来评估本文   STRACE  模型与之前方法之间的显著性差异, 从而能
                 够保证结论的正确性.
                    为了缓解外部效度       (external validity), 本文的实验样本, 即  10  个企业项目仅来自一家合作企业, 软件制品选择
                 了  issue-commit 两种类别, 这可能对本文实验的外部有效性带来威胁. 对此, 本文在实验的数据准备阶段从合作企
                 业的  50  余个可访问项目中, 选择了来自不同业务属性且有连续发布正式版本的                      10  个项目  (项目的总样本范围在
                 1 万至近百万个    issue-commit 跟踪对实例), 以确保实验样本的多样性和代表性. 尽管本文仅报告了所提出的                   STRACE
                 (AL+SSL) 框架应用于某软件企业的商业项目的             issue-commit 间的“真”或“假”链接分类任务, 但该框架有潜力被
                 应用于其他多种软件制品间的可追踪性恢复任务. 其他软件组织在使用本文方法时, 可以参考本文分析的几点关
                 键挑战的经验, 根据自身数据情况和特性, 灵活地调整框架中的各个组件, 如分类基础模型及采样策略, 以更好地
                 实践本文所提供的可追踪性恢复框架.

                 6   总 结

                    自动化的软件可追踪性恢复方法旨在解决软件过程制品之间潜在追踪链接缺失的问题. 通过对软件可追踪性
                 质量现状进行调研, 本文发现企业项目中制品间可追踪性低质量问题更为严峻, 例如软件制品之间存在缺乏关联、
                 延迟关联、错误关联和不完整关联等问题. 因此, 对可追踪性进行自动化恢复的需求变得更加紧迫. 为了解工业界
                 场景中软件过程制品间可追踪性的现状及可追踪性模型表现不佳的原因, 本文前期展开了现状调研与实验案例探
                 索研究, 进而分析识别出了原始数据低质量、数据稀疏及样数据不平衡等                         3  点关键挑战. 本文所提出的      STRACE
                 (AL+SSL) 框架结合了主动学习和半监督学习两种学习策略, 致力于解决可追踪性模型表现不佳的问题. 针对这                               3
                 点挑战, 首先, 在模型训练阶段引入半监督学习策略, 利用无标签样本进行学习, 解决样本规模稀疏性问题. 同时,
                 在半监督样本选择机制中, 提出了调整后的类平衡自训练                   (CBST-Adjust) 样本选择策略, 重点解决数据不平衡问
                 题. 通过引入伪标签权重机制, 在选择伪标签时考虑初始训练模型精度和伪标签样本可靠性的影响, 为伪标签样本
                 赋予不同的权重, 解决半监督模型因引入低质量伪标签而导致的效果不稳定和伪标签利用率不高的问题. 其次, 在
                 模型训练阶段引入基于主动学习子模块互信息的                 SMI_Flqmi 策略, 对初始训练集进行重塑, 并与半监督学习策略
                 相结合, 重点减轻初始训练集低质量的影响, 提高半监督学习生成的伪标签质量. 本文基于                           6  个开源项目及    10  个
                 企业项目展开了多组对比实验, 实验结果表明, STRACE(AL+SSL) 显著优于传统的                    IR  方法和随机森林     Baseline
                 (RF) 方法  (F2  值平均提升范围为    20%–40%). 对于半监督学习模型      SPLINT  强依赖于伪标签质量的问题, STRACE
                 (AL+SSL) 框架具有针对性地提升效果          (F2  值平均提升  18%–30%). 从而验证了所提框架在真实企业项目软件可
   39   40   41   42   43   44   45   46   47   48   49