While specifying an IoT-based system, software developers have to face a set of challenges, spanning from selecting the hardware components to writing the actual source code. Even though dedicated development environments are in place, a nonexpert user might struggle with the over-choice problem in selecting the proper component. By combining MDE and recommender systems, this paper proposes an initial prototype, called ResyDuo, to assist Arduino developers by providing two different artifacts, i. e. , hardware components and software libraries. In particular, we make use of a widely adopted collaborative filtering algorithm by collecting relevant information by means of a dedicated data model. ResyDuo can retrieve hardware components by using tags or existing Arduino projects stored on the ProjectHub repository. Then, the system can eventually retrieve corresponding software libraries based on the identified hardware devices. ResyDuo is equipped with a web-based interface that allows users to easily select and configure the under-developing Arduino project. To assess ResyDuos performances, we run the ten-fold crossvalidation by adopting the grid search strategy to optimize the hyperparameters of the CF-based algorithm. The conducted evaluation shows encouraging results even though there is still room for improvement in terms of the examined metrics.
翻译:在开发基于物联网的软件系统时,开发者面临一系列挑战,包括从硬件组件的选择到实际源代码的编写。尽管存在专门的开发环境,但非专业用户可能因“过度选择”问题而难以挑选合适的组件。本文通过结合模型驱动工程与推荐系统,提出一个名为ResyDuo的初步原型,旨在通过提供两种不同制品(即硬件组件与软件库)来辅助Arduino开发者。具体而言,我们采用一种广泛使用的协同过滤算法,通过专用数据模型收集相关信息。ResyDuo可通过标签或存储在ProjectHub仓库中的现有Arduino项目检索硬件组件,进而根据识别到的硬件设备获取相应的软件库。ResyDuo配备基于Web的界面,便于用户轻松选择并配置正在开发的Arduino项目。为评估ResyDuo的性能,我们采用网格搜索策略优化基于协同过滤算法的超参数,并运行十折交叉验证。实验评估结果表明,尽管在所考察的指标方面仍有改进空间,但已取得令人鼓舞的结果。