AUI(ID:5777/aui001)


Language to assist the development of "plastic" interactive software


People:
References:
  • Schneider, K.; Cordy, J.; "AUI: A Programming Language for Developing Plastic Interactive Software" p. 281 view details Abstract: With the proliferation of consumer computing devices with varied display and input characteristics, it has become desirable to develop interactive systems that are usable across multiple physical environments without requiring costly redesign and reimplementation. Interactive software that easily adapts to new computer systems and environments while maintaining its usability is said to be 'plastic'. This paper introduces the AUI programming language that was designed specifically to support the development of plastic interactive software. An AUI program describes the abstract interaction of the user interface, independent of a particular physical device or concrete interaction style. The features of the AUI language are presented here with examples of how they are used to specify user interaction. As well, this paper describes a prototype implementation that uses function application, pattern matching and lazy evaluation techniques to process the abstract descriptions of the display and user actions. External link: Online copy Extract: Introduction
    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