{'fraction_non_alphanumeric': 0.032506415739948676, 'fraction_numerical': 0.0, 'mean_word_length': 5.428571428571429, '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}}
Model-driven engineering: raising the abstraction level through domain-specific modeling

Model-Driven Engineering (MDE) has emerged as a promising paradigm in software engineering by emphasizing the use of models not just for documentation and communication purposes, but as first-class artifacts to be transformed into other work products (e.g., other models, source code, and test scripts). MDE supports full-scale round-trip engineering, from idea inception to operationalization. Historically, models have been developed using general-purpose modeling languages, such as the Unified Modeling Language (UML). A more recent trend is to use domain-specific modeling languages (DSMLs), which assist domain experts in working within their own problem space without being concerned about technical details of the solution space (e.g., programming languages and middleware). DSMLs also provide an accessible way to communicate with stakeholders who are not familiar with the fast changing technologies. This introductory tutorial will present a summary of the areas represented by MDE and offer some insight into the benefits of using DSMLs in both research and teaching.