Exploring Bluetooth Communication Protocols in Internet-of-Things Software Development
Tri Minh Triet Pham, Jinqiu Yang · 2020
Internet of Things (IoT) development heavily depends on the connectivity of real-world objects. Bluetooth technology is widely applied to such connectivity in many IoT domains, such as smart home systems. Developing an integrated IoT system involves various stakeholders, e.g., mobile app developers and firmware developers. Discrepancies on the connectivity of the devices, i.e., how to communicate, may occur between different stakeholders in IoT development. Discrepancies occur when one group of developers misunderstand the communication protocols or incorrectly implemented them in the code. Such discrepancies may lead to unmet requirements and runtime connection errors. To help reduce such discrepancies, we perform a study to understand the current practices of designing Bluetooth communication protocols (BCPs) (i.e., by firmware developers) and how software developers manage the diverse BCPs in the code. Such understanding is a first step to provide tool support that can help developers better manage BCPs and detect (fault-indicating) discrepancies, aiding the maintenance effort of mobile applications.