{'fraction_non_alphanumeric': 0.01708706265256306, 'fraction_numerical': 0.0, 'mean_word_length': 5.439790575916231, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
A Synchronizing Technique for Syntactic Model-Code Round-Trip Engineering

The introduction of UML class diagrams has not raised the abstraction level of development to the extent that was intended: class diagrams are only the visual representations of source class skeletons implemented in a programming language. To improve the productivity, domain-specific languages are applied, which cover a narrow domain, and their high abstraction makes use of the domain experts easier. The simultaneous evolution of the source code and the software models causes the loss of synchronization. Round-tripping the domain-specific models is not supported by model-driven development tools, because the abstraction gap between the models and the generated code prevents the use of general approaches. However, developers should have the opportunity of choosing between the artifacts that are more efficient for applying the modifications. This paper introduces how different tools achieve the preservation of manually written code while the model is evolving. In contrast, we present our approach that allows the customization of the generated code. The abstraction gap is closed by performing model transformations and an incremental merge.