Model-driven engineering is an important and increasingly prevalent area of software engineering. While models were mostly used for documentation purposes in the past, nowadays, they are used for a variety of other tasks, like requirements specification, code generation or simulation. The more common approach to displaying and editing models is via a graphical interface, but they can be described and edited via a textual representation as well. Both approaches have their advantages and disadvantages. The main advantage of the graphical approach is that it gives an easily understandable overview of the model which is comprehensible even for non-developers. However, editing – and even reading – the models does not scale well with model size and complexity. The textual approach focuses on details instead of a comprehensible overview. Editing the models via their textual representations is usually faster and more efficient, especially in the case of large and complex models. This is especially true if there is an efficient and easy-to-use development environment available. The editing process in this case is very similar to traditional source code-based development, which further increases developer productivity.
Visual Modeling and Transformation System (VMTS) is a meta-modeling and model processing framework developed in the Department of Automation and Applied Informatics. In this thesis, I present a textual grammar and an integrated development environment (IDE) that can be used to describe and display the textual representations of VMTS models, and edit the models via these representations. Similarly to development environments used in traditional source code-based development, the IDE contains several convenience features, like error handling or automatic code completion to further increase the efficiency of the editing process. The models can also be edited outside of the textual editor as well by other means. Thus, we are also presenting a method for keeping the original format of the text if the model is modified outside of the IDE. The presented method is based on the text-based comparison of the models. During the comparison, we have to distinguish between differences that concern only the format of the text and differences that also concern the contents of the model.