arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2408.02614cs.SE
收藏

IoT与非IoT软件中代码质量和最佳实践的比较

Comparison of Code Quality and Best Practices in IoT and non-IoT Software

Nour Khezemi, Sikandar Ejaza, Naouel Moha, Yann-Gaël Guéhéneuc

AI总结:

本文通过比较GitHub上各94个特征匹配的IoT与非IoT系统代码指标,发现IoT软件更复杂、耦合、庞大且难维护,并据此提出面向IoT开发的最佳实践清单。

摘要:

背景:IoT系统是由软件驱动的互联设备网络,需要研究软件质量以进行维护。尽管已有大量关于非IoT软件质量的研究,但针对IoT软件质量的研究仍然缺乏。目前尚不确定IoT与非IoT系统软件是否具有可比性,这阻碍了将在非IoT系统上获得的研究结果和最佳实践有把握地应用于IoT系统。目标:因此,我们比较两组特征相当的IoT与非IoT系统的代码质量,以确定二者之间是否存在相似点和差异。我们还收集并重审非IoT场景中的软件工程最佳实践,以便将其应用于IoT。方法:我们设计并应用一种系统化方法,从GitHub中选取两组各94个、具有可比特征的非IoT和IoT系统软件。我们计算这两组系统的质量指标,随后分析并比较指标值。我们深入分析并给出IoT系统复杂性及其在代码库中表现方式的具体示例。比较之后,我们系统地选择并提出一份最佳实践清单,以应对观察到的IoT与非IoT代码之间的差异。结果:通过指标比较,我们得出结论:IoT系统软件比非IoT系统软件更复杂、耦合度更高、规模更大、可维护性更低,并且内聚性更低。若干因素导致了这些差异,例如集成多个硬件和软件组件,以及管理它们之间的数据通信。考虑到这些差异,我们提出一份经过重审的最佳实践清单,其中包含用于开发IoT系统的方法、工具或技术。例如,应用模块化和重构是降低复杂性的最佳实践。结论:基于我们的工作,研究人员现在可以在利用现有非IoT系统质量研究来处理IoT系统时作出有依据的决策。

英文摘要:

Context: IoT systems, networks of connected devices powered by software, require studying software quality for maintenance. Despite extensive studies on non-IoT software quality, research on IoT software quality is lacking. It is uncertain if IoT and non-IoT systems software are comparable, hindering the confident application of results and best practices gained on non-IoT systems. Objective: Therefore, we compare the code quality of two equivalent sets of IoT and non-IoT systems to determine whether there are similarities and differences. We also collect and revisit software-engineering best practices in non-IoT contexts to apply them to IoT. Method: We design and apply a systematic method to select two sets of 94 non-IoT and IoT systems software from GitHub with comparable characteristics. We compute quality metrics on the systems in these two sets and then analyse and compare the metric values. We analyse in depth and provide specific examples of IoT system's complexity and how it manifests in the codebases. After the comparison, We systematically select and present a list of best practices to address the observed difference between IoT and non-IoT code. Results: Through a comparison of metrics, we conclude that software for IoT systems is more complex, coupled, larger, less maintainable, and cohesive than non-IoT systems. Several factors, such as integrating multiple hardware and software components and managing data communication between them, contribute to these differences. Considering these differences, we present a revisited best practices list with approaches, tools, or techniques for developing IoT systems. As example, applying modularity, and refactoring are best practices for lowering the complexity. Conclusion: Based on our work, researchers can now make an informed decision using existing studies on the quality of non-IoT systems for IoT systems.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑