论文部分内容阅读
工作量估算是软件项目开发的关键步骤,其被研究者们广泛关注。虽然研究者们解决了软件工作量估算中的诸多问题,在某些方面也取得了一定的成就,但是工作量估算过程中仍然存在很多亟需解决的实际问题。其中,工作量数据干涸是工作量估算研究的最大障碍之一。本文针对数据干涸情况进行了研究,从不同的方面提出了缓解数据干涸的方案,取得了一些有价值的研究成果:(1)存在缺失的样本常携带大量有用的信息,其能帮助工作量估算模型的训练。本文从充分利用数据的角度,提出了一种新的基于低秩恢复和半监督回归技术的数据补全技术。文章先对工作量数据缺失重新进行了划分,包括自变量上的缺失、因变量上的缺失以及一般情况下的数据缺失(即数据缺失既发生在自变量上又发生在因变量上)。然后,针对不同的数据缺失场景,引入了低秩恢复技术以及半监督回归技术等来补全这些场景下的数据缺失。此外,为了使得软件工作量数据更好地适应于引入的方法,本文设计了一种结构化策略,将无结构的工作量数据转化为有结构的工作量数据。本文在7个不同的数据集上进行了实验,实验结果证明所提方法优于传统的不全方法。(2)数据共享是缓解数据干涸的主要途径之一,而数据共享过程中的隐私泄漏问题成为数据共享的主要障碍。为此,本文从数据隐私保持的角度出发,提出了一种基于区间覆盖和流形学习双向数据混淆方法。在此过程中,本文提出了一种基于区间覆盖的子类划分技术,为无类别的工作量数据创建类别信息,从而使得经典的隐私化思想能够被引入工作量数据的隐私保护中。此外,本文提出了一种全新的双向数据混淆方法,其加强数据隐私性的同时,维持了数据的可用性。本文在7个开源数据集上进行了实验,研究结果表明所提方法能够有效地保护数据共享过程中用户数据的隐私。(3)缺失数据补全和数据共享都属于缓解数据干涸的被动型方案,来缓解数据干涸问题。为此,本文提出了一种开源项目工作量数据提取方法,其是一种主动型解决方案。本文从项目筛选、度量设计、数据的在线增量等方面研究了开源项目工作量数据的提取。在此过程中,本文提出了一种基于AdaBoost算法的数据增量方法,即AdaBoost-based estimator with CART,简称 ABCART,ABCART 针对工作量数据的特点对AdaBoost算法进行了相应的改进,使其更加适合工作量估算数据增量场景。