Slicer3:Interface Design and Usability
Go to Slicer3 Developer Info >>
Contents
Project goals
- Design and engineer Slicer3 UI.
- Develop human interface and style guidelines for developers.
- Develop a user-centered design practice for developers.
- Design a new brand for Slicer3.
- Develop visual communication guidelines for the Slicer3 brand.
Project scope
The scope of this effort is sorted into four categories: Engineering, UI design, Usability and Slicer3 branding. The subtasks of each category are itemized below and specific information about each category is located on the linked pages.
3DSlicer Brand (Core Values, Logo, and Visual Communication Guidelines)
(Slicer3 Core Vales, Logo versions and Visual Communication Guidelines describing the logo's rules of use can be found on the Slicer3 Brand page ).
Tasks:
- fully express new 3DSlicer brand: design logo, splash screen
- develop and publish Slicer3 Visual Communication Guidelines to promote consistent use of the Slicer3 brand
Status: complete.
General Design Guidelines that Reinforce the Brand
Information: High-level guidelines for reflecting Slicer's brand in:
- the GUI appearance,
- interface organization & layout, and
- the application's interactive behavior
are described at this link.
UI Design Overview
Tasks: (more detailed UI Design information can be found on the UI Design page ).
- design overall look to Slicer3 application in keeping with core values;
- design look & feel applied to developer modules;
- implement Slicer3 Application GUI
- design conventions for specifying global and module-specific keyboard accelerators;
- specify and document global keyboard accelerators;
- iterate on prototype(s) and present them for comments and suggestions;
- develop and publish Human Interface & Slicer Style Guidelines for Developers (currently under development).
Status: main application GUI complete. Time should be allocated for user-centered refinement of core module GUIs which were hurriedly assembled. Style guidelines are currently being drafted.
Usability Overview
Tasks: (more detailed Usability information can be found on the Slicer3 Usability page ).
- develop and publish a light-weight user-centered design practice that support usability and software consistency.
- use this process to design and implement main application interface, and some core functionality.
- promote awareness of this process and encourage its adoption among developers
Status: practice is developed and published on the wiki. We have used this practice where appropriate on some base modules. The practice has not yet been actively promoted.
UI Architecture & Engineering Overview
Tasks: (more detailed UI Architecture & Engineering information can be found on the UI Architecture & Engineering page).
- design thin GUI layer, separate from the control logic and data model;
- design a model for representing the UI and managing local events;
- extend the model for handling remote events;
- design means of mapping KWWidgets onto that model;
- set priorities with Kitware involving extensions & modifications to KWWidgets;
- determine the api to application logic, used by GUI and by scripts;
- design set of base classes for slicer modules and custom widgets that give module developers an easy pattern to follow;
- develop guidelines for slicer base developers and module developers;
- design mechanism for centrally specifying look & feel (and permitting overrides);
Ongoing Projects: (Please link any GUI related engineering projects below)
- Application GUI
- Loading and Saving of Data
- Remote I/O
- Support for common workflows
- Module management
- Informatics infrastructure and interface
Public suggestion section: What guidelines do developers need?
Please add suggestions here for what additional guidelines need to be available in Slicer's Human Interface and Style Guidelines, currently under development.
User Feedback: Feature, Resource, Application Convention Requests
We are collecting feature, conventions and resource requests from users and developers. Appropriate entries from Slicers bug tracker will be periodically added to this repository also.