R. Bill, P. Neubauer, M. Wimmer: Virtual Textual Model Composition for Supporting Versioning and Aspect-Orientation, 10th ACM SIGPLAN International Conference on Software Language Engineering (SLE), Vancouver, Canada; 23.10.2017 - 24.10.2017; in Proceedings of the 2017 ACM SIGPLAN International Conference on Software Language Engineering, SLE 2017, Vancouver, Canada, October 23-24, 2017, pages 67 - 78. pdf


The maintenance of modern systems often requires developers to perform complex and error-prone cognitive tasks, which are caused by the obscurity, redundancy, and irrelevancy of code, distracting from essential maintenance tasks. Typical maintenance scenarios include multiple branches of code in repositories, which involves dealing with branch-interdependent changes, and aspects in aspect-oriented development, which requires in-depth knowledge of behavior-interdependent changes. Thus, merging branched files as well as validating the behavior of statically composed code requires developers to conduct exhaustive individual introspection.

In this work we present VirtualEdit for associative, commutative, and invertible model composition. It allows simultaneous editing of multiple model versions or variants through dynamically derived virtual models. We implemented the approach in terms of an open-source framework that enables multi-version editing and aspect-orientation by selectively focusing on specific parts of code, which are significant for a particular engineering task.

The VirtualEdit framework is evaluated based on its application to the most popular publicly available Xtext-based languages. Our results indicate that VirtualEdit can be applied to existing languages with reasonably low effort.

Virtual Textual Model Composition for Supporting Versioning and Aspect-Orientation