Systematic Generation of Abstract User Interfaces

An abstract user interface is defined according the Cameleon Reference Framework as a user interface supporting an interactive task abstracted from its implementation, independently of any target computing platform and interaction modality. While an abstract user interface could be specified in isolation, it could also be produced from various models such as a task model, a domain model, or a
combination of both, possibly based on information describing the context of use (i.e., the user, the platform, and the environment). This paper presents a general-purpose algorithm that systematically generates all potential abstract user interfaces from a task model as candidates that could then be refined in two ways: removing irrelevant candidates based on constraints imposed by the temporal operators and grouping or ungrouping candidates according to constraints imposed by the context of use. A model-driven engineering environment has been developed that applies this general-purpose algorithm with multiple levels of refinement ranging from no contextual consideration to full context consideration. This algorithm is exemplified on a some sample interactive application to be executed in various contexts of use, such as different categories of users using different platforms for the same task.