To perform their daily tasks, developers intensively make use of existing resources by consulting open-source software (OSS) repositories. Such platforms contain rich data sources, e.g., code snippets, documentation, and user discussions, that can be useful for supporting development activities. Over the last decades, several techniques and tools have been promoted to provide developers with innovative features, aiming to bring in improvements in terms of development effort, cost savings, and productivity. In the context of the EU H2020 CROSSMINER project, a set of recommendation systems has been conceived to assist software programmers in different phases of the development process. The systems provide developers with various artifacts, such as third-party libraries, documentation about how to use the APIs being adopted, or relevant API function calls. To develop such recommendations, various technical choices have been made to overcome issues related to several aspects including the lack of baselines, limited data availability, decisions about the performance measures, and evaluation approaches. This paper is an experience report to present the knowledge pertinent to the set of recommendation systems developed through the CROSSMINER project. We explain in detail the challenges we had to deal with, together with the related lessons learned when developing and evaluating these systems. Our aim is to provide the research community with concrete takeaway messages that are expected to be useful for those who want to develop or customize their own recommendation systems. The reported experiences can facilitate interesting discussions and research work, which in the end contribute to the advancement of recommendation systems applied to solve different issues in Software Engineering.
翻译:为履行日常任务,开发商通过咨询开放源码软件库,大力利用现有资源。这些平台包含丰富的数据来源,如代码片、文件和用户讨论,可以用来支持发展活动。在过去几十年中,推广了若干技术和工具,为开发商提供创新特征,目的是改进发展努力、成本节约和生产率。在欧盟H20 Crosspminer项目中,设计了一套建议系统,以协助软件程序设计员进入发展进程的不同阶段。这些系统为开发商提供了各种精细的工艺品,如第三方图书馆、关于如何使用正在通过的API的文献或相关的API功能呼吁。为了制定这些建议,已经作出各种技术选择,以克服与若干方面有关的问题,包括缺乏基线、数据可用性有限、关于业绩计量的决定和评价方法。本文件是一份经验报告,介绍与通过CROSSMINER项目开发的成套建议系统相关的知识。我们不得不详细处理各种难题,如第三方图书馆、关于如何使用正在被采纳的API或应用的相关API功能的文献。为了在开发这些系统时提供我们所期望的研究成果,我们所要利用的系统来改进的系统。我们所要利用的研究成果,我们所要利用的系统来讨论的系统,以便了解我们所要了解的系统,我们所要了解的系统的最后经验。我们所要了解的、我们所要了解的这些经验,以便了解的系统能有助于我们所要改进的系统,以便了解的系统能有助于我们所了解的系统,我们所要改进的系统,要了解的系统,要了解的系统,要了解的系统,要了解的系统,要了解的系统,要了解的系统为我们所要了解的系统,要了解的这些经验,要了解的系统,要了解的实践,要了解的系统,要了解的系统。我们所要了解的实践,要了解的系统,要了解的系统,要了解的系统,要了解我们所要了解的系统,要了解的系统,要了解的系统,要了解的系统,要了解的系统,要了解的系统,要了解的系统要了解的系统要了解的实践,要了解的系统,要了解的系统是要了解的系统,要了解的系统,要了解的实践,要了解的系统,要了解的系统,要了解的系统,要了解的系统,要了解的系统,要了解的系统,要了解的系统,要了解的系统