Recent Work in Model-Based User Interfaces

Slides:



Advertisements
Similar presentations
Jeffrey Nichols User Interface Software & Technology (UIST) October 30, 2002 Slide #0 Jeffrey Nichols and Brad A. Myers Carnegie Mellon University October.
Advertisements

Jeffrey Nichols Conference on Human Factors in Computing Systems (CHI) April 8, 2003 Slide #0 Jeffrey Nichols and Brad A. Myers Carnegie Mellon University.
© 2011 Delmar, Cengage Learning Chapter 1 Getting Started with Dreamweaver.
Siebel Web Services Siebel Web Services March, From
Chapter 10: Designing Databases
Learning the Basics – Lesson 1
Chapter 11 user support. Issues –different types of support at different times –implementation and presentation both important –all need careful design.
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
Continuing Work in Model-Based User Interfaces Jeffrey Nichols : Advanced User Interface Software.
Project 1 Introduction to HTML.
Lecture 13: Continuing Work in Model-Based User Interfaces Brad Myers Slides originally authored by Jeffrey Nichols, : Advanced User Interface.
Xyleme A Dynamic Warehouse for XML Data of the Web.
Document no. PUC–02000 Pittsburgh Digital Greenhouse Peter Lucas, MAYA Design Brad Myers, Carnegie Mellon University
Jeffrey Nichols 0 International Workshop on Smart Appliances and Wearable Computing May 19, 2003 Studying The Use of Handhelds To Control Smart Appliances.
1st Project Introduction to HTML.
Chapter ONE Introduction to HTML.
1 Introduction to Web Development. Web Basics The Web consists of computers on the Internet connected to each other in a specific way Used in all levels.
Chapter 1 Introduction to HTML, XHTML, and CSS
The Design Discipline.
Why Analysis Process Refer to earlier chapters Models what the system will do makes it easier for understanding no environment considered (hence, system.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
WorkPlace Pro Utilities.
CPSC 203 Introduction to Computers T59 & T64 By Jie (Jeff) Gao.
Introducing Dreamweaver MX 2004
Tutorial 1 Getting Started with Adobe Dreamweaver CS3
Tutorial 1: Getting Started with Adobe Dreamweaver CS4.
1 ICAS’2008 – Gosier, March 16-21, 2008 A Transformational Approach for Pattern-based Design of User Interfaces Costin Pribeanu Jean Vanderdonckt National.
CHAPTER FOUR COMPUTER SOFTWARE.
Java Software Solutions Lewis and Loftus Chapter 10 1 Copyright 1997 by John Lewis and William Loftus. All rights reserved. Graphical User Interfaces --
HTML, XHTML, and CSS Sixth Edition Chapter 1 Introduction to HTML, XHTML, and CSS.
Automating Database Processing Chapter 6. Chapter Introduction Design and implement user-friendly menu – Called navigation form Macros – Automate repetitive.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
Chapter 6 SAS ® OLAP Cube Studio. Section 6.1 SAS OLAP Cube Studio Architecture.
 The World Wide Web is a collection of electronic documents linked together like a spider web.  These documents are stored on computers called servers.
SEG3120 User Interfaces Design and Implementation
Microsoft Office 2007 Intermediate© 2008 Pearson Prentice Hall1 PowerPoint Presentation to Accompany GO! With Microsoft ® Office 2007 Intermediate Chapter.
1 AutoCAD Electrical 2008 What’s New Name Company AutoCAD Electrical 2008 What’s New AMS CAD Solutions
User Support Chapter 8. Overview Assumption/IDEALLY: If a system is properly design, it should be completely of ease to use, thus user will require little.
Chapter 12: Design Phase n 12.1 Design and Abstraction n 12.2 Action-Oriented Design n 12.3 Data Flow Analysis n Data Flow Analysis Example n
Model-Driven Engineering of Behaviors in User Interfaces Efrem Mbaki & Jean Vanderdonckt Université catholique de Louvain (UCL) Louvain School of Management.
Systems Analysis and Design in a Changing World, Fourth Edition
Access Forms and Queries. Entering Data in Your Table  You can add data to your table in Datasheet view, by typing in the columns and rows.  This.
Towards a Pattern Language for User Interface Design
.  A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate.  Taken advantage of Spring’s multi layer injection.
Chap#11 What is User Support?
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
Design and Implementation of a Rationale-Based Analysis Tool (RAT) Diploma thesis from Timo Wolf Design and Realization of a Tool for Linking Source Code.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
Chapter 1 Getting Started With Dreamweaver. Exploring the Dreamweaver Workspace The Dreamweaver workspace is where you can find all the tools to create.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Stanford University 1 CADUI' June FUNDP Namur The Mecano Project Angel R. Puerta Knowledge Systems Laboratory Stanford University Stanford.
LECTURE 18 16/11/15. MAKING THE INTERFACE CONSISTENT Consistency is one way to develop and reinforce the users conceptual model of applications and give.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
The Structure of the User Interface Lecture # 8 1 Gabriel Spitz.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
Presentation.
CPSC 203 Introduction to Computers T97 By Jie (Jeff) Gao.
Chapter 1 Introduction to HTML, XHTML, and CSS HTML5 & CSS 7 th Edition.
21 Copyright © 2009, Oracle. All rights reserved. Working with Oracle Business Intelligence Answers.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
Software Architecture for Multimodal Interactive Systems : Voice-enabled Graphical Notebook.
Design Evaluation Overview Introduction Model for Interface Design Evaluation Types of Evaluation –Conceptual Design –Usability –Learning Outcome.
Tutorial 1 Getting Started with Adobe Dreamweaver CS5.
HTML PROJECT #1 Project 1 Introduction to HTML. HTML Project 1: Introduction to HTML 2 Project Objectives 1.Describe the Internet and its associated key.
Working in the Forms Developer Environment
Practical Office 2007 Chapter 10
Project 1 Introduction to HTML.
Getting Started with Dreamweaver
Class Meeting 5 February 10, 2009
Chapter 11 user support.
Presentation transcript:

Recent Work in Model-Based User Interfaces Jeffrey Nichols Lecture #13 05-830: Advanced User Interface Software

Last time… Model-based User Interfaces Automatic generation of the user interface so the programmer won’t do a bad job. Dialog boxes are relatively easy to generate The full application interface is hard to generate Abstract descriptions of the interface can be longer and harder to generate than implementing the interface itself. Interface builders turned out to be easier…

But work continued… Focus Changed A Couple Projects of Interest: Task models were leveraged more Design assistant aspect emphasized A Couple Projects of Interest: Trident Mecano & Mobi-D FUSE AIDE

TRIDENT An interface design assistant Interesting features: Vanderdonckt, J., Knowledge-Based Systems for Automated User Interface Generation: the TRIDENT Experience, Technical Report RP-95-010, Facultes Universitaires Notre-Dame de la Paix, Institut d’Informatique, Namur, 1995. An interface design assistant Interesting features: Knowledge-based approach (i.e. expert system) Choosing Widgets Doing Layout Use of Task Models Decides where separate windows are needed

Choosing Widgets Used a decision tree Chose abstract interaction objects (AIO) Similar to Brad’s Interactor Model Lots of parameters Continuous? Capacity Etc.

Choosing Layout Uses Right/Bottom Strategy Next component is placed to the right or below the current component Decision made by heuristics or designer

Right/Bottom Strategy

Windows from Task Models Basically used for constructing wizard-like interfaces What information should be on the first screen, etc.

What are task models, anyway? Description of the process a user takes to reach a goal in a specific domain Typically have hierarchical structure Introduced by GOMS Number of different task modeling languages GOMS UAN ConcurTaskTrees

ConcurTaskTrees Developed by Fabio Paterno et al. for the design of user interfaces Goals Graphical for easy interpretation Concurrent model for representing UI tasks Different task types Represent all tasks, including those performed by the system

Task Building Process Three phases Temporal Relationships Hierarchically decompose the tasks Identify the temporal relationships among tasks at same level Identify what objects are manipulated and what actions can be performed on them, and assign these to the tasks as appropriate. Temporal Relationships T1 [] T2 - Choice T1 ||| T2 - Interleaving T1 |[]| T2 - Synchronization T1 >> T2 - Enabling T1 []>> T2 - Enabling with Information Passing T1 [> T2 - Deactivation T1* - Iteration T1(n) - Finite Iteration [T1] - Optional T – Recursion

Example Note: First example is ambiguous

Another Example

Building/Editing Task Models Tools are available ConcurTaskTrees Environment http://giove.cnuce.cnr.it/ctte.html or Google for “ConcurTaskTrees”

Recent Systems XIML – eXtensible Interface Markup Language XWeb Developed by the makers of Mecano/Mobi-D and Trident Kitchen-sink language for modeling any part of the interface design process XWeb Now known as ICE – Interactive Computing Everywhere ICrafter A system for integrating user interfaces from multiple devices Personal Universal Controller My research…

XIML eXtensible Interface Markup Language Designed by RedWhale Software Intended to support the full lifecycle of interface building

XIML Requirements Central Repository of Data For one user interface or many Comprehensive Lifecycle Support Abstract and Concrete Elements Relational Support Underlying Technology XIML must be independent of particular tools

Models in XIML An XIML document can contain any type of model Task Domain User Presentation Dialog

Example Use for XIML Multi-platform interface development

Status of XIML Used by RedWhale Software to drive their interface consultant business They have developed many tools move interaction data to/from XIML Leverage data in XIML to better understand various interfaces Automate parts of the interface design process

Model-Based Interfaces for Control XWeb ICrafter PUC

XWeb Work by Dan Olsen and group at BYU Premise: “Pervasive computing cannot succeed if every device must be accompanied by its own interactive software and hardware…What is needed is a universal interactive service protocol to which any compliant interactive client can connect and access any service.” The web comes close to solving this problem, but is interactively insufficient.

XWeb Protocols Based upon the architecture of the web XTP Interaction Protocol Server-side data has a tree structure Structured Data in XML URLs for location of objects xweb://my.site/games/chess/3/@winner xweb://automate.home/lights/livingroom/ xweb://automate.home/lights/familyroom/-1

XWeb & XTP CHANGE message (similar to GET in HTTP) Sequence of editing operations to apply to a sub-tree Set an attribute’s value Delete an attribute Change some child object to a new value Insert a new child object Move a subtree to a new location Copy a subtree to a new location

Platform Independent Interfaces Two models are specified DataView – The attributes of the service XView – A mapping of the attributes into high-level “interactors” Interactors are somewhat like abstract interaction objects Atomic Numeric Time Date Enumeration Text Links Aggregation Group List

XWeb Example DataView

XWeb Example XView

XWeb Example Interface

Other XWeb Details Has simple approach for adjusting to different screen sizes Shrink portions of the interface Add additional columns of widgets Also capable of generating speech interfaces Based on a tree traversal approach like Universal Speech Interfaces

ICrafter Part of the Interactive Workspaces research project at Stanford Main objective: “to allow users of interactive workspaces to flexibly interact with services” Contribution An intelligent infrastructure to find services, aggregate them into a single interface, and generate an interface for the aggregate service. In practice, much of the interface generation is done by hand though automatic generation is supported.

ICrafter Architecture

How is aggregation accomplished? High-level service interfaces (programmatic) Data Producer Data Consumer The Interface Manager has pattern generators Recognize patterns in the services used Generate interfaces for these patterns This means that unique functionality will not be available in the aggregate interface

Automatic Generation in ICrafter

Manual Generation in ICrafter

Personal Universal Controller My work with Brad Problem: Appliance interfaces are too complex and too idiosyncratic. Solution: Separate the interface from the appliance and use a device with a richer interface to control the appliance: PDA, mobile phone, etc.

Idea Control existing appliances Generate multi-modal interfaces Specifications Control Feedback Control existing appliances Generate multi-modal interfaces

- Interface Generators Architecture - Appliance Adaptors - Comm. Protocol - Specification Lang. - Interface Generators Architecture XML-based

Language Design Approach Create reference interfaces AIWA Shelf Stereo AT&T Telephone/Answering Machine Test interfaces with subjects Users twice as fast and made half the errors with reference interfaces as compared to manufacturers’ interfaces Analyze interfaces for functional information Be careful of saying “same manufacturer’s appliances”

Language Elements State Variables and Commands Label Information Represent functions of appliance State variables have types Boolean, Enumeration, Integer, String, etc. Variables sufficient for most functions but not all “seek” button on a Radio Label Information One label not suitable everywhere The optimal label length changes with screen size Speech interfaces may benefit from pronunciation and text-to-speech information

Language Elements, cont. Group Tree Specify organization of functions We use n-ary tree with variables or commands at leaves Need a place for things like “no specific layout information” related work or new high-level spec slide

Language Elements, cont. Dependency Information Formulas that specify when a variable or command is active in terms of other state variables Equals, Greater Than, Less Than Linked with logical operators (AND, OR) For example, <and> <equals state=“PowerState”>true</equals> <equals state=“RadioBand”>AM</equals> </and>

Interface Generators Generators for Two Modalities Graphical Speech Implemented for PocketPC in Java 1.1 Uses dependency information to generate panel structure of interface Speech Implemented using Universal Speech Interface (USI) techniques [Rosenfeld 2001] Uses dependency information to disambiguate shortcut words (e.g. “play”) and resolve pre-conditions for a requested function (e.g. “play CD”)

Graphical Interface Generator Focuses on panel structure of user interface Small groups of controls have basic layouts Complexity comes from structure of groups Structure can be inferred from dependency info! decomposed

Inferring Structure Find sets of variables that are “mutually exclusive” Every variable in a set will never be active at the same time as a variable in another set Create structure with sets, using overlapping panels

Choosing Panel Types a) b) c) full screen tabbed partial screen

Making the Interface Concrete Finish conceptual layout Choose controls (decision tree) Choose row layouts (one column, two column, etc.) Allocate space Examine panel contents and choose sizes Instantiate and place controls

Generating Speech Interfaces Automatically build USI tree from dependencies Allows verbal navigation of functional groups Automatically generate grammar for parser Phrases for query and control “What is playmode?” “Set playmode to play” “play” Automatically generate language model and pronunciation for recognizer