Skip to main content

Reification, Polymorphism, and Reuse

Three Principles for Designing Visual Interfaces

Introduction

This paper introduces three core principles—Reification, Polymorphism, and Reuse—to streamline the design of visual interfaces, particularly for complex applications. The authors apply these principles to the redesign of an interface for editing and simulating Coloured Petri Nets, demonstrating how they can improve usability by simplifying the interface without sacrificing functionality.

Target

These principles are broadly applicable to the design of complex visual interfaces, especially in software requiring direct manipulation and user-defined customization, such as CAD systems, simulators, and data visualization tools.

Key Insights

  • Reification (Making Concepts Tangible): Turns abstract concepts into concrete objects that users can manipulate directly. For example, reifying "alignment" as guidelines allows users to directly control object placement without complex commands.
  • Polymorphism (Universal Commands): Supports applying the same command to different types of objects, allowing a streamlined command set. For instance, the "cut" or "copy" commands work consistently across text, graphics, and files.
  • Reuse (Capturing Patterns of Use): Makes both user inputs and system outputs reusable, enhancing efficiency by allowing users to repeat complex tasks or commands without redoing work. This is particularly valuable in settings where users frequently modify similar objects.

Supporting Data

  • Case Study: The principles were validated in the cpn2000 interface, developed for editing Coloured Petri Nets. Preliminary user tests indicated improved ease of use and efficiency compared to traditional WIMP (Windows, Icons, Menus, Pointer) interfaces.

Other Insights

  • Integrating New Interaction Techniques: The cpn2000 interface combines novel elements like toolglasses, marking menus, and floating palettes, eliminating pull-down menus and scrollbars to minimize visual clutter while maintaining functionality.
  • Bimanual Input Support: The interface employs two-handed input, using a mouse and trackball simultaneously, which allows users to navigate and manipulate interface elements more naturally.

Practical Applications

  • Use Reification for Interactive Flexibility: Convert essential commands into visible interface elements, like guidelines, which users can manipulate directly rather than using complex dialog menus.
  • Design Commands for Polymorphic Use: Maintain a small set of versatile commands that apply broadly, reducing cognitive load and making the interface more intuitive.
  • Incorporate Mechanisms for Efficient Reuse: Implement features like style pickers and guidelines that let users easily apply and replicate custom configurations, saving time on repetitive tasks.

Reference

Beaudouin-Lafon, M., & Mackay, W. E. 2000. Reification, Polymorphism and Reuse: Three Principles for Designing Visual Interfaces. Advanced Visual Interfaces (AVI 2000), ACM Press.