About
83
Publications
24,136
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
2,479
Citations
Introduction
Additional affiliations
Education
October 2007 - September 2010
Publications
Publications (83)
The Internet of Things (IoT) is a challenging combination of distribution and heterogeneity. A number of software engineering solutions address those challenges in isolation, but few solutions tackle them in combination, which poses a set of concrete challenges. The ThingML (Internet of Things Modeling Language) approach attempts to address those c...
Today's society increasingly depends on software systems deployed in large companies, banks, airports, and so on. These systems must be available 24/7 and continuously adapt to varying environmental conditions and requirements. Such dynamically adaptive systems exhibit degrees of variability that depend on user needs and runtime fluctuations in the...
Since software systems need to be continuously avail- able under varying conditions, their ability to evolve at runtime is increasingly seen as one key issue. Mod- ern programming frameworks already provide support for dynamic adaptations. However the high-variability of features in Dynamic Adaptive Systems (DAS) in- troduces an explosion of possib...
Automated diversity is a promising mean of increasing the security of software systems. However, current automated diversity techniques operate at the bottom of the software stack (operating system and compiler), yielding a limited amount of diversity. We present a novel Model-Driven Engineering approach to the diversification of communicating syst...
In the landscape of cloud computing, the competition between providers has led to an ever growing number of cloud solutions offered to consumers. The ability to run and manage multi-cloud systems (i.e., applications on multiple clouds) allows exploiting the peculiarities of each cloud solution and hence optimising the performance, availability, and...
In this paper, we present a novel fault injection system called ChaosOrca for system calls in containerized applications. ChaosOrca aims at evaluating a given application’s self-protection capability with respect to system call errors. The unique feature of ChaosOrca is that it conducts experiments under production-like workload without instrumenti...
In this paper, we present a novel fault injection framework for system call invocation errors, called Phoebe. Phoebe is unique as follows; First, Phoebe enables developers to have full observability of system call invocations. Second, Phoebe generates error models that are realistic in the sense that they mimic errors that naturally happen in produ...
In this paper we present the results of a feature importance analysis of a chemical sulphonation process. The task consists of predicting the neutralization number (NT), which is a metric that characterizes the product quality of active detergents. The prediction is based on a dataset of environmental measurements, sampled from an industrial chemic...
Nowadays, the continuous improvement and automation of industrial processes has become a key factor in many fields, and in the chemical industry, it is no exception. This translates into a more efficient use of resources, reduced production time, output of higher quality and reduced waste. Given the complexity of today's industrial processes, it be...
In this work, we propose the use of a genetic-algorithm-based attack against machine learning classifiers with the aim of `stealing' users' biometric actigraphy profiles from health related sensor data. The target classification model uses daily actigraphy patterns for user identification. The biometric profiles are modeled as what we call imperson...
In this paper, we present a novel fault injection framework called Phoebe for reliability analysis with respect to system call invocation errors. First, Phoebe enables developers to have full observability of system call invocations. Second, Phoebe generates error models that are realistic in the sense that they resemble errors that naturally happe...
Docker is a virtualization technique heavily used in industry to build cloud-based systems. In this context, observability means that it is hard for engineers to get timely and accurate information about the running state in production, due to scale and virtualization. In this paper, we present a novel approach, called POBS, to automatically improv...
As software systems become more dynamic, it is critical to ensure that they can withstand changes in their execution environment. To this end, we developed CAMP, an open-source tool that tests software systems in multiple environments. Provided with a template deployment and a description of what can change in the execution environment, CAMP automa...
Software systems contain resilience code to handle those failures and unexpected events happening in production. It is essential for developers to understand and assess the resilience of their systems. Chaos engineering is a technology that aims at assessing resilience and uncovering weaknesses by actively injecting perturbations in production. In...
Nowadays, the continuous improvement and automation of industrial processes has become a key factor in many fields, and in the chemical industry, it is no exception. This translates into a more efficient use of resources, reduced production time, output of higher quality and reduced waste. Given the complexity of today's industrial processes, it be...
The use of inertial sensors such as accelerometers and gyroscopes, which are now often embedded in many wearable devices, has gained attention for their applicability in user authentication applications as an alternative to PINs, passwords, biometric signatures, etc. Previous works have shown that it is possible to authenticate users based on fine-...
In this paper, we present a novel fault injection system called ChaosOrca for system calls in containerized applications. ChaosOrca aims at evaluating a given application's self-protection capability with respect to system call errors. The unique feature of ChaosOrca is that it conducts experiments under production-like workload without instrumenti...
The use of inertial sensors such as accelerometers and gyroscopes, which are now often embedded in many wearable devices, has gained attention for their applicability in user authentication applications as an alternative to PINs, passwords, biometric signatures, etc. Previous works have shown that it is possible to authenticate users based on fine-...
Software systems contain resilience code to handle those failures and unexpected events happening in production. It is essential for developers to understand and assess the resilience of their systems. Chaos engineering is a technology that aims at assessing resilience and uncovering weaknesses by actively injecting perturbations in production. In...
Distributed adaptive systems are composed of federated entities offering remote inspection and reconfiguration abilities. This is often realized using a MAPE-K loop, which constantly evaluates system and environmental parameters and derives corrective actions if necessary. The OpenStack Watcher project uses such a loop to implement resource optimiz...
One of the selling points of Model-Driven Software Engineering (MDSE) is the increase in productivity offered by automatically generating code from models. However, the practical adoption of code generation remains relatively slow and limited to niche applications. Tooling issues are often pointed out but more fundamentally, experience shows that:...
Advances in the Internet of Things (IoT) domain thrusts home automation into the spotlight. Home automation is a heterogeneous realm with various and often not compatible technologies. As any not standardized area, this realm is always disrupted by new, emerging technologies and standards. Home is a dynamic environment which constantly grows and ev...
Smart Cyber Physical Systems (sCPS) are composed by a highly heterogeneous interconnection of platforms and devices offering a wide diversity of capabilities ranging from cloud server with virtually unlimited resources down to microcontrollers with only a few KB of RAM. This paper motivates the fact that no single software framework or software eng...
Modern industrial control applications gradually take advantage of well-defined state-of-the-art distributed software architecture principles and framework designs, including corresponding modeling techniques. Moreover, the advent of this new era goes way beyond current modeling tool-chains via the application of mature meta-model driven software e...
The Arrowhead project aims to address the technical and applicative issues associated with cooperative automation based on Service Oriented Architectures. The problems of developing such kind of systems are mainly due to the lack of adequate development and service documentation methodologies, which would ease the burden of reusing services on diff...
Models@run.time provides semantically rich reflection layers enabling intelligent systems to reason about themselves and their surrounding context. Most reasoning processes require not only to explore the current state, but also the past history to take sustainable decisions e.g. to avoid oscillating between states. Models@run.time and model-driven...
Intelligent software systems continuously analyze their surrounding
environment and accordingly adapt their internal state. Depending on the
criticality index of the situation, the system should dynamically focus or
widen its analysis and reasoning scope. A naive -why have less when you can
have more- approach would consist in systematically sampli...
Modern software applications are distributed and often operate in dynamic contexts, where requirements, assumptions about the environment, and usage profiles continuously change. These changes are difficult to predict and to anticipate at design time. The running software system should thus be able to react on its own, by dynamically adapting its b...
A Sense-Compute-Control(SCC) application involves interactions among a large number of heterogeneous devices that can sense the physical world by obtaining information from sensors, compute the captured information, and control the physical world by triggering actions using actuators. SCC applications are pervasive and found in many application dom...
The creation of Domain Specific Languages(DSL) counts as one of the main
goals in the field of Model-Driven Software Engineering (MDSE). The main
purpose of these DSLs is to facilitate the manipulation of domain specific
concepts, by providing developers with specific tools for their domain of
expertise. A natural approach to create DSLs is to reus...
Intelligent systems continuously analyze their context to autonomously take corrective actions. Building a proper knowledge representation of the context is the key to take adequate actions. This requires numerous and complex data models, for example formalized as ontologies or meta-models. As these systems evolve in a dynamic context, reasoning pr...
Modern software systems evolve in a highly dynamic and open environment, where their supporting platforms and infrastructures can change on demand. Designing and operating holistic controllers able to leverage the adaptation capabilities of the complete software stack is a complex task, as it is no longer possible to foresee all possible environmen...
Dynamically adaptive systems (DAS) enable the continuous design and adaptation of complex software systems, but their main focus is limited to the application itself rather than the underlying platform and infrastructure. Cloud computing, in contrast, enables the management of the complete software stack, but it lacks integration with software engi...
Many tasks in Model-Driven Engineering (MDE) involve cross-cutting model modifications that are bound to certain conditions. These transformation tasks may affect numerous model elements and appear in different forms, such as refactoring, model completions or aspect-oriented model weaving. Although the operations at the heart of these tasks are dom...
Many problems facing software engineers demand ‘optimal’ performance in multiple dimensions, such as computational overhead and development overhead. For these complex problems, designing an optimal solution based upon a single programming paradigm is not feasible. A more appropriate solution is to create a solution framework that embraces multiple...
The 7th edition of the workshop Models@run.time was held at the 15th International Conference on Model Driven Engineering Languages and Systems (MODELS). The workshop took place in the city of Innsbruck, Austria, on the 2nd of October 2012. The workshop was organised by Nelly Bencomo, Gordon Blair, Sebas-tian Götz, Brice Morin and Bernhard Rumpe. I...
Models@Runtime aims at taming the complexity of software dynamic adaptation by pushing further the idea of reflection and con-sidering the reflection layer as a first-class modeling space. A natural approach to Models@Runtime is to use MDE techniques, in particular those based on the Eclipse Modeling Framework. EMF provides facilities for building...
Interoperability is a key challenge in modern systems composed of heterogeneous and rapidly changing networked sub-systems. Because such systems evolve over time, automated run-time solutions appear to be the best way for interoperability with flexibility and scalability. This paper presents, as an enabler for components interoperability, a model-d...
The Cloud-computing paradigm was considered as a revolution. Thanks to the abstraction of computing resources "in the clouds" this paradigm provides "anything" as a service, on a pay-as-you-go basis. Unfortunately, there is no reference software that one can use to properly compare a cloud approach against others. We propose the SENSAPP platform to...
Cyber Physical Systems (CPS) offer new ways for people to interact with computing systems: every thing now inte- grates computing power that can be leveraged to provide safety, assistance, guidance or simply comfort to users. CPS are long living and pervasive systems that intensively rely on microcontrollers and low power CPUs, integrated into buil...
Modern software systems need to be continuously available under varying conditions. Their ability to dynamically adapt to their execution context is thus increasingly seen as a key to their success. Recently, many approaches were proposed to design and support the execution of Dynamically Adaptive Systems (DAS). However, the ability of a DAS to evo...
Coordinating the configurations of Services, Orchestrations, Execution Platform and Infrastructure layers in a Service-Based environment is a significant challenge for software industry. In recent years, it has become even more difficult, because infrastructure solutions such as AmazonEC2, Cloudstack or RackSpace have increasingly rich capabilities...
The main objective of the REMICS project is to specify, develop and evaluate a tool-supported model-driven methodology for migrating legacy applications to interoperable service cloud platforms. The migration process consists of understanding the legacy system in terms of its architecture and functions, designing a new SOA application that provides...
Modern software systems need to be available 24/7 and continuously adapt according to varying environment conditions and requirements. Such systems, called adaptive systems, are expected to be long-lived and able to undertake unforeseen adaptations with little or no human intervention. Examples of domains where adaptive systems are increasingly nec...
User interface adaptations can be performed at runtime to dynamically reflect any change of context. Complex user interfaces and contexts can lead to the combinatorial explosion of the number of possible adaptations. Thus, dynamic adaptations come across the issue of adapting user interfaces in a reasonable time-slot with limited resources. In this...
This paper reports the progress on a previous work in which we described our experience in using the high-level models provided by the DiVA Framework to design the self- adaptive behavior of autonomous robots. The main objective of this work is to discuss how these models can be translated into a run-time self-adaptive architecture for resource- co...
With the emergence of Internet of Things (IoT), many things which typically used to be isolated or operated in small local networks, will be interconnected through the Internet. One main challenge to tackle in IoT is efficient management of communication between things, since things can be very different in terms of available resources, size and co...
In a near future it is expected that most things we rely on in our everyday life will contain sensors and electronic based information, have computing power, run embedded software and connect to networks. A multitude of heterogeneous things will operate in a highly dynamic environment and will collaborate with other connected systems and things to...
With the B2B data exchange becoming ubiquitous nowadays, automating as much as possible the exchange of data between collaborative enterprise systems is a key requirement for ensuring agile interoperability and scalability in B2B collaborations. Semantic differences and inconsistencies between conceptual models of the exchanged B2B data hinder agil...
As data exchange and model transformation become ubiquitous nowadays, it is a key requirement to improve interoperability of enterprise systems at the semantic level. Many approaches in Model-driven Architecture (MDA) and Model-driven Interoperability (MDI) emerge to fulfil the above requirement. However, most of them still demand significant user...
Today's society increasingly depends on software systems subject to varying environmental conditions imposing that they continuously adapt. A dy-namic adaptation reconfigures a running system from a consistent state into another consistent state. To achieve this goal, a reconfiguration consists in executing a set of actions leading from source to t...
Robotic systems are becoming increasingly complex, as their tasks and working environments become ever richer. As a result, there is an urgent need to provide robots with self-awareness and self-adaptation capabilities that allow them to autonomously deal, among other things, with software and hardware failures, changes in the environment, or inter...
Aspect-Oriented Modeling techniques make it possible to use model transformation to achieve advanced separation of concerns
within models. Applying aspects that introduce model elements into a base model in the context of large, potentially composite
models is nevertheless tricky: when a pointcut model matches several join points within the base mo...
La dépendance croissante de la société à l'égard des systèmes logiciels nécessite de concevoir des logiciels robustes, adaptatifs et disponibles sans interruption. De tels systèmes proposent souvent de nombreux points de variation avec de nombreuses variantes, conduisant à une explosion combinatoire du nombre des configurations. Il devient rapideme...
There is a growing interest in leveraging Service Oriented Architectures (SOA) in domains such as home automation, automotive, mobile phones or e-Health. With the basic idea (supported in e.g. OSGi) that components provide services, it makes it possible to smoothly integrate the Internet of Things (IoT) with the Internet of Services (IoS). The para...
Domain-Specific Modeling Languages (DSMLs) describe the concepts of a particular domain and their relationships, in a meta-model. From a given DSML, it is possible to describe a wide range of different models. These models often share a common base and vary on some parts. Current approaches tend to distinguish the variability language from the DSML...
Security is a key-challenge for software engineering, especially when considering access control and software evolutions. No satisfying solution exists for maintaining the alignment of access control policies with the business logic. Current implementations of access control rely on the separation between the policy and the application code. In pra...
Since software systems need to be continuously available under varying conditions, their ability to evolve at runtime is increasingly seen as one key issue. Modern programming frameworks already provide support for dynamic adaptations. However the high-variability of features in Dynamically Adaptive Systems (DAS) introduces an explosion of possible...
Since software systems need to be continuously available, their ability to evolve at runtime is a key issue. The emergence of models@runtime, combined with Aspect-Oriented Modeling techniques, is a promising approach to tame the complexity of adaptive systems. However, with no support for aspect unweaving, these approaches are not agile enough in a...
This paper describes a demo which leverages models at designtime and runtime in the context of adaptive system, some details about the underlying approach as well as some implementation details. Our tool allows deploying and dynamically reconfiguring component-based applications, in a guided and safe way, based on the OSGi platform. It combines ref...
The increasing need for continuously available software systems has raised two key-issues: self-adaptation and design evolution. The former one requires software systems to monitor their execution platform and automatically adapt their configuration and/or architecture to adjust their quality of service (optimization, fault-handling). The later one...