Benchmarx 2.0: A Benchmark for Concurrent Model Synchronisation Approaches

Published in Proceedings of the ACM/IEEE 27th International Conference on Model Driven Engineering Languages and Systems, 2024

DOI: 10.1145/3652620.3688217

Download .bib-File

Abstract

Being able to maintain the consistency between various different, but related models is an important enabler for model-based software engineering. Research on bidirectional transformations (bx) addresses this issue and has resulted in various and diverse formal foundations, approaches, tools, and application scenarios. In order to understand and compare different bx approaches, we have developed benchmarx, a benchmarking framework specifically for bx. Up until now, however, benchmarx has been limited to one-sided model synchronisation tasks, where only one of two related models can be changed at a time.As the more general case of concurrent model synchronisation is crucial for many practical applications of bx, we propose in this paper an extension to our bx benchmarking framework to support concurrent model synchronisation tasks, where two related models can both be changed concurrently and must then be synchronised to restore consistency. To evaluate our new extensions we present an update of an existing benchmarx example, families-to-persons, to include new test cases requiring concurrent synchronisation. We discuss some of the challenges involved in defining such a benchmark including handling conflicts, defining the expected behavior of the bx tool under test, and providing bx tools with enough freedom to reject some of the changes to either model. We also present a solution to the updated families-to-persons benchmarx example implemented using BXtend as a bx tool.