AUI(ID:5777/aui001)Language to assist the development of "plastic" interactive software People: References: In 1999, David Thevenin and Joëlle Coutaz outlined a framework and research agenda that introduced the notion of user interface plasticity [17]. Plasticity addresses the requirement that an interactive system be accessed from a variety of physical devices including "dumb" terminals, personal computers and handheld computers. The desire is to specify the interactive system once while preserving its usability across the various physical environments, and at the same time minimizing development and maintenance costs. A plastic interactive system is one that adapts to a wide range of user interface styles. As consumer computing devices with varied display and input characteristics become more common, the need for plastic interactive software becomes more desirable. The AUI language was designed for specifying plastic interactive systems. The concrete, platform and environment, characteristics of a user interface are factored out, leaving the abstract interaction to be specified in the AUI language. Concrete user interface styles are bound to the AUI to complete the interactive system. The intent is for the interaction semantics to be described by the AUI language, and yet allow user interface designers the freedom to attach usable, platform specific, interfaces with minimal additional effort. The AUI language is based on a model that considers an interactive system to be composed of a concrete user interface (CUI), an abstract user interface (AUI) and a functional core (computation) (cf. Figure 1). The CUI addresses issues such as input events and display updates. The AUI describes the logical elements of a user interface, the attributes of these elements and their structural relations. In addition, an AUI program describes the interaction between input, output and computation as a set of rules, or equations, that transform the logical structure of the user interface using pattern matching and function application. The computation, or functional core, implements the application semantics. Multiple CUI’s may be defined for one AUI specification. Each CUI implements a different user interface style for a particular computing platform or environment. The binding of the abstract AUI description to concrete user interface characteristics, such as input events, display updates and toolbox directives is maintained as a separate activity, and as such is intended to address issues of user interface ergonomics. The separation of abstract and concrete user interface concerns simplifies the expression and evolution of the interaction relation and facilities a wide range of concrete user interface styles. The goal of this paper is to describe the AUI language and a prototype implementation of an AUI compiler and runtime environment. The next section describes a simple interactive system using the AUI language to provide an overview of the approach. Section 3 describes the syntax and semantics of the AUI language in more detail, focusing on the language features that make AUI unique from similar functional languages. Section 4 describes a more complete example of using the AUI language for a simple drawing editor. Section 5 describes a version of the AUI compiler and runtime kernel that was implemented on the Apple Macintosh to demonstrate the feasibility of using the AUI approach to develop interactive systems. Section 6 describes related work, and Section 7 concludes the paper with a description of future work. An appendix of the AUI language syntax is also provided. in 35th Annual Hawaii International Conference on System Sciences (HICSS'02)-Volume 9 January 07 - 10, 2002 Big Island, Hawaii view details |