{'fraction_non_alphanumeric': 0.02034587995930824, 'fraction_numerical': 0.0, 'mean_word_length': 5.188679245283019, '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}}
Dynamic Semantics of UML State Machines: A Metamodeling Perspective

A clear understanding of the dynamic semantics of UML State Machines is essential for a large and varied audience such as final users of the language, CASE tool builders or method engineers. Our proposal aims at achieving such an understanding by suggesting a different metamodeling approach. This approach is based on a two-layer architecture which puts forward the explicit distinction between the generic behavior represented in a dynamic model (Base Layer) and the behavior represented in relation to a particular situation (Snapshot Layer). Using this architecture as a starting point, a metamodel of UML State Machines is proposed, which consists basically of two UML class diagrams (one diagram for each layer of the architecture) and two maps. These maps represent, respectively, the determination of the initial status and the process performed by a run-to-completion step as defined in the UML semantics.