Lecture 14: Model-based tools: Creating the UI Automatically Brad Myers 05-830 Advanced User Interface Software 1© 2013 - Brad Myers.

Slides:



Advertisements
Similar presentations
Chapter 11 Designing the User Interface
Advertisements

Recent Work in Model-Based User Interfaces
Software Development Languages and Environments. Programming languages High level languages are problem orientated contain many English words are easier.
Jacob Adams Topic Paper Department of Computer Science Southern Illinois University Edwardsville.
SECOND MIDTERM REVIEW CS 580 Human Computer Interaction.
Continuing Work in Model-Based User Interfaces Jeffrey Nichols : Advanced User Interface Software.
Lecture 12: Model-based tools: Creating the UI Automatically Brad Myers Advanced User Interface Software 1.
Lecture 13: Continuing Work in Model-Based User Interfaces Brad Myers Slides originally authored by Jeffrey Nichols, : Advanced User Interface.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
1 / 31 CS 425/625 Software Engineering User Interface Design Based on Chapter 15 of the textbook [SE-6] Ian Sommerville, Software Engineering, 6 th Ed.,
1 System: Mecano Presenters: Baolinh Le, [Bryce Carder] Course: Knowledge-based User Interfaces Date: April 29, 2003 Model-Based Automated Generation of.
Intelligent User Interfaces Research Group Directed by: Frank Shipman.
User interface design Designing effective interfaces for software systems Objectives To suggest some general design principles for user interface design.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Chapter 13: Designing the User Interface
Matthew J Mattia CSC  Cumbersome Code  Consistent/Predictable design (GUEPs #5, CD’s #10)  Display “proper” amount of information  Including.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 16 Slide 1 User interface design.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Systems Analysis and Design in a Changing World, 6th Edition
Model the User Experience Today:  Detail some Use Cases  Develop a storyboard of the use cases  Sketch mock-ups of the use case's information requirements.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Aurora: A Conceptual Model for Web-content Adaptation to Support the Universal Accessibility of Web-based Services Anita W. Huang, Neel Sundaresan Presented.
1 Shawlands Academy Higher Computing Software Development Unit.
XP 1 HTML: The Language of the Web A Web page is a text file written in a language called Hypertext Markup Language. A markup language is a language that.
Chapter 7 Structuring System Process Requirements
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
Chapter 8: Writing Graphical User Interfaces
1 ICAS’2008 – Gosier, March 16-21, 2008 A Transformational Approach for Pattern-based Design of User Interfaces Costin Pribeanu Jean Vanderdonckt National.
CSC 480 Software Engineering Lecture 19 Nov 11, 2002.
Introduction to MDA (Model Driven Architecture) CYT.
Tutorial 111 The Visual Studio.NET Environment The major differences between Visual Basic 6.0 and Visual Basic.NET are the latter’s support for true object-oriented.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
GUI Widgets Jeff Offutt SWE 432 Design and Implementation of Software for the Web.
Gary MarsdenSlide 1University of Cape Town Human-Computer Interaction - 3 Programmer Support Gary Marsden ( ) July 2002.
Design Rules-Part B Standards and Guidelines
12 Developing a Web Site Section 12.1 Discuss the functions of a Web site Compare and contrast style sheets Apply cascading style sheets (CSS) to a Web.
1 Introduction to Software Engineering Lecture 1.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
Software Architecture
1 Lecture 12: Model-based tools: Creating the UI Automatically Brad Myers Advanced User Interface Software.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
Towards a Pattern Language for User Interface Design
Mir Farooq Ali Computer Science, Virginia Tech May 9, 2003 Building Multi-platform User Interfaces using UIML.
The Software Development Process
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
Human Computer Interaction
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Murielle Florins 1, Francisco Montero Simarro 2, Jean Vanderdonckt 1, Benjamin Michotte 1 1 Université catholique de Louvain 2 Universidad de Castilla-la-Mancha.
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.
Yonglei Tao School of Computing & Info Systems GVSU Ch 7 Design Guidelines.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
1 Lecture 5: Interactive Tools: Prototypers (HyperCard, Director, Visual Basic), Interface Builders Brad Myers Advanced User Interface Software.
UML - Development Process 1 Software Development Process Using UML.
SEESCOASEESCOA SEESCOA Meeting Activities of LUC 9 May 2003.
Chapter – 8 Software Tools.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
1 Design Principles – Part 2 of 3 Learnability Principles Flexibility Principles.
6. (supplemental) User Interface Design. User Interface Design System users often judge a system by its interface rather than its functionality A poorly.
Working in the Forms Developer Environment
Chapter 11 Object-Oriented Design
Prototyping.
Lecture 14: Model-based tools: Creating the UI Automatically
Tools of Software Development
CSc4730/6730 Scientific Visualization
On the notion of Variability in Software Product Lines
Presentation transcript:

Lecture 14: Model-based tools: Creating the UI Automatically Brad Myers Advanced User Interface Software 1© Brad Myers

Schedule of Lectures Everyone OK? See also instructions off the homeworks page Right away: Check to make sure there are 2- 3 articles for each person © Brad Myers2

Model-Based Tools Overview Programmer describes the operation of the system or the user interface in a specification language = the "model". model is a high-level description usually declarative (listing parts and relationships) System automatically creates the interface Uses a low-level toolkit for the widgets 3© Brad Myers

Goals: High-level description of an interface is easier to write than low-level toolkit code Automatic generation may produce better UIs than programmers Allow separation of UI design (embodied in rules) from UI contents (supplied by the programmer) Support dynamic creation of objects define templates or prototypes Increase re-use since design rules shared by multiple applications Tools can reason over the specification to produce extra stuff: Automatic generation of help, undo, etc. Transform interface into different but functionally equivalent interface Enabling and disabling of widgets Enforcement or checking of design guidelines- consistency, completeness Enforces consistency since rules will pick similar objects for similar situations Automatic adjustment to different screen sizes, etc., since rules can take this into account Automatic analysis for quality NGOMSL analysis : GLEAN (Kieras, UIST'95)GLEAN (Kieras, UIST'95) 4© Brad Myers

Overview, cont. Related to the "Declarative" approach discussed in previous lecture but here system has some intelligence or knowledge so less has to be specified by the programmer. Different types: Dialog box creators: Mickey, DON, Jade (lots of others) Representations of the full UI: ITS, UIDE, Humanoid, MasterMind, Newer: (XML-based) ConcurTaskTrees, Xweb, ICrafter, Supple, PUC 5© Brad Myers

Dialog Box Creators Easiest part of the UI to create Given a list of the contents, automatically: 1.choose widgets: specify type of desired input: string = text input field number = slider one-of-many = radio buttons or pop-up options many-of-many = check boxes or checks in a menu commands = menu 6© Brad Myers

Dialog Box Creators, cont. 2.arrange widgets based on look-and-feel guidelines  where OK goes  which commands go in which menus based on good graphic design principles. 3.set variables to reduce the number of callbacks necessary 7© Brad Myers

Example: Mickey Programmer specifies UI by putting special comments in a Pascal file. Uses the Apple Macintosh guidelines Pre-processor to parse the Pascal code and generate the Macintosh resources. Maps Procedures into Menu items. If parameter is one of a standard set, pops up appropriate dialog box or waits for input File to be read, file to be written New point, line or rectangle 8 © Brad Myers

Mickey, cont. Variables: Enumerated types mapped to check lists separated by lines. Sets the variables when changed. Enumerated types with 2 choices mapped to name changes Booleans: single checked items 9© Brad Myers

Jade Brad Vander Zanden and Brad A. Myers, "Automatic, Look-and-Feel Independent Dialog Creation for Graphical User Interfaces," Proceedings SIGCHI'90: Human Factors in Computing Systems. Seattle, WA, April 1-5, pp ACM DL ReferenceACM DL Reference "Judgment-based Automatic Dialog Editor" Given a textual specification of just the contents and their types, creates a dialog box Separately specify which look-and-feel (not part of the specification) Defines mapping from types to widget selection Graphic design rules for "nice" layout 10© Brad Myers

DON (Won Chul Kim & Foley, InterCHI'93, pp ) ACM DL Reference Ultimate in dialog box layout Kim's PhD thesis Works with OpenLook and devGuide Allows interactive designer guidance (preferences) on sizes, layout, widget choice, etc. Can also choose among proposed layouts Sophisticated 2-D layout Tries to balance dialog box Groupings of related items Effective use of white space (even margins, minimize wasted space) Generates multiple designs and uses an evaluation metric to choose. 11© Brad Myers

Don, pictures PDF, with other pictures PDF 12© Brad Myers

Generating Full UI These next tools require a specification of the full UI Usually have rule-based components Specifications are in a special language 13© Brad Myers

Interactive Transaction System (ITS) Bennett, et.al., UIST'89 pp Wiecha, et.al. CHI'89, pp Wiecha, et.al. CHI'89 Wiecha, et.al., ACM TOIS, 8(3), Jul'90, pp Wiecha, et.al Goal: capture designers knowledge as style rules So unlike other systems, designer is required to edit the rules, not just the specification All of UI must be created by editing the rules no interactive editing of generated interface (since then the knowledge about why the generated interface wasn't good enough would be lost) Like dialog-box systems, separate specification of content and style Style-independent tags associated with content "Style expert" programs the style for each tag Styles include both output (display) and input (interaction techniques) specifications 14 © Brad Myers

ITS, cont. Can handle dialog boxes, forms, node-link diagrams, kiosk frames, etc. Used for a number of internal IBM applications Used for all the information services at Expo'90 in Spain Information, maps, restaurant reservations, etc. IBM researchers and content experts were in Spain for months Evaluation + Full representation of design may increase re-use - Design specification ends up containing many specific "hacks" used to achieve specific effects in single interfaces - Complex formal language for specification and rules Pictures from ITS, TOIS, 8(3), pp. 213, 215, 217ITS, TOIS 15© Brad Myers

ITS, pictures PDF 16 © Brad Myers

The User Interface Design Environment (UIDE) Foley, et. al. CHI'88, pp Foley, et. al. CHI'88 Foley, et. al. IEEE Software, Jan'89, 25-32; Foley, et. al. IEEE Software Sukaviriya, et. al. InterCHI'93, pp Sukaviriya, et. al. InterCHI'93 Long-term project of Foley's at George Washington and Georgia Tech Ended about 1994 when Foley left A loose collection of separate implementations: IDL's transformations DON dialog boxes (described above) Sukaviriya's animated help Martin Frank's work (EET in Event-Based lecture) - etc. 17© Brad Myers

UIDE Programmer defines Knowledge-base "schemas" describing parts of the interface: Objects: in a class, sub-class inheritance hierarchy Actions: what can be done in the interface Pre-conditions and post-conditions are in a very limited language counting, booleans, simple tests used for testing enabled and explaining why Transformations change among equivalent UIs: e.g. Currently-selected obj currently-selected cmd performed based on pre-, post-conditions 18© Brad Myers

Pictures from UIDE 19© Brad Myers

UIDE, cont. Automatic generate help for why commands are not available Sukaviriya, et. al. AVI’94, Pages: Sukaviriya, et. al. AVI’94 Animated help provides animations as a tutorial Determines what needs to be done to demonstrate action Sequence of actions E.g. bring windows to the front, create an object, etc. 20© Brad Myers

UIDE Evaluation + Support for more than dialog boxes - Pre and post condition language is weak can't express the test "if the selected object is a polygon..." - Model language is a different, difficult language to learn 21© Brad Myers

Humanoid Szekely, et. al. UIST'90, pp. 1-9 Szekely, et. al. CHI'92, pp Szekely, et. al. CHI'92 Szekely, et. al. InterCHI'93, pp High-level UIMS for Manufacturing Applications Needing Organized Iterative Development Model application data and interaction similar to UIDE Model whole application: semantics + interface 22© Brad Myers

Humanoid, cont. System picks generic interaction techniques immediately using "templates" Designer can refine interface iteratively by creating more specific sub-classes: Single-Command-Input-With-Alternatives Single-Command-Input-With-Few-Alternatives Allows exploration with incomplete designs Evaluation + Much richer specification language than UIDE - More complex to define interfaces (more to learn) but interactive tools help 23© Brad Myers

Humanoid Pictures Pictures from Humanoid, CHI'93 pp © Brad Myers

MasterMind Neches, et. al. ACM 1993 Intelligent User Interfaces Workshop, pp Neches, et. al. ACM 1993 Models Allowing Shared Tools and Explicit Representations to Make Interfaces Natural to Develop Idea: combine UIDE and Humanoid Support entire life-cycle: early conceptual design through maintenance Knowledge base is shared among all tools Knowledge base serves as an integrating framework for various tools at design time and run time. Spent a lot of time negotiating on how to combine models Lots of different parts to the model Personnel and coordination problems in doing the research Used Amulet! 25© Brad Myers

MasterMind One of the first system to integrate multiple models together 26© Brad Myers

27 Mastermind Pictures © Brad Myers

Research continued… Fragmented into two different approaches Software engineering approach (early 90’s-) Very detailed models to improve overall design process Intelligent design assistants instead of automatic generation Significant use of task models Ubiquitous computing approach (2000-) Tons of “invisible” processors that perform tasks for us UIs for these processors are presented on other devices (mobile phone, PDA, speech, etc.) Impossible to manually build user interfaces for every combination 28© Brad Myers

What are task models, anyway? Key part of many current HCI approaches 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, CogTool UAN  ConcurTaskTrees 29© Brad Myers

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 30© Brad Myers

Building/Editing Task Models Tools are available ConcurTaskTrees Environment or Google for “ConcurTaskTrees” 31© Brad Myers

Software Engineering Approach Commercial work “Model-based design” Example: BPMN “business process modeling notation” Business experts should be able to author models Converted into code to support the process (requires people) Keynote at ICSE’08: Herbert Hanselmann: Challenges in Automotive Software Engineering “Model-based design (MBD) of functional behaviour has been a big help in the recent past” 32© Brad Myers

Mobi-D Angel Puerta, IUI’97 Set of tools to support a clearly defined development cycle Uses a series of different models Explicit relationships that specify how the models are related to each other Explicit interaction between end users and developers 33© Brad Myers

XIML eXtensible Interface Markup Language XIML.org Based on Mobi-D work Supports full development lifecycle 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 34© Brad Myers

Other Systems UIML ( Originally a research project at Virginia Tech, now being developed commercially by Harmonia Goal is platform independent language for describing UI Early versions were not very platform independent Recent versions using task models to automatically generate parts of the old language that were not platform independent Teresa ( Transformation Environment for inteRacti Tool for taking ConcurTaskTrees models, building an abstract interface, and then building a concrete interface on multiple platforms. USIXML ( Many of the same features of XIML Novel aspect is the use of graph structure for modeling relations (seems very complex) 35© Brad Myers

Ubiquitous Computing Approach “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.” -Dan Olsen (Xweb paper) The web comes close to solving this problem, but is interactively insufficient. 36© Brad Myers

Systems addressing UI issues XWeb Now known as ICE – Interactive Computing Everywhere ICrafter A system for integrating user interfaces from multiple devices Supple A system for automatically generating interfaces with a focus on customization/personalization. Personal Universal Controller Jeff Nichol’s research… 37© Brad Myers

XWeb Work by Dan Olsen and group at BYU E.g. UIST’2000, pp Premise: Apply the web metaphor to services in general Support higher levels of interactivity 38© Brad Myers

XWeb Example Interface 39© Brad Myers

ICrafter Part of the Interactive Workspaces research project at Stanford Ponnekanti, et. al. Ubicomp’2001 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. 40© Brad Myers

Supple Eventual goal is to support automatic personalization of user interfaces Treats generation of interfaces as an optimization problem Can take into account usage patterns in generation Krzysztof Gajos and Daniel S. Weld, “SUPPLE: Automatically Generating User Interfaces” in Proceedings of Intelligent User Interfaces 2004, Funchal, Portugal. 41© Brad Myers

Modeling Users with Traces Supple uses traces to keep a usage model Sequences of events: Interfaces are rendered taking the traces into account (though traces are not required) Trails are segmented at interface close or reset 42© Brad Myers

Generating with Optimization Uses a branch-and- bound search to explore space of alternatives Guaranteed to find an optimal solution 43© Brad Myers

Screenshots 44© Brad Myers

Personal Universal Controller Jeff Nichol’s PhD work 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. Goal: Generate high-quality UIs 45© Brad Myers

Control Feedback Approach Specifications Appliances Mobile Devices Use mobile devices to control all appliances in the environment Key Features Two-way communication, Abstract Descriptions, Multiple Platforms, Automatic Interface Generation 46© Brad Myers

Properties of PUC Language State variables & commands Each can have multiple labels Useful when not enough room Typed variables Base types: Boolean, string, enumerated, integers, fixed-point, floating-point, etc. Optional labels for values Hierarchical Structure Groups 47© Brad Myers

Dependency Information Crucial for high-quality interfaces Expressed as clauses Operations: Equals, Less-Than, Greater-Than Combined Logically AND, OR Used for: Dynamic graying out Layout Widget selection 48© Brad Myers

Generating Consistent UIs Personally consistent Reduce learning time Add unique functions 49© Brad Myers

Generating Combined UIs For multiple appliances, such as home theaters Specify content flow Combined controls 50© Brad Myers

Summative Study Compared PUC to manufacturer’s interfaces for HP and Canon printer/fax/copiers PUC twice as fast, 1/3 the errors Consistent: another factor of 2 faster 51© Brad Myers

Model-based systems advantages/disadvantages + Separate specification of UI from content + Automatic reformatting, retargeting for different platforms, customization to users + May allow programmers (non-experts) to write specification and have a good UI automatically created But this didn’t really work out – Result is often unpredictable – Often UI can be worse UI than hand-drawn – Sometimes model is larger than the code it would replace – Model often in a different language that must be learned 52© Brad Myers