The selection of software technologies is an important but complex task. We consider developers of JavaScript (JS) applications, for whom the assessment of JS libraries has become difficult and time-consuming due to the growing number of technology options available. A common strategy is to browse software repositories via search engines (e.g., NPM, or Google), although it brings some problems. First, given a technology need, the engines might return a long list of results, which often causes information overload issues. Second, the results should be ranked according to criteria of interest for the developer. However, deciding how to weight these criteria to make a decision is not straightforward. In this work, we propose a two-phase approach for assisting developers to retrieve and rank JS technologies in a semi-automated fashion. The first-phase (ST-Retrieval) uses a meta-search technique for collecting JS technologies that meet the developer's needs. The second-phase (called ST-Rank), relies on a machine learning technique to infer, based on criteria used by other projects in the Web, a ranking of the output of ST-Retrieval. We evaluated our approach with NPM and obtained satisfactory results in terms of the accuracy of the technologies retrieved and the order in which they were ranked.
翻译:选择软件技术是一项重要但复杂的任务。 我们认为,JavaScript(JS)应用程序的开发者是一项重要但又复杂的任务。我们考虑JavaScript (JS) 应用程序的开发者,由于现有技术选择越来越多,对JavaScript (JS) 应用程序的评估变得困难和耗时。一个共同的战略是通过搜索引擎(例如国家预防机制或Google)浏览软件储存库,尽管这带来了一些问题。首先,鉴于技术需要,引擎可能退回一长串结果清单,这往往造成信息超载问题。第二,结果应当按照开发者感兴趣的标准排列。然而,决定如何权衡这些标准来作出决定并非简单明了。在这项工作中,我们建议采取两阶段办法协助开发者检索JS技术,并以半自动方式对JS技术进行排名。第一阶段(ST-Rerievval)使用元研究技术收集满足开发者需要的JS技术。第二阶段(称为ST-Rank),其依据网络其他项目使用的标准,根据机器学习技术的顺序来推算出它们作出决策的顺序。我们用国家数据库和等级评估了我们的国家数据库的准确性技术。