Transcript MSSE Course Name - Georgia Institute of Technology
1
Saturday, February 19
Turn in User/Task Analyses Cognitive Walkthrough GUI Programming Fundamentals Looking Forward SEng 5115 February 19, 2004
Walkthrough Analysis
2 Economical interface evaluation low-fidelity prototype development team • users optional Effective, if goal is improvement, not defense some team members skilled proper motivation SEng 5115 February 19, 2004
Cognitive Walkthrough
3 Goals imagine user’s experience evaluate choice-points in the interface detect confusing labels or options detect likely user navigation errors Start with a complete walkthrough scenario never try to “wing it” on a walkthrough SEng 5115 February 19, 2004
4
Tell a Believable Story
How does the user accomplish the task Action-by-action Based on user knowledge and system interface SEng 5115 February 19, 2004
5
Best Approach
Work as a group don’t partition the task Be highly skeptical remember the goal!
Every gap is an interface problem SEng 5115 February 19, 2004
6
Who Should Do the Walkthrough
Designers, as an early check Team of designers & users remember: goal is to find problems avoid making it a show Skilled UI people may be valuable team members SEng 5115 February 19, 2004
How Far Along
Basic requirements description or prototype of interface know who users are (and their experience) a task description a list of actions to complete the task (walkthrough scenario) • DO NOT try to create the action list on the fly!
Viable once the scenario and interface sketch are completed SEng 5115 February 19, 2004 7
How to Proceed
For each action in the sequence tell the story of why the user will do it ask critical questions • • • will the user be trying to produce the effect?
will the user see the correct control?
will the user see that the control produces the desired effect?
• • will the user select a different control instead?
will the user understand the feedback to proceed correctly?
SEng 5115 February 19, 2004 8
More on Questions
9 Some extras can be helpful: What happens if the user is wrong? Feedback to self-correct?
How would a former user of
Remember, the question is a way to help you see problems – it is a focus, not a blindfold.
SEng 5115 February 19, 2004
10
Walkthroughs are not Perfect
They won’t find every problem limited by nature • new users who know what task they need to accomplish • biased towards correct action sequence limited in implementation • hard to shed the expertise of evaluators A useful tool in conjunction with others SEng 5115 February 19, 2004
Exercise: Cognitive Walkthrough Analysis
In non-project groups of 3-5 Users and Task to be announced Scenario developed jointly Perform walkthrough identify problems estimate error probabilities (25% intervals) Remember who your users are!
SEng 5115 February 19, 2004 11
GUI Programming Fundamentals
13
Early Computer Interfaces
Cards and Tapes TTYs and “glass TTYs” Full-Screen xmit interfaces Full-Screen interactive interfaces SEng 5115 February 19, 2004
14
GUI Application Architecture
High-level architecture where GUI fits in application or suite of applications Low-level architecture how the GUI itself is constructed SEng 5115 February 19, 2004
High-Level Architecture
Monolithic application Client/server computing Distributed modular applications 15 SEng 5115 February 19, 2004
Monolithic Applications
Very common often the application is 90-100% interface perceived performance benefit to coupling easy to implement Implementation either code is built in interface system, or code (and/or interface) in C/C++ Drawbacks consistency, other applications, no API 16 SEng 5115 February 19, 2004
Client/Server Computing
Interface is client interacts with user, communicates with server Database-style application is server client sends requests, database replies sometimes (not often) database can initiate contact Good API, separation, form support Problems with high interactivity SEng 5115 17 February 19, 2004
18
Distributed Modular Applications
Build application from many components perform task with many applications Method for sharing data OLE, CORBA, Publish/Subscribe Scripting for assembly Visual Basic, Tcl, ...
SEng 5115 February 19, 2004
Low-Level Architecture X-Windows Model
Application Framework Toolkit X Library OS/Network OS/Hardware Device Drivers X Server Library Network February 19, 2004 19 SEng 5115
Event-Driven Programming
Interactive programs user drives interaction quick response Older, forms-based programs submit/wait model How quick?
50 ms for some intense interaction SEng 5115 February 19, 2004 20
Event-Driven Programs
No main flow of control if needed, separate program Setup, then process input, then clean up Input handlers must be fast handler responds to mouse click, key press Core of program is event loop SEng 5115 February 19, 2004 21
The Event Loop
loop: ev = get_next_event(); h = find_hander(ev); h(ev); goto loop; note: handlers are indexed in a table by event type, window, some detail SEng 5115 February 19, 2004 22
Program Structure
Substantial initialization code create objects (including screen objects) register event handlers do any setup processing Event loop core provided by most toolkits Special cases 23 February 19, 2004
Program Objects
Widgets interface objects (scrollbar, button) maintain local state provide event handlers provide set-up code provide API and hooks for user code • • how to get value of scrollbar code to call when button is pressed SEng 5115 February 19, 2004 24
25
Registration for Events
Generally handled by widgets Typical system maps window, event type, some detail to handler routine detail such as which key was pressed windows may be hierarchical handler receives a copy of the event for reference SEng 5115 February 19, 2004
UI Toolkits and Frameworks
Programming at the low level is absurd 50-250 lines of code to manage a button on the screen • draw/redraw • • request relevant events polling loop for events big applications would be almost impossible SEng 5115 February 19, 2004 26
Higher-Level Programming
Toolkits provide widgets • interface objects event handling geometry management • window layout resource management • defaults, user overrides, internationalization SEng 5115 27 February 19, 2004
28
What’s a Widget?
What is needed for a simple button?
user interface application programmer interface reaction to environment • • available space defaults event handling SEng 5115 February 19, 2004
Event Handling
Toolkits automatically handle most events widgets request/handle their events • provide callbacks for user code event handlers are efficient support for timer/file events Toolkits provide event loop special cases for menus/dialogs SEng 5115 February 19, 2004 29
Geometry Management
How should windows be arranged?
what about when the screen size (or top-level window size) changes?
Size requests from objects (propagated) Several strategies fixed positions rubber sheet pack around a cavity table-based layout SEng 5115 30 February 19, 2004
Geometry Management
Fixed positions easy to use: X, Y, width (W), height (H) poor choice if window size can change Rubber sheet specify percentages for X, Y, W, H some objects may not stretch choice of anchor points in a region (top, bottom-left, center) SEng 5115 February 19, 2004 31
Pack Around a Cavity
Useful for editors object in cavity controls around cavity Easy to specify side, perpendicular size Several problems cannot handle matrices file edit help hello there SEng 5115 February 19, 2004 32
33
Table-Based Layout
Like spreadsheet with objects that can fill several cells Specify which rows/columns get any extra space SEng 5115 February 19, 2004
General Process
Two phases Phase 1 • each window requests space from its parent • parents consolidate requests into a single one Phase 2 • • space allocated at top level each parent divides space among children SEng 5115 February 19, 2004 34
Application Frameworks
Application structure or architecture higher-level objects, libraries more interaction management Better support for less code declarative constraint programming Portability platform to platform internationalization SEng 5115 February 19, 2004 35
GUI Tools
GUI Builders Data-specific tools Visual Basic PowerBuilder Tcl/Tk Java/AWT/Swing others ...
SEng 5115 36 February 19, 2004
37
State of Practice
Wide Variety of Interface Construction Tools graphical layout editors templates and object libraries pre-defined high-level dialog support Scripting Languages are still a Trend Visual Basic, Tcl/Tk, etc Still Behind State of Research SEng 5115 February 19, 2004
Constraint Programming
Problem each event may result in many interface changes particularly in the case of highly responsive interfaces e.g., buttons that are context-dependent Example video poker application • http://www.cs.umn.edu/Research/GIMME SEng 5115 February 19, 2004 38
Constraint Programming for Video Poker
Hard Question: What is the Effect of “Bet One?” changes all buttons, cards Easy Questions when is “Bet One” active?
• during payout and bet phase if bankroll is positive what is its action?
• increment bet and decrement bankroll SEng 5115 February 19, 2004 39
Why/Why Not Constraint Programming?
Why?
localize distributed control isolate critical program variables more advanced constraint models Why Not?
not regularly available (won’t work with off the-shelf languages) lack of training SEng 5115 February 19, 2004 40
41
Lessons on UI Programming
Challenging Task not well-supported by traditional training New Paradigms event-driven, constraints even OO can claim a UI heritage SEng 5115 February 19, 2004
Looking Ahead
Next week: Heuristic Evaluation Prototypes and Walkthrough Scenarios Due 42 SEng 5115 February 19, 2004
First Prototype
On paper Have enough copies for TA and each team member Key criteria -- level of detail needed for non-user evaluation Needs to have all visible labels, menu items, controls to support walkthrough Should identify planned shortcuts, error messages for heuristic eval SEng 5115 February 19, 2004 43
44
Scenarios
Step-by-step instructions for completing two or more of the tasks in your prototype Level of detail needed to accomplish without task knowledge Cross check level of detail in prototype SEng 5115 February 19, 2004