{'fraction_non_alphanumeric': 0.015993907083015995, 'fraction_numerical': 0.0, 'mean_word_length': 5.704081632653061, '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}}
Building families of languages for model-driven system development

The Model Driven Architecture (MDA) is an ambitious vision that relies upon a variety of flexible, intuitive, semantically rich modelling languages. In order for models to be integrated and transformed between such potentially disparate languages, the languages themselves must be integrated. This motivates the notion of a ’family of languages’, a concept that plays an important role in the MDA vision, but is often too vaguely defined in associated literature. This paper motivates the need for families of languages within MDA, and illustrates how there are multiple ways of interpreting and implementing modelling language families. A set of criteria is presented which illustrates the various considerations involved when constructing families of languages along with the inherent trade-off between those considerations. The paper then provides a brief exploration of a number of metamodelling mechanisms that can be used and combined in the construction of language families, and these are evaluated against the criteria presented earlier. Finally some overall guidelines for constructing language families is presented, which demonstrates the importance of clarifying the requirements before building and integrating modelling languages.