EnSEmble 2018- Proceedings of the 1st ACM SIGSOFT International Workshop on Ensemble-Based Software Engineering

Full Citation in the ACM Digital Library

Towards an approach for developing and testing Node-RED IoT systems

Node-RED is a visual tool based on the flow-based programming paradigm and built on NodeJS, which is used for developing IoT systems. In Node-RED, the developer can follow her own personal flavour for wiring devices and online services together, and the same system can be developed in many different ways. Each day, the Node-RED community submits to users novel solutions, and even if there exist frameworks for testing Node-RED flows, they are not supported by a systematic testing technique. Hence, the freedom granted by Node-RED may hinder the understandability of the produced artefacts and the detection of faults.

In this work, we propose a preliminary version of an approach for developing and testing a Node-RED system starting from a UML model of its dynamic and static aspects. A JSON object representing the Node-RED system is generated from the model, while executable Javascript test scripts relying on the Mocha test framework are generated from selected portions of the model, enriched with control points to perform checks over the system properties. We believe that a model produced with our approach may help in the early system validation by detecting faults and deviations from its expected behaviour.

LiquiDADE: a liquid-based distributed agile and adaptive development environment (DADE) multi-device tool

The Agile Manifesto emphasizes value on individuals and interactions over processes and tools, explicitly encouraging face-to-face communication as the most effective way of conveying information and collaboration between Agile teams. Effective collaboration enables teams to develop workable solutions to complex problems. However, in reality, this is continuously challenged by large, distributed teams, forcing communications in different directions. Towards the interest of (Collaborative Networked) Organizations in the adoption of emerging technologies to support communication and collaboration needs of their Distributed Agile and Adaptive Development Environment (DADE), we propose a DADE architecture based on the emerging Liquid Multi-Device Software paradigm. The evaluation of our LiquiDADE prototype showed that our approach is relevant and a valuable enhancement for improving agile development practices.

“Smart Traffic”: an IoT traffic monitoring system based on open source technologies on the cloud

The constantly increasing importance of cloud computing and Internet of Things (IoT) has led to solutions able to integrate heterogenous and diverse systems as well manage big data. This is especially true in Smart City environments with respect to traffic monitoring. Furthermore, cloud computing, and the various technologies around it are quickly becoming a must in the education domain. Unlike traditional education, it promotes the use of computing infrastructures anywhere and at any time, without restrictions. In this paper, we present our experience in using cloud computing technologies for a computing science course on Software Quality, with fourth-year undergraduate students at the University of Alberta, Canada. In particular, the paper illustrates how students have been actively involved in carrying out a real project and coordinated their project work among the class groups thanks to cloud technologies. Project work consisted in building a scalable system for an urban IoT environment of traffic monitoring and routing based on open source technologies and publicly available data from the city of Edmonton, Alberta in Canada.

From big data to smart data: a data quality perspective

Big Data (BD) solutions are designed to better support decision-making processes in order to optimize organizational performance. These BD solutions use company’s core business data, using typically large datasets. However, data that doesn’t meet adequate quality levels will lead to BD solutions that will not produce useful results, and consequently may not be used to make adequate business decisions. For a long time, companies have collected and stored large amounts of data without being able to exploit the advantage of exploring it. Nowadays, and thanks to the Big Data explosion, organizations have begun to recognize the need for estimating the value of their data and, vice-versa, managing data accordingly to their value. This need of managing the Value of data has led to the concept of Smart Data. It not only involves the datasets, but also the set of technologies, tools, processes and methodologies that enable all the Values from the data to the End-users (Business, data scientist, BI…). Consequently, Smart data is data actionable. We discovered that data quality is one of the most important issues when it comes to “smartizing” data. In this paper, we introduce a methodology to make data smarter, taking as a reference point, the quality level of the data itself.