咨询与建议

看过本文的还看了

相关文献

该作者的其他文献

文献详情 >基于深度学习的中大型项目开发模式预构建研究 收藏
基于深度学习的中大型项目开发模式预构建研究

基于深度学习的中大型项目开发模式预构建研究

作     者:张斐 

作者单位:兰州理工大学 

学位级别:硕士

导师姓名:曹来成

授予年度:2022年

学科分类:08[工学] 081104[工学-模式识别与智能系统] 0811[工学-控制科学与工程] 0812[工学-计算机科学与技术(可授工学、理学学位)] 081202[工学-计算机软件与理论] 

主      题:变更预测 样本集合并 多项目预测 深度度量学习 深度排序学习 

摘      要:当软件的规模达到一定程度,其包含的业务场景数量以及场景间的关联逻辑复杂度会随着规模的增大呈指数级增长,与此同时,一个中大型项目往往由多个单体项目共同组成,包含的单体项目越多,其间的数据交互方式、通信链路、业务关联以及负载均衡体系就越复杂。因此,对于中大型软件而言,发生变更的同时将伴随着巨大的成本投入。如果在项目启动之初,通过精准的软件变更预测手段,预先构建完善的具有强扩展性的开发模式,则能有效地降低软件项目的变更次数和变更难度,进而提高企业和团队效率,降低开发成本。变更预测一直是软件工程领域的一个热门研究方向,在研究的初期阶段,有学者提出了一种基于单项目文件集的项目内变更预测模型,该模型在小型单体项目中表现良好,但对于中大型项目,尤其是多项目间的变更预测,其准确度和稳定性会大幅下降。为了解决项目内预测存在的问题,多项目间软件变更预测方法应运而生,但在实际应用过程中,项目间一些重要特征会存在较大差异,如编程语言不同、技术框架多样以及项目架构互斥等因素,导致模型最终的预测效果不尽如人意。在经过对问题原因的深入研究和当前技术体系的广泛调研,发现深度学习方法在解决上述问题上有极强的优势,为此,本文在深度学习方法的基础上提出了以下两个预测方法,分别是DML(多项目间基于深度度量学习的软件变更预测)和DRank(多项目间基于深度排序学习软件变更预测)。主要的研究内容有以下三个方面:(1)数据预处理,本文选择了 2个闭源项目和5个开源项目,并从版本控制系统中抽取了相应的迭代信息,结合其源代码数据,形成了原始数据集,为了解决数据的差异性问题,首先对其进行了标准化和平衡化处理。其次,由于单项目模型在多项目间预测中表现较差,有一个重要的影响因素就是训练样本数据单一,覆盖场景较少,为此,本文提出了项目样本集合并的方案,降低各个项目间核心特征的差异,进而丰富训练样本数据,增大业务场景覆盖,以期提高预测效果,并设计了基础实验方案,使用传统的机器学习方法对项目样本集合并的可行性进行了验证。(2)多项目间基于深度度量学习的软件变更预测方法,软件度量元是基于工程学角度衡量软件项目中文件样本特征的指标,因此,如何选择适合的度量元对软件变更预测效果有着直接影响。通过引入度量学习和深度学习相结合的方式,本文提出了深度度量学习方法,使用该方法计算各个文件样本的特征值,并将其马氏-距离度量在新的特征空间中映射,增加异类样本间距离,缩小同类样本间距离,并使拉大各类样本集与对应阈值之间的差距,直到得到效果最好的网络结构,从而达到对多项目间的软件变更进行准确预测。(3)多项目间基于深度排序学习的软件变更预测方法,使用基于深度度量学习的变更预测方法虽然有效地提高了多项目间软件变更预测的准确度,但其模型训练性能过低,耗时过长,难以满足在实际生产中的应用。为了解决上述问题,本文引入了深度排序学习,设计了多项目件的软件变更预测方法,构建排序模型计算样本变更概率,对计算结果按照降序排序,得到有序文件列表,进而实现对软件变更的高效预测。通过对上述三个方面的研究,得出了以下结论,项目内预测中,使用多项目合并的训练方法能够有效解决单项目训练模型适用性差、准确率低的问题,实验结果表明,合并训练模型的综合指标提高了12.7%。在机器学习的选择方面,基于深度度量学习训练的模型在变更预测方面要优于传统机器学习方法,实验中发现,DML的综合指标同比提高了6.98%。在性能方面,基于深度排序学习算法的变更预测方法要远高于深度度量学习,同时,预测效果也更好,较之于深度度量学习模型,Drank的综合指标提高了16.55%。

读者评论 与其他读者分享你的观点

用户名:未登录
我的评分