面向软件社区的个性化推荐方法研究与实现

来源 :扬州大学 | 被引量 : 0次 | 上传用户:mm7458106
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,随着开源软件社区逐渐发展壮大,越来越多的开发者参与了社区中软件的开发、演化和维护活动,并认识到开源软件社区中历史数据资源的价值,但是在超量信息环境下,“信息过载”问题日趋严重,面临着以下挑战:(1)开发人员在开源社区相互协作或参与他们感兴趣的项目开发时,通常会搜索与其开发工作相关的项目,以复用其功能和特性。但是,由于开源软件社区存在海量的项目,他们寻找到自己真正感兴趣的项目,需要花费大量的时间和精力,并且不同的开发者可能对相关项目有不同的需求,所以向开发人员推荐相关项目非常困难。(2)在软件系统的演化过程中,用户会不断提出新的功能请求以对软件进行维护。为实现这些新的功能,开发人员通常使用现有的第三方库并利用其中的应用程序编程接口(Application programming interface,API)来实现这些新功能。然而,究竟选择哪些API、在什么位置以及如何使用这些API,解决这些问题对开发人员来说耗时且费力。(3)由于软件缺陷(bug)的复杂性和历史原因,大多软件bug往往不是一个开发人员就能解决的,开发人员在修改之前需要探讨bug问题,并且当开发人员在完成修复bug任务碰到困难时,他们需要快速找到合适的交流对象以提高修改软件bug的效率。现有的开发人员推荐技术都致力于推荐一个最合适的开发人员修复软件bug,不能帮助开发人员找到合适的交流对象,这样就降低了软件维护效率。为了应对以上这些挑战,本文开展了以下的工作:(1)提出了一种面向GitHub的个性化软件项目的推荐方法。该方法基于项目的特点和用户对其他项目的行为,针对每一个开发者给出Top-N的个性化推荐。此外,该方法还整合了用户反馈以进一步提高推荐的准确度。从GitHub爬取的数据进行了实证研究,结果表明该方法可以为开发者准确地推荐相关软件项目。(2)提出了使用特征定位技术将功能相关的源代码文件标识为API的使用位置,基于API的使用位置,通过挖掘历史功能请求库和API库来进行API方法的推荐。为评估本方法的有效性,在五个Java项目的5000多个功能请求中进行了实验验证,结果表明了本方法的有效性。(3)开发了一个针对软件bug修复的推荐工具,该工具可以分析bug请求数据、推荐开发者的个性化文件、生成相关开发者的关系图、以及分析开发者的历史bug修改记录等。该工具不仅从开发人员历史开发经验和行为模式角度推荐出修复某一特定bug的开发人员,而且结合该开发人员的开发历史任务构建“开发者——bug信息——开发者”关系网,帮助开发人员完成修复bug任务时找到合适的交流对象。
其他文献
为了掌握平塘县森林资源情况,通过3S技术结合二调、贵州省森林普查数据,分析了平塘县森林资源的分布特征。研究表明:1)平塘县森林资源十分丰富,森林占国土面积的71.73%,有林
本篇翻译实践报告的文本选自反腐纪实文学《追问》。《追问》以作者实地采访为线索,以落马高官的口述纪实为内容,在深度对话中追溯还原当事者的人生历程。奈达的功能对等理论强调读者反应,认为评判译文质量的优劣,必须看读者能否获得与原作读者对原文产生的基本一致的反应。译者寻求的应当是最切近的对等,使译文最大限度地贴近原文。由于纪实性文本兼具真实性与文学性的双重特性,注重真实信息的传递以及情感的生动表达,因此功