=Paper=
{{Paper
|id=Vol-1255/paper8
|storemode=property
|title=From Pen-and-Paper Sketches to Prototypes: The Advanced Interaction Design Environment
|pdfUrl=https://ceur-ws.org/Vol-1255/paper8.pdf
|volume=Vol-1255
|dblpUrl=https://dblp.org/rec/conf/models/Storrle14b
}}
==From Pen-and-Paper Sketches to Prototypes: The Advanced Interaction Design Environment==
From Pen-and-Paper Sketches to Prototypes: The Advanced Interaction Design Environment Harald Störrle Dept. of Applied Mathematics and Computer Science Technical University of Denmark (DTU), hsto@dtu.dk Abstract. Pen and paper is still the best tool for sketching GUIs. How- ever, sketches cannot be executed, at best we have facilitated or animated scenarios. The Advanced User Interaction Environment facilitates turn- ing hand-drawn sketches into executable prototypes. 1 Introduction Graphical user interfaces (GUIs) have two important, independent aspects: ap- pearance and affordances (i.e., visuals vs. behavior). Existing techniques focus mostly on visual appearances, providing tools for a limited scope of visual fidelity (e.g., from GUI-builders at the high end via drawing tools such as Photoshop, Visio or PowerPoint, to sketching tools like Balsamic at the low end). The sim- plest possible tool for creating sketches of the visual appearance of a UI is, of course, pen and paper (PaP). It turns out, that PaP is hard to beat in terms of usability and cost/benefit ratio; thus it is our gold standard of drawing. On the other hand, there is the behavioral aspect of GUIs. Most tools com- pletely abstract from this aspect, restricting designers to simple mock-ups of individual scenarios made from hyperlinked pictures, or manually facilitated pa- per prototypes. A notable exception is Flowella (see http://www.youtube.com/ watch?v=xmuJwKYjiW0). An early approach of combining rough sketches with interactive executability (to a degree) is the Silk/Denim line of work by Landay et al. [3,2], where users would input a sketch with a digital pen. Both Flowella and Silk/Denim are limited to very small UIs as the complexity of designs grows dramatically with the number of behavioral variants and details added. AIDE aspires to overcome this limitation by a number of mechanisms, most notably using hierarchical state machines with concurrent substates, and syn- tactic layers.1 Also, AIDE allows inputting UI designs by PaP, thus allowing to include diverse audiences in the creation process and reducing overhead and ex- traneous load caused by inadequate tooling. AIDE allows to complement rough sketches (i.e., PaP input) by more elaborate input in the form of XUL (XML User Interface Language, see https://developer.mozilla.org/en/XUL). PaP and XUL may be mixed freely, allowing scalable fidelity. AIDE provides the following advantages. 1 See https://www.youtube.com/watch?v=vbMblOWTRko&feature=youtube.be or the AIDE homepage www.compute.dtu.dk/~hsto/tools.html for a demo. – Inclusive Technology We all learn to use pen and paper from early child- hood, so it is safe to assume everyone has sufficient dexterity in sketching; artistic skills are not required. In contrast, operating a computer-based tool often demands substantial expertise and/or training, which end users and do- main experts may lack. Thus, using simple pen-and-paper sketches as AIDE does allows us to include virtually everybody in the UI design process. – Continuous Workflow Graphic designers appreciate sketching tools: their low viscosity makes them ideal for exploring the design space (cf. [1,7,8]). However, exploration has to turn into engineering eventually, at which point developers take over from designers and visionary sketches give way to formal models and code. Often, the overall development process is greatly affected by this discontinuity of people, cultures, and methods. AIDE supports a con- tinuous workflow integrating initial sketching with subsequent elaboration. – Comprehensive Design While it is relatively easy to specify the appear- ance of an interface by a drawing, specifying its behavior is much more difficult (cf. [6]). In fact, the only way to completely describe arbitrary complex interface behaviors is by programming them. Obviously, integrat- ing drawings and code in a harmonious way is difficult, further disrupting the interface design workflow. Most people are either good at graphic de- sign or at programming, but rarely at both. Storyboards only offer a partial solution, since they allow to specify a very limited degree of behavior only (basically only linear sequences, see [5, p. 105]). So, in order to create com- prehensive interface designs, we need a way to integrate both aspects of an interface, appearance and behavior. – Scalable Abstraction Even small UIs may offer a large number of af- fordances, all of which act together to create the overall user experience. Capturing them in a prototype is expensive, time consuming, and inhibit- ing change. Capturing them in a more abstract specification will lead to a bloated and/or fragmented design that is difficult to reintegrate, maintain, and communicate. Establishing and maintaining consistency is an arduous and complex task [4]. So, we need a way of managing the complexity of large interface designs in such a way, that neither the clarity of the initial vision, nor the details of the interactions get lost. 2 Example Consider an example Fig. 1. It shows a small portion of an interface design from a teaching example, the Library Management System (LMS). This toy case study is about searching for media in a library, lending them, prolonging, them, and and so on. Fig. 1 shows an interface design for the process of issuing a new reader card. The numbers in red dots are not part of the notation but have been added to improve the presentation here. First, a dialog for entering some data appears. It contains a text field, two groups of radio buttons with two choices each, and two buttons to proceed and abort. The user inputs a reader’s name, selects a few options, and eventually A Sketch & Explore create initial design as a pen-and-paper storyboard explore design space by e.g. group dynamic exercise elicit interface requirements by e.g. task analysis or reverse engineering B Digitize & Import digitize paper dialog sketches by scanner or camera batch import digitized dialogs automatically annotate transitions with triggers, guards, and effects manually WED LMS: Issue New Reader Card Issue New Reader Card Confirm: Issue Card C You are about to issue a new [input ok] reader card for. Elaborate Appearance Reader Proceed transform sketch into appealing graphics Abort Proceed / process request First Card incorporate appearance guidelines [bad input] Replacement Card layout of WED Pick up at library Mail to home address H* Abort Error: Card Can Not Be Issued D No new reader card will be issued because of . Elaborate Behavior ESC add layers of transitions for event types Auto complete Retry Proceed / lock add guards and effects (e.g. JavaScript) Clear window Current Fees add menues and annotations Help beep! E Integrate Parts & Alternatives combine several WEDs into one using model merge techniques F Generate & Validate generate XUL code for prototype usability test on prototype formal consistency checking expert walkthrough of UI design Fig. 1. Stages in the UI development life cycle using WEDs and AIDE: Starting from a traditional pen-and-paper wallpaper prototype, subsequent steps of elaboration yield a prototype with executable XUL code. Note that XUL-elements, clickable areas, and transitions have to be annotated manually in the current version of AIDE. pressed “Proceed”. If the data validation is successful, the user must acknowl- edges or aborts. If the process is aborted or the validation was not successful, the user may either revise the inputs or terminate the whole process. Using the right mouse button on the window “Issue New Reader Card” will open a pop-up menu with four options. States UI widgets like text boxes or buttons are represented as simple states. Groups of widgets and complete dialogs are modeled as composite states. As a default, only one widget or dialog can be active at any time, which in UML maps to sequential composite states. In order to achieve different behavior, concurrent composite may be used. Not all states need be visible in a design. For instance, grouping radio buttons together can be achieved by an invisible compound state. The same applies for layout elements such as vertical boxes. Triggers Positioning a pointer over a WED element is interpreted as putting the focus on that element. Technically, the corresponding state configuration tree is activated. Any user events issued subsequently will be interpreted by that tree, bottom up. For instance, positioning the mouse pointer over the “Abort” button and pushing the left mouse button (a) issues the event single left click in the state “IssueNewReaderCard.Abort” and triggers the transition emanating that state. Likewise, moving the pointer over “Issue New Reader Card” and pressing the Escape key (b) will reset the corresponding state. Any (user) actions the UI affords may be used as triggers. Guards Transitions may carry a guard that enforces the respective condi- tion to be true before the transition is taken. Guards may refer to environment variables that may be used to represent a hidden UI state such as a mode. Effects Then, the effect of the transition (modeling a UI action) is executed and its target state is entered. Effects may be described by plain text (a), code snippets, invocation of library functions, or maybe visualized by an icon (b). Probably the most common effects are opening a new window (a), closing one (b), or opening a modal dialog (c). Entering States When entering a composite state C for the first time, the substate to be entered is determined by the initial state. Reentering C will reset its state configuration unless a history state is added to C, which restores the state configuration in effect at the time of exiting C. Exit Points (and and Entry Points) help achieving a modular design (this is regular UML 2.2 syntax). Exiting a state (or state machine) automatically exits all sub states, i.e., corresponding windows are closed by reaching a final node. Secondary Notation Annotations and comment boxes may be used freely; they are represented as UML PseudoStates. There is no semantic difference between UML 2 state machines and a UI design in this form: every construct in a UI design may be mapped to a UML state machine construct. These mappings are typically very straightforward, but have to be added manually in the current version of AIDE. SM LMS: Issue New Reader Card Confirm: Issue New Card Issue New Reader Card [credentials ok] /spawnWindow() Abort Confirm mouse(l) / mouse(l) mouse(l) issueRC() First Card Proceed / switchWindow() key(tab) key(tab) [credentials not ok] /spawnWindow() Error: Card Can Not Be Issued Replacement Card Reader mouse(l) / mouse(l) Retry Ok spawnWindow() /beep() Pick up at library Abort key(tab) mouse(l) / key(tab) closeWindow() Context Menu H* Mail to home address mouse(r) / openModalWindow() Auto complete Clear mouse(l) / closeModalWindow() Current Status key(esc) Help Fig. 2. This UML state machine is yielded by stripping all appearance cues and elab- orating effects to procedure calls. 3 The AIDE Tool The Advanced Interaction Design Environment (AIDE) is a highly modular platform independent direct interaction tool set for creating WEDs, refining and elaborating them in a methodical fashion, supporting distributed concurrent group work, and generating working prototypes from WEDs. AIDE has been under development since 2006, with 25 students at Innsbruck University, Munich University, and the Technical University of Denmark contributing a total of approximately 10,000 work hours to it. Step B in Fig. 1 is actually a screenshot of the AIDE tool. AIDE is created using pure Java, using Piccolo2D, jEdit, JGoodies Looks, the Tango Iconset, VLDocking, and JAXB for persistency. AIDE follows a strict separation of logic and presentation. Extensibility of AIDE is ensured by a car- tridge mechanism that encapsulates the visual appearance of elements and func- tions associated with them. Cartridges may be dynamically loaded or unloaded. Apart from the basic cartridges of UML state machines and annotations, there are currently cartridges for the XML User Interface Language (XUL), and for importing hand-drawn storyboards. XUL is used e.g., for defining the UIs of Mozilla projects such as Firefox and Thunderbird. AIDE provides XUL export and integrated simulation. Finally, AIDE also offers unbounded Undo/Redo, user definable roll-back points, tear-off-menus to support very large screens, a locator map, sophisticated zoom and scrolling functions, and multiple views on elements. References 1. Bill Buxton. Sketching User Experiences: Getting the Design Right and the Right Design. Morgan Kaufmann, 2007. 2. James A. Landay and Brad A. Myers. Interactive Sketching for the Early Stages of User Interface Design. Technical Report CMU-HCII-94-104, Carnegie Mellon University, July 1994. 3. James A. Landay and Brad A. Myers. Sketching Interfaces: Toward More Human Interface Design. IEEE Computer, 34(3), March 2001. 4. Francisco J. Lucas, Fernando Molina, and Ambrosio Toval. A systematic review of UML model consistency management. Inf. Softw. Technol., 51(12):1631–1645, December 2009. 5. Scott McCloud. Understanding Comics: The Invisible Art. HarperPerennial, 1993. 6. Brad A. Myers, Sun Young Park, Yoko Nakano, Greg Mueller, and Andrew J. Ko. How Designers Design and Program Interactive Behaviors. In Paolo Bottoni, Mary Beth Rosson, and Mark Minas, editors, Proc. IEEE Symp. Visual Languages and humand Centric Computing (VL/HCC’08), pages 177–184. IEEE Press, 2008. 7. Mark W. Newman and James A. Landay. Sitemaps, Storyboards, and Specifications: a Sketch of Web Site Design Practice. In Proc. 3rd Conf. Designing Interactive Systems: Processes, Practices, Methods, and Techniques (DIS’00), pages 263–274. ACM, 2000. 8. Y.Y. Wong. Rough and Ready Prototypes: Lessons from Graphic Design. In SIG Computer Human Interaction (SIGCHI’92), page 685, 1992.