Current research projects

D3-CPS: Distributed Software Technologies for Developing & Managing Dependable Cyber-Physical Systems (01/2018 to 12/2021)

In response to strong industry demand, the D3-CPS project aims to drastically rethink the way that distributed CPS applications are developed and managed. The overall objective of D3-CPS is to support software businesses in exploiting the potential of CPS. Our goal is to lower the boundary of CPS development by drastically reducing the effort required to develop and manage (i.e. coordinate, monitor, and reconfigure) distributed CPS applications. However, we do also want to guarantee that distributed CPS applications execute within safe boundaries of time (e.g. responsiveness) and quality (e.g. consistent and accurate operation). 

INTiMALS: Intelligent Modernisation Assistance for Legacy Software (01/2018 to 12/2020)

The goal of this Innoviris-funded TeamUp project is to research and deploy novel pattern mining algorithms in an industrial prototype of an intelligent modernisation assistant for legacy software systems. The assistant pro-actively recommends software engineers source code modernisation actions by comparing their current development efforts with insights gained by treating source code repositories as data . The assistant draws its intelligence from continuously mining for previously unknown patterns in the current state and structure of the system’s source code (programming idioms, coding conventions, library usage protocols) and in changes made to this code (systematic edits, repetitive changes). The proposed modernisation actions appear increasingly informed as the recommendation assistant uncovers and refines more patterns in the code, version and change repositories it mines. The success of the modernisation assistant hinges on the quality of the pattern mining algorithms it incorporates and their ability to improve their results by learning from their interaction with the software engineers.


SECO-Assist: Automated Assistance for Developing Software in Ecosystems of the Future (01/2018 to 12/2021)

Software ecosystems are the most promising avenue for organising the software needs of the digital era. SECO-ASSIST aims to realise a scientific breakthrough to nurture the ecosystems of the future, by providing novel software recommendation techniques that address the resilience, evolvability, heterogeneity, and social interaction. To achieve this, the partners of this FWO-FNRS funded EOS project will combine their expertise in social networks (UMONS), software testing (UAntwerpen), software reuse (VUB) and database evolution (UNamur). 

FLAMENCO (01/2016 to 12/2019)

The goal of FLAMENCO is to build and valorise an open reusable and reconfigurable citizen observatory platform for Flanders. Through this platform, (ICT-agnostic) stakeholders themselves can instantiate new citizen observatories for the particular application area they have in mind. Web services and mobile apps are generated accordingly. Data gathered involves sensorial data (e.g., noise levels, physical activity) as well as behavioural data (e.g., tolerance for delays in public transportation or sensitivity to public safety). In this scalable approach stakeholders see their concerns translated into procedures for successful participatory campaigning without having to rely on platform engineers. Only in this way can we move away from research-oriented deployments to the full-fledged adoption of citizen observatories as a societally and scientifically relevant method. 

MetaConc (Towards Meta-Level Engineering and Tooling for Complex Concurrent Systems) (01/2016 to 12/2018)

MetaConc is a FWO joint project in collaboration with the Institute for System Software at the Johannes Kepler Universität Linz (JKU) in Austria. It aims to explore language support that captures the interaction amongst concurrency models in order to deliver the concepts needed to support tools. In particular, we investigate both language implementation support to capture essential properties of concurrency models (research led by JKU's group), and debugging support built on top of such substrate to assist developers in finding errors, and improving program comprehension of complex concurrent systems (research led by SOFT ).

Tearless: Secure Coordination of Rich Internet Application Tiers (01/2016 to 12/2019)

There is an increasing demand for web-based services that offer collaborative and off-line functionality, and this at unparalleled global scales. Realizing these qualities requires distributing previously centralized application logic and state both vertically and horizontally. Both forms of distribution bring about the essential complexity of maintaining the consistency and safeguarding the security of replicated or shared application assets, along with the accidental complexity of reconciling a myriad of heterogenous tier-specific technology. The Tearless project therefore envisions a future in which multi-tier web applications are developed, tested and maintained as a single artefact that spans all tiers. This tierless programming should relieve developers of distribution, consistency and security concerns. We will not pursue this vision through a new and potentially esoteric programming language. Instead, we will pursue a two-pronged solution of enabling technologies & development tooling. This enables the gradual incorporation of our technology in existing code, and maximizes valorization opportunities for different stakeholders.

SeCloud (09/2015 to 08/2018)

Confidentiality and integrity of data is paramount to applications that are hosted in the cloud and to applications that interact with other cloud services. The SeCLoud project therefore investigates a security-first and holistic approach to engineering such cloud- based applications. To this end, its 11 academic partners cover security from the complementary perspectives of secure architecture (e.g., patterns), secure infrastructure (e.g., encryption), secure programming technology (e.g., vulnerability checking) and secure processes (e.g., requirements engineering and legal aspects). VUB-SOFT leads the secure programming technology perspective, to which we bring our expertise in dynamic and static analysis of JavaScript programs. 

SPICES: 'Scalable processing and mining of complex events for security-analytics'. (02/2015 to 01/2018)

The overall goal of SPICES is to design an open reusable platform specifically targeted towards security process monitoring, based on the notion of complex event processing (CEP). Within SOFT we envision (1) the design of a reactive CEP security language (2) The design of a change language which identifies new threats and attacks while the system is running; and (3) the implementation of a multi-pattern optimizer on top of a scalable (i.e. multicore), distributed (i.e. cloud) execution platform to manage the processing of a vast amount of events.

SMILE-IT: Stable Multi-agent learning for networks (01/2015 to 12/2018)

Agent-driven networks, consisting of many collaborating and competing (human and machine) agents, can be found in a wide range of problem areas, such as telecommu- nications, smart grids, smart cities, traffic guidance, and flight control. As the complexity and size of these networks increases, automated techniques for configuring, guiding, and managing them become increasingly important, in order to limit operational costs and guarantee optimality. The SMILE-IT project aims to develop such an automated network management framework, based on multi-agent reinforcement learning (MARL) techniques.

Foundations of programming models for next-generation computing platforms (01/2014 to 12/2018)

This strategic research plan has the goal to focus on fundamental research topics to improve the scientific output of the Software Languages Lab. A large part of the research conducted at the Software Languages Lab can be divided over three domains: Ambient Oriented Programming, Parallel Programming and Cloud Computing. The research project aims to simultaneously improve the research in these three domains based on the high degree of congruency between them.  Concretely, this proposal will focus on three fundamental questions that apply over the three domains. First, how to harness concurrency and orchestrate the interaction between a large number of computations. Second, how to control the data distribution between a large number of concurrently executing processes. Finally, how to development formally grounded tools to assist the programmer to detect and fix bugs early on in the development process. In order to successfully answer these questions formal methods such as type systems, contracts, symbolic execution and model verification will be applied.