From Modeling Languages to Query Languages: A Generative Approach
Sprache des Titels:
The utilization of models and approaches, such as MDE, in engineering fields grows in popularity, because models provide useful means for the data-exchange, testing, validation and code generation. Domain experts prefer to use DSMLs over GPMLs. GPMLs can be hard to understand, since they require a sufficient education in computer science-related fields and may not be easily applicable for the modeling of domain-specific artefacts. In contrast, DSMLs are tailored towards particular domains and can thus be easily understood and applied by domain-experts. In the process of the ongoing digitalization models constantly grow in size and complexity. Thus, the need for querying models, which are usually created with DSMLs, grows as well, whereat model querying is not only important for information retrieval, but can also provide powerful means for the testing and validation of large systems. Although many well-established model querying approaches already exist, they are usually meant to be used by IT-experts and ignore the need of users from utterly different engineering fields for easy-to-use query languages, who lack the necessary IT know-how. Besides that, users, who lack the knowledge about the DSML's metamodels, may run into metamodel-related pitfalls. In order to meet these needs, an EMF-based prototype has been developed in the course of this thesis based on Wieringa's Engineering Cycle , that generates the model querying language MQL automatically from the Ecore metamodel of a chosen DSML and provides means for the specification and execution of MQL queries. This approach should provide query languages that resemble the original DSMLs as much as possible, by reusing and modifying the DSML's original elements. This prototype also generates an XText grammar specification that will be used for writing MQL queries. A model-to-text generator translates MQL queries into equivalent Viatra VQL queries, which are then executed by the MQL's Viatra-based query engine. Hence, MQL firstly tries to be easily usable by domain experts and secondly helps users, who lack knowledge about the DSML's metamodel, by ``guiding'' them through the DSML's syntactical features. A literature survey has yielded only one related work that can be considered as relatively comparable to the approach of this thesis. This result emphasizes the novelty of this approach and the relatively little amount of attention that has been paid to the addressed domain expert's needs so far. The MQL prototype has been evaluated in terms of query execution time and usability against Viatra VQL. The evaluation of the execution times shows, that MQL's Viatra VQL code generator needs to be optimized, in order to allow MQL to benefit from the rapidness of its underlying Viatra VQL query engine. Furthermore, MQL achieved higher scores in the Usability evaluation than Viatra VQL regarding the effectiveness, efficiency and satisfiability.