GOMS Project Trenton Schulz Outline • Introduction • KLM–GOMS overview • What has been done • Demo! • What needs to be done Introduction—I • There are three “basic parts” in the design process • Understanding Users • Designing Prototypes • Evaluating Introduction—II • Evaluating designs typically fall into three categories • Observing users • Asking users and experts • Testing and modeling users GOMS here What is GOMS? • Stands for Goals, Operators, Methods, and Selectors • Presented in The Psychology of Human- Computer Interaction by Card, Moran, Newell • Produces predictions of how “experts” will use a proposed system Versions of GOMS • Original GOMS (CMN–GOMS) • NGOMSL • CPM–GOMS • Keystroke-Level Model (KLM) How Does KLM Work? • Consists of operators: Operator Description Time in sec P Pointing 1.10s K Keypress or button press ≈0.20s H Move to keyboard/mouse 0.40s M Mental preparation 1.35s R(t) Response of t sec by the system t How It Works Operator Description H K Hand to Mouse Point at Radio Button Press Button Hand to Keyboard Hit ‘1’ K Hit ‘0’ K Hit ‘0’ K Hit “Return” P K H Where’s the M? • There are heuristics for adding and removing Ms • Typically you add in Ms at certain points and then start removing them M Heuristics in Action HPKHKKKK HMPMKHMKMKMKMK HMPKHMKKKMK s 5 6.9 ! ! ! s d n o ec This is Great but... • KLM is pretty quick to learn • Generating a model can take some time • Potential for mistakes • Repetitive and tedious Potential for Automation! Automating KLM • Most of the operators match system events • Some can be determined by looking at the the sequence of operators • Just need to hook it up… Hooking into Qt • Dual-licenced cross-platform C++ toolkit that works on X11 (Linux), Windows, and Mac OS X • Embedded version—Qtopia • A tool that could work on four platforms Adding Code • Need to add a little code to the application to evaluate: #include “listener.h” ... Listener listener(QAbstractEventDispatcher::instance()); ...and link against the library Automation • Developer runs both the application and the KLM “client” • Developer selects the application to evaluate and presses “Start Recording” • Use application as normal • Click “Stop” and results are shown KLM Table Model & View Application to Evaluate Network Connection KLM Server KLM Client Demo What is done • Necessary event translation to KLM operators on Mac OS X and Qtopia Core • Model coalescing/simplifying • Save and loading of models • Discovery of applications that can be evaluated What needs to be done • Proper placement of M’s • Use events, apply original heuristics, both? • Get things working with Qtopia Smartphone edition • Generate models for the standard Qtopia phone applications using Greenphone Outstanding Questions • Are there other operators that need to be taken into account for mobile phone use? • How valid will the models be for mobile phone use? • How to best to use the models? References S. K. Card, T. P. Moran, and A. Newell. The keystroke-level model for user performance time with interactive systems. Commun. ACM, 23(7):396–410, 1980. S. K. Card, A. Newell, and T. P. Moran. The Psychology of Human-Computer Interaction. Lawrence Erlbaum Associates, Inc., Mahwah, NJ, USA, 1983. J. Raskin. The humane interface: new directions for designing interactive systems. ACM Press/Addison-Wesley Publishing Co., New York, NY, USA, 2000.