Coordination with Reo

I have been working with the Reo coordination language during most of my PhD in CWI, Amsterdam. I contributed to the existing tool suit, mainly to develop a runtime engine for the Reo language based on the Actor model and on constraint solving techniques. I also compared the expressive power with respect to other coordination models, and formally developed a subset of Reo that could be distributed.

Constraint solving

I use constraint solving techniques to improve performance and scalability of Reo connectors, and to reason about variability models with integer and boolean attributes in the context of the HATS project. I have tried several solvers, such as SAT4J, Choco, Z3, and JaCoP. In recent experiments I use custom predicates to allow arbitrary Java code to influence the solver in a controlled manner.

Variability

I am involved in the specification of the ABS language, in particular in how software variability is achieved in the ABS language. We follow the same principles advocated by software product lines engineering, using the delta-modelling approach. Different software products are build by selecting different valid combinations of desired features; each selection triggers a set of transformations to a core product. Other work related to software product lines includes new compositional approaches to feature models, and the study of special Petri nets parameterised in a (dynamic) selection of features. More recently I have been investigating the dynamic evolution of software product lines in the context of ABS.

Component/binding models for embedded devices

I am involved in the development of systems for Wireless Sensor Networks (WSN) and Internet of Things (IoT), within the iMinds-DistriNet group in KU Leuven. In particular, I am investigating how to compose components in embedded devices, and how to efficiently collect and manage the properties and connections in a running system.