▹Model-based software and systems engineering
▹Theory of modeling and simulation, multi-paradigm modeling, multi-semantics, multi-abstraction
▹Machine learning and AI-aided software and systems engineering
▹Software quality assurance
▹Elements of methodical innovation
Nowadays engineered systems have reached a previously unprecedented complexity. Systems are becoming faster, safer, more autonomous, reliable and durable. To cope with this ever increasing complexity, engineering is best approach through models. A model is an abstraction of the reality, and as such, it allows its users to focus only on the most essential aspects of the problem at hand.
Model-based and model-driven techniques treat models as first-class citizens in engineering processes, allowing engineers to reason about a set of distinguished properties of the system before it gets realized. Modeling tools, to this end, provide engineers with the required facilities to derive their many models from reality, and use them in various analysis and simulation activities.
One specific source of the complexity of modern systems is their inherent heterogeneity. We used to build steam engines, now we are building autonomous drones. It is not the task of one single discipline to deliver a system anymore. Rather, it takes a coordinated, collaborative effort from experts of different domains.
Collaborative modeling aims to augment model-based and model-driven techniques with collaborative facilities. My research focuses on some (overlapping) paradigms supporting this aim, most importantly: multi-paradigm modeling, multi-view modeling, and inconsistency management in multi-model settings.
Multi-paradigm modeling (MPM) advocates modeling every aspect of the system at the most appropriate level(s) of abstraction, using the most appropriate formalism(s). Domain-specific knowledge can be naturally channeled into engineering processes based on the MPM paradigm. Therefore, MPM is especially suitable for handling the heterogeneity aspect of modern systems engineering. Have a look at the work of the Modelling, Simulation and Design Lab (MSDL), where MPM originates from, and of which I had been a member of previously.
My research often manifests in software tools. Below is a selection of the important ones.
lowkey is a low-level and transparent framework for real-time collaborative framework for multi-level and multi-view modeling. At the bottom layer of the architecture of lowkey, conflict-free replicated data types (CRDT) take care of preventing inconsistencies before they happen. The physical metamodel built on top of these data types allows for defining arbitrary numbers of linguistic models, which are in a type-instance relationship with each other.
The framework is available as a Python implementation from its GitHub repository.
PROxIMA is a tool in which process modeling meets inconsistency management. It supports reasoning about inconsistencies between the models in heterogeneous collaborative modeling settings. Based on the FTG+PM formalism, the tool provides various facilities for modeling the engineering process along with the properties of the engineered system; and optimizing the process for multiple objectives, most notably: minimal transit time and fully managed inconsistency hotspots. More details in my PhD thesis.
The tool is available as an Eclipse implementation. More details, including the update site, on the official website: proximatools.org and the GitHub organization.
Between 2012-2016 I was a contributor to the VIATRA project. VIATRA is a scalable reactive model transformation framework for the Eclipse platform. My core contributions covered the reactive transformation module, and based on this, the complex event processing module, VIATRA-CEP.
VIATRA-CEP is the prototype implementation of our streaming model transformation concept.