State of the Software Development Life-Cycle for the Internet-of-Things
This addresses the problem of inefficient software development for IoT systems, which is incremental as it reviews existing methodologies without introducing new solutions.
The paper examines the challenges in software development for Internet-of-Things (IoT) systems, such as large-scale heterogeneity, and finds that current IoT development practices are lagging behind best practices, highlighting open issues and research directions.
Software has a longstanding association with a state of crisis considering its success rate. The explosion of Internet-connected devices, Internet-of-Things, adds to the complexity of software systems. The particular characteristics of these systems, such as being large-scale and its heterogeneity, pose increasingly new challenges. In this paper, we first briefly introduce the IoT paradigm and the current state of art of software development. Then, we delve into the particularities of developing software for IoT systems and systems of systems, given an overview of what are the current methodologies and tools for design, develop and test such systems. The findings are discussed, revealing open issues and research directions, and reveal that the nowadays IoT software development practices are still lagging behind of what are the current best practices.