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

Slides:



Advertisements
Similar presentations
Chapter 11 Designing the User Interface
Advertisements

Chapter 11 user support. Issues –different types of support at different times –implementation and presentation both important –all need careful design.
SECOND MIDTERM REVIEW CS 580 Human Computer Interaction.
Tutorial 12: Enhancing Excel with Visual Basic for Applications
Feature requests for Case Manager By Spar Nord Bank A/S IBM Insight 2014 Spar Nord Bank A/S1.
ISBN Chapter 3 Describing Syntax and Semantics.
Lecture 12: Model-based tools: Creating the UI Automatically Brad Myers Advanced User Interface Software 1.
Help and Documentation zUser support issues ydifferent types of support at different times yimplementation and presentation both important yall need careful.
1 System: Mecano Presenters: Baolinh Le, [Bryce Carder] Course: Knowledge-based User Interfaces Date: April 29, 2003 Model-Based Automated Generation of.
A Guide to Oracle9i1 Creating an Integrated Database Application Chapter 8.
User interface design Designing effective interfaces for software systems Objectives To suggest some general design principles for user interface design.
1 Lecture 13: Demonstrational Tools Brad Myers Advanced User Interface Software.
Describing Syntax and Semantics
Chapter 13: Designing the User Interface
Lecture 14: Model-based tools: Creating the UI Automatically Brad Myers Advanced User Interface Software 1© Brad Myers.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 16 Slide 1 User interface design.
Tutorial 3: Adding and Formatting Text. 2 Objectives Session 3.1 Type text into a page Copy text from a document and paste it into a page Check for spelling.
User Interface Design Chapter 11. Objectives  Understand several fundamental user interface (UI) design principles.  Understand the process of UI design.
Systems Analysis and Design in a Changing World, 6th Edition
Programming Languages – Coding schemes used to write both systems and application software A programming language is an abstraction mechanism. It enables.
A First Program Using C#
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University User Interface Design.
1 Forms A form is the usual way that information is gotten from a browser to a server –HTML has tags to create a collection of objects that implement this.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
Chapter 8: Writing Graphical User Interfaces
Software Tools. Specification Methods Design requires a good notation to record and discuss alternate possibilities: –The default language for specifications.
Java Software Solutions Lewis and Loftus Chapter 10 1 Copyright 1997 by John Lewis and William Loftus. All rights reserved. Graphical User Interfaces --
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Designing Interface Components. Components Navigation components - the user uses these components to give instructions. Input – Components that are used.
Extending HTML CPSC 120 Principles of Computer Science April 9, 2012.
Design Rules-Part B Standards and Guidelines
1 Implementation support chapter 8 programming tools –levels of services for programmers windowing systems –core support for separate and simultaneous.
Software Architecture
A Use Case Primer 1. The Benefits of Use Cases  Compared to traditional methods, use cases are easy to write and to read.  Use cases force the developers.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
Lecture 10: Toolkits: Intrinsics, Callbacks, Resources, Widget hierarchies, Geometry management Brad Myers Advanced User Interface Software 1© 2013.
Introduction to Matlab & Data Analysis 2015 In this tutorial we will: Build a practical application using GUIDE Learn more about graphical user interface.
Lecture 15: Demonstrational Tools Brad Myers Advanced User Interface Software 1.
Chap#11 What is User Support?
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
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,
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.
Formal Specification: a Roadmap Axel van Lamsweerde published on ICSE (International Conference on Software Engineering) Jing Ai 10/28/2003.
INFORMATION SYSTEM – SOFTWARE TOPIC: GRAPHICAL USER INTERFACE.
User Interface Generation From The Data Schema Akhilesh Bajaj Jason Knight University of Tulsa May 13, 2007 Sixth AIS SIGSAND Symposium, Tulsa, OK.
Programming Logic and Design Fourth Edition, Comprehensive Chapter 14 Event-Driven Programming with Graphical User Interfaces.
Chapter – 8 Software Tools.
JavaScript Introduction and Background. 2 Web languages Three formal languages HTML JavaScript CSS Three different tasks Document description Client-side.
MATLAB and SimulinkLecture 61 To days Outline Graphical User Interface (GUI) Exercise on this days topics.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
1 Design Principles – Part 2 of 3 Learnability Principles Flexibility Principles.
Data Models. 2 The Importance of Data Models Data models –Relatively simple representations, usually graphical, of complex real-world data structures.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Human Computer Interaction Lecture 07 The Interaction.
Introducing Scratch Learning resources for the implementation of the scenario
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
Human Computer Interaction Lecture 07 The Interaction
Lecture 14: Model-based tools: Creating the UI Automatically
Chap 7. Building Java Graphical User Interfaces
Topic 8: (Last two papers)
GRAPHICAL USER INTERFACE
Implementation support
Implementation support
Presentation transcript:

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

2 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 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 (Kieras, UIST'95)

4 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 New: Create from XML, WAP (also Jini, uPnP, Salutation,...)WAPJiniuPnPSalutation Covered in next lecture

5 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 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 Example: Mickey Dan R. Olsen, Jr., "A Programming Language Basis for User Interface Management," Proceedings SIGCHI'89, Austin, TX, Apr, 1989, pp ACM DL Reference 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 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 Records generate dialog boxes will pop up if a parameter to an invoked procedure, or if explicitly requested "Guard" routines allow setting variable to bold to also set property of the selected item. are "Demon" procedures

9 Mickey, cont. Graying out items using a built-in procedural service routine Evaluation + Don't have to worry about resources, etc. + Easy to keep code and resources in sync. - Very limited range - Generation Rules hardwired, so if UI not good enough, have to edit the generated code or resources. - Settings are right in the code, so can't be changed by user or internationalized. - Have to learn special comment forms and commands. - Long pre-process, compile, link, test loop. Pictures from Mickey, CHI'89 pp

10 Mickey Pictures PDF file with more pictures

11 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 "Judgement-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 Graphical editor can be used afterwards to add decorations Retained if the specification is edited since refer to higher-level abstractions of specification Also designed to support dynamic creation of dialog boxes when a program generates the contents list. Can specify constraints to compute "enabled" based on values of other widgets "Stop-action" for call-backs Evaluation + Don't have to worry about layout, etc. - Have to use rigid syntax for specification Pictures from Jade, CHI'90 pp. 28, 32

12 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.

13 Don, pictures PDF, with other pictures PDF

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

15 Interactive Transaction System (ITS) Bennett, et.al., UIST'89 pp Wiecha, et.al. CHI'89, pp 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

16 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

17 ITS, pictures PDF

18 The User Interface Design Environment (UIDE) Foley, et. al. CHI'88, pp Foley, et. al. IEEE Software, Jan'89, 25-32; Sukaviriya, et. al. InterCHI'93, pp 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.

19 UIDE Programmer defines Knowledge-base "schemas" describing parts of the interface: Objects: in a class, sub-class inheritance hierarchy (e.g. shapes that can be drawn in an editor) Name Description (for help) Actions available Attributes that are settable

20 UIDE, Schemas, cont. Actions: what can be done in the interface Name Description Kind (explicit = ask user, implicit = global vble) Objects applied to Actions mutually exclusive with Inverse action (for Undo) Parameters Pre-conditions - enables action (e.g. obj selected) Post-conditions - assertions after action Attributes (colors, etc.) Attribute types (integer, real, boolean, etc.)

21 UIDE, cont. 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 example pictures: IEEE Software, Jan'89, p Automatic generate help for why commands are not available Sukaviriya's 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.

22 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 new, difficult language to learn

23 Humanoid Szekely, et. al. UIST'90, pp. 1-9 Szekely, et. al. CHI'92, pp 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

24 Humanoid, cont. Four main components of model: Presentation Manipulation: what user can do, and what affects are Sequencing: order in which manipulations are enabled some constraints inferred, others specified Action side effects: what happens 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

25 Humanoid, cont. Interactive structure-editor to help with building the models Was used for a number of large-scale (in- house) applications (unlike UIDE) Evaluation + Much richer specification language than UIDE - More complex to define interfaces (more to learn) but interactive tools help Pictures from Humanoid, CHI'93 pp. 384

26 MasterMind Neches, et. al. ACM 1993 Intelligent User Interfaces Workshop, pp 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 Personelle and coordination problems in doing the research Using Amulet! Pictures from MasterMind, IUI'93, p. 66

27 Others To some extent, web browsers to "model-based" layout from HTML Takes size of window into account a little Some user preferences (link color, etc.) Could do a lot more XML is a "model" of the data Provide semantics to the content: uPnP, Salutation uPnPSalutation Jini kind-of, but includes UI? Jini More widely varying screens and interaction types may increase need for model-based design E.g., WAP for cell-phonesWAP Also for widely varying I/O devices: wall-size to cell-phone even different Windows CE sizes Current PhD work of Jeff Nichols: "Personal Universal Controller"Personal Universal Controller