The main concept of model-driven engineering (MDE) is to simplify the process of designing complex systems by working on a higher abstraction level. Designing systems are very challenging since there could be multiple design candidates for the same problem with different properties or configurations, for example, different cost, fault tolerance, and performance. Therefore, one of today’s greatest challenges of MDE is to determine which design candidate can be called “better” than others, as well as how to optimize our system to function more efficiently by refinement techniques.
One approach to these problems is the VIATRA-DSE framework, which searches the state space for possible design state solutions. Since DSE supports a great number of algorithms and strategies to search the design space, it is very challenging to choose the best strategy to find solutions. Therefore, I have created a configuration management for the framework by creating a domain-specific language.
By using the domain-specific language, we can define DSE problems and specify how many times each problem must be executed. It is possible to create different configurations for each DSE problem; therefore, the configuration management can help the developer choose the highest performance strategy for a certain problem. The output of the configuration management is a csv file that contains the execution time and average execution time for each execution of a DSE problem.
The configuration management also simplifies the creation of DSE problems by providing an easy-to-understand syntax which does not require full understanding of the DSE framework and the java programing language.