The first page of the paper

The implementation of IoT applications, from the software point of view, is particularly complex and differs from the development of mobile and web applications. IoT developers must consider a set of dimensions that are unfamiliar to most software developers, namely, multi-device programming, the reactive nature of the application, the distributed nature of the software, and the need to write fault-tolerant software.

The paper How is Open Source Software Development Different in Popular IoT Projects? relies upon software mining to gain understanding, from a practical point of view, about how developing IoT applications is different from developing non-IoT applications in the Open Source Software (OSS) context. To this end, this work reports the comparison and quantitative analysis between the behavior of developers in the most popular IoT and non-IoT OSS projects hosted on GitHub. 

An empirical study was conducted mining 60 OSS repositories (30 IoT OSS and 30 non-IoT OSS projects) to analyze: a) the way developers contribute to their projects, b) the files that they tend to modify the most, and c) the specialization and the evolution of these modifications. 

Finally, the maturity of the IoT software development ecosystem was assessed based on a dependency analysis in the selected projects. Besides leveraging a characterization of IoT OSS projects currently available for IoT developers, this work aims at providing evidence from a practical point of view about the IoT software development peculiarities that should guide future research efforts to better understand and satisfy software engineering needs in the IoT context.


More information: