Daniel Ashbrook, PhD
7GUIs benchmarks for GUI programming 📔
The tasks were selected in the original thesis (see Comparison of Object-Oriented and Functional Programming for GUI Development in Zotero) based on the criteria of being smll, self-contained, and reflecting typical GUI programming challenges. The benchmark criteria are usability with respect to the source code (not the final app!).
The 7 tasks
- Counter: click a button, increment the counter. Challenge: Understanding the basic ideas of a language/toolkit.
- Temperature converter: bidrectional Celsius/Fahrenheit. Challenge: Understanding the basic ideas of a language/toolkit.
- Flight booker: constraints between one-way/return flight dates and enabled date pickers. Challenge: Constraints.
- Timer: progress bar timer advances, slider live-changes length of timer. Challenges: concurrency, competing user/signal interactions, responsiveness.
- CRUD: display list of people names, create new, update existing, delete existing, live filter. Challenges: separating the domain and presentation logic, managing mutation, building a non-trivial layout.
- Circle drawer: click to make a circle; click in a circle to adjust diameter with slider; also undo/redo. Challenges: undo/redo, custom drawing, dialog control.
- Cells: mini spreadsheet with formulas. Challenges: change propagation, widget customization, implementing a more authentic/involved GUI application.
Cognitive Dimensions evaluation criteria
A subset of the full list of 14:
- Abstraction level (types of abstraction mechanisms)
- Closeness of mapping (of representations to domain)
- Hidden dependencies (important links between entities)
- Error proneness (notation inviting mistakes)
- Diffuseness (verbosity of language/representation)
- Viscosity (resistance to change)
Reference
- https://eugenkiss.github.io/7guis/