A Multi-Paradigm Modelling Approach for Engineering Model Debugging Environments
12 March 2018
Campus Middelheim, G.005 - Middelheimlaan 1 - 2020 Antwerpen (route: UAntwerpen, Campus Middelheim
Simon Van Mierlo
PhD defence Simon Van Mierlo - Faculty of Science, Department of Mathematics and Computer Science
The complexity of engineered systems is continuously increasing. This complexity stems from the demand on their autonomy, safety, and intercommunication. To successfully develop such systems, methods to design, analyse and deploy such systems must evolve as well. Such methods should regard the system as a whole, including its mechanical and software components, as well as its interaction with the environment. Model-Driven Engineering (MDE) is a method for developing systems, in which models that describe the system’s structure and behaviour take a central role. Engineers build models (abstractions) of the different parts of the system in (graphical) modelling languages. These languages allow engineers to focus on what the system must do, not how it has to do it. Within MDE, Multi-Paradigm Modelling (MPM) advocates modelling every relevant aspect of the system explicitly, at the most appropriate level(s) of abstraction, using the most appropriate formalism(s), with processes explicitly modelled. This enables domain experts to develop their systems using the concepts they are most familiar with. But, while modelling and simulation tools allow to manage the complexity of the developed systems, they do not guarantee that models created using modelling languages are without failures. A failure occurs when the design of the system does not satisfy one of its properties, specified in the requirements. Once a failure is observed, the defect that causes it needs to be found. In the domain of programming languages, these debugging techniques are well-researched, but for MDE and MPM, they are often non-existent or implemented in an ad-hoc way. This thesis extends the state-of-the-art in the engineering of modelling languages and their associated tooling, making it possible to add debugging operations to any modelling language. To achieve this, three contributions are made:
- a process to instrument the simulator for a language with debugging operations;
- an architecture, which connects the simulator with a (graphical) debugging environment, in which the domain expert can debug the system using the abstractions of the language;
- a workflow that enables tool developers to add debugging operations to their modelling and simulation tool(s).
The techniques are validated by applying them to a set of modelling languages whose semantic properties differ. This demonstrates that the techniques are generic and can be applied to other modelling languages. Additionally, two advanced techniques, live modelling and omniscient debugging are implemented for modelling languages.