—Internet of Thing (IoT) based systems support any-time/place computations by interconnecting humans, systems, services, devices, and things that enabling autonomous systems to shape-up digitized societies. Software architecture, as the blue-print of software-intensive systems, abstracts the complexities of modeling, design, development, and evolution phases of a software to engineer complex IoT driven systems effectively and efficiently. Objectives and Method
—Research and development efforts are required to exploit architectural principle and practices to design and develop IoT systems to go beyond the state-of-the-art for IoTs. The objectives of this research are to empirically investigate and systematically classify the state-of-the-art on architecting IoT based software. We have used the Evidence Based Software Engineering (EBSE) method to conduct a mapping study of the existing IoT solutions by investigating 88 qualitatively selected studies. Results and Implications
—The results of the mapping study highlight various research themes that exploit software architecture models to develop IoT systems. The identified research themes include, but are not limited to, cloud-based software ecosystems, software defined networking, autonomous, and adaptive software and agent-based systems that IoTs drive. The mapping study suggests that futuristic research on architecting IoT software is focused on architectural languages and patterns that support reusability, automation, and human decision support to develop and dynamically adapt IoT software. The mapping study represents a concentrated knowledge regarding architectural principle and practices to facilitate knowledge transfer—benefiting researchers and practitioners—on the role of software architecture for IoT systems.
This is an open access article distributed under the Creative Commons Attribution License
which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited