48,691 research outputs found
An Evidence-based Roadmap for IoT Software Systems Engineering
Context: The Internet of Things (IoT) has brought expectations for software
inclusion in everyday objects. However, it has challenges and requires
multidisciplinary technical knowledge involving different areas that should be
combined to enable IoT software systems engineering. Goal: To present an
evidence-based roadmap for IoT development to support developers in specifying,
designing, and implementing IoT systems. Method: An iterative approach based on
experimental studies to acquire evidence to define the IoT Roadmap. Next, the
Systems Engineering Body of Knowledge life cycle was used to organize the
roadmap and set temporal dimensions for IoT software systems engineering.
Results: The studies revealed seven IoT Facets influencing IoT development. The
IoT Roadmap comprises 117 items organized into 29 categories representing
different concerns for each Facet. In addition, an experimental study was
conducted observing a real case of a healthcare IoT project, indicating the
roadmap applicability. Conclusions: The IoT Roadmap can be a feasible
instrument to assist IoT software systems engineering because it can (a)
support researchers and practitioners in understanding and characterizing the
IoT and (b) provide a checklist to identify the applicable recommendations for
engineering IoT software systems
Reflecting on Recurring Failures in IoT Development
As IoT systems are given more responsibility and autonomy, they offer greater
benefits, but also carry greater risks. We believe this trend invigorates an
old challenge of software engineering: how to develop high-risk
software-intensive systems safely and securely under market pressures? As a
first step, we conducted a systematic analysis of recent IoT failures to
identify engineering challenges. We collected and analyzed 22 news reports and
studied the sources, impacts, and repair strategies of failures in IoT systems.
We observed failure trends both within and across application domains. We also
observed that failure themes have persisted over time. To alleviate these
trends, we outline a research agenda toward a Failure-Aware Software
Development Life Cycle for IoT development. We propose an encyclopedia of
failures and an empirical basis for system postmortems, complemented by
appropriate automated tools.Comment: Accepted at the New Ideas and Emerging Results Track (NIER) at The
37th IEEE/ACM International Conference on Automated Software Engineering (ASE
2022
Software Engineering Approaches for TinyML based IoT Embedded Vision: A Systematic Literature Review
Internet of Things (IoT) has catapulted human ability to control our
environments through ubiquitous sensing, communication, computation, and
actuation. Over the past few years, IoT has joined forces with Machine Learning
(ML) to embed deep intelligence at the far edge. TinyML (Tiny Machine Learning)
has enabled the deployment of ML models for embedded vision on extremely lean
edge hardware, bringing the power of IoT and ML together. However, TinyML
powered embedded vision applications are still in a nascent stage, and they are
just starting to scale to widespread real-world IoT deployment. To harness the
true potential of IoT and ML, it is necessary to provide product developers
with robust, easy-to-use software engineering (SE) frameworks and best
practices that are customized for the unique challenges faced in TinyML
engineering. Through this systematic literature review, we aggregated the key
challenges reported by TinyML developers and identified state-of-art SE
approaches in large-scale Computer Vision, Machine Learning, and Embedded
Systems that can help address key challenges in TinyML based IoT embedded
vision. In summary, our study draws synergies between SE expertise that
embedded systems developers and ML developers have independently developed to
help address the unique challenges in the engineering of TinyML based IoT
embedded vision.Comment: 8 pages, 3 figure
Recommended from our members
Identifying Conflicting Requirements in Systems of Systems
A System of Systems (SoS) is an arrangement of useful and independent sub-systems, which are integrated into a larger system. Examples are found in transport systems, nutritional systems, smart homes and smart cities. The composition of component sub-systems into an SoS enables support for complex functionalities that cannot be provided by individual sub-systems on their own. However, to realize the benefits of these functionalities it is necessary to address several software engineering challenges including, but not limited to, the specification, design, construction, deployment, and management of an SoS. The various component sub-systems in an SoS environment are often concerned with distinct domains; are developed by different stake-holders under different circumstances and time; provide distinct functionalities; and are used by different stakeholders, which allow for the existence of conflicting requirements. In this paper, we present a framework to support management of emerging conflicting requirements in an SoS. In particular, we describe an approach to support identification of conflicts between resource-based requirements (i.e. requirements concerned with the consumption of different resources). In order to illustrate and evaluate the work, we use an example of a pilot study of an IoT SoS ecosystem designed to support food security at different levels of granularity, namely individuals, groups, cities, and nations
Easing IoT Development for Novice Programmers Through Code Recipes
The co-existence of various kinds of devices, protocols, architectures, and programming languages make Internet of Things (IoT) systems complex to develop, even for experienced programmers. Perforce, Software Engineering challenges are even more difficult to address by novice programmers. Previous research focused on identifying the most challenging issues that novice programmers experience when developing IoT systems. The results suggested that the integration of heterogeneous software components resulted one of the most painful issues, mainly due to the lack of documentation understandable by inexperienced developers, from both conceptual and technical perspectives. In fact, novice programmers devote a significant effort looking for documentation and code samples willing to understand them conceptually, or in the worst case, at least to make them work. Driven by the research question: "How do the lessons learned by IoT novice programmers can be captured, so they become an asset for other novice developers?", in this paper, we introduce Code Recipes. They consist of summarized and well-defined documentation modules, independent from programming languages or run-time environments, by which non-expert programmers can smoothly become familiar with source code, written by other developers that faced similar issues. Through a use case, we show how Code Recipes are a feasible mechanism to support novice IoT programmers in building their IoT system
Enabling High-Level Application Development in the Internet of Things
International audienceThe sensor networking field is evolving into the Internet of Things~(IoT), owing in large part to the increased availability of consumer sensing devices, including modern smart phones. However, application development in the IoT still remains challenging, since it involves dealing with several related issues, such as lack of proper identification of roles of various stakeholders, as well as lack of suitable (high-level) abstractions to address the large scale and heterogeneity in IoT systems. Although the software engineering community has proposed several approaches to address the above in the general case, existing approaches for IoT application development only cover limited subsets of above mentioned challenges. In this paper, we propose a multi-stage model-driven approach for IoT application development based on a precise definition of the role to be played by each stakeholder involved in the process -- domain expert, application designer, application developer, device developer, and network manager. The abstractions provided to each stakeholder are further customized using the inputs provided in the earlier stages by other stakeholders. We have also implemented code-generation and task-mapping techniques to support our approach. Our initial evaluation based on two realistic scenarios shows that the use of our techniques/framework succeeds in improving productivity in the IoT application development process
Federated Embedded Systems – a review of the literature in related fields
This report is concerned with the vision of smart interconnected objects, a vision that has attracted much attention lately. In this paper, embedded, interconnected, open, and heterogeneous control systems are in focus, formally referred to as Federated Embedded Systems. To place FES into a context, a review of some related research directions is presented. This review includes such concepts as systems of systems, cyber-physical systems, ubiquitous
computing, internet of things, and multi-agent systems. Interestingly, the reviewed fields seem to overlap with each other in an increasing number of ways
- …