Corresponding author: Jean-Paul Arcangeli ( jean-paul.arcangeli@irit.fr ) © Sylvie Trouilhet, Jean-Paul Arcangeli, Jean-Michel Bruel, Maroun Koussaifi. This is an open access article distributed under the terms of the Creative Commons Attribution License (CC BY-ND 4.0). This license allows reusers to copy and distribute the material in any medium or format in unadapted form only, and only so long as attribution is given to the creator. The license allows for commercial use. Citation:
Trouilhet S, Arcangeli J-P, Bruel J-M, Koussaifi M (2021) Model-Driven Engineering for End-Users in the Loop in Smart Ambient Systems. JUCS - Journal of Universal Computer Science 27(7): 755-773. https://doi.org/10.3897/jucs.70515 |
At the heart of cyber-physical and ambient systems, the user should permanently benefit from applications adapted to the situation and her/his needs. To do this, she/he must be able to configure her/his software environment and be supported as much as possible in that task. To this end, an intelligent “engine” assembles software components that are present in the ambient environment at the time and makes unanticipated applications emerge. The problem is to put the user “in the loop”, i.e., provide adapted and intelligible descriptions of the emerging applications, and present them so that the user can accept, modify or reject them. Besides, user feedback must be collected to feed the engine’s learning process. Our approach relies on Model-Driven Engineering (MDE). However, differently from the regular use of MDE tools and techniques by engineers to develop software and generate code, our focus is on end-users. Models of component assemblies are represented and made editable for them. Based on a metamodel that supports modeling and de- scription of component-based applications, a user interface provides multi-faceted representations of the emerging applications and captures user feedback. Our solution relies on several domain- specific languages and a transformation process, based on the established MDE tools (Gemoc studio, Eclipse Modeling Framework, EcoreTools, Sirius, Acceleo). It works in conjunction with the intelligent engine that builds the emerging applications and to which it provides learning data.