{'fraction_non_alphanumeric': 0.017487046632124352, 'fraction_numerical': 0.0, 'mean_word_length': 5.03515625, '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}}
Using modeling to put HCI design patterns to work

It is recognised that creating effective, usable interactive systems is a highly non-trivial task. One approach to supporting developers and designers is through the use of HCI design patterns this is now recognised as an effective way to produce usable systems. Design patterns capture the key elements of a design, providing a library of approaches that are known to work, though most design patterns are at best only semi-formal, providing outline structures that are filled in with discursive text and/or images. In this paper we present a UML/OCL model of design patterns that captures not only the characteristics of the system but also its interface representation, and provide examples of how it can be used. This approach is shown to be flexible and very powerful. We focus on modelling a design pattern at a high level of abstraction, producing a template, or metamodel representation, from which specific UML instantiations can be refined. This approach immediately captures the relationships between similar designs, showing the connections between related conceptual elements. The approach goes further, however; from a specific UML model, we can derive code that implements the relevant design pattern. The role of OCL is to represent constraints on the model, allowing us to define more tightly the behaviour and representational aspects of the design pattern. This paper discusses the reasoning behind the approach and our initial results in modeling design patterns using UML.