Advanced Constraint Techniques for User Interface Implementation
Funded by the National Science Foundation under grant IRI-9500942
Scott
Hudson, Principal Investigator
PROJECT SUMMARY
This project seeks to develop and explore the use of advanced constraint-based
techniques in the production of user interface software. Constraints as
a general computational technique allow the declaration of a set of relationships
that are to hold between entities. A constraint satisfaction system is
employed to automatically ensure that these relationships hold under changing
conditions. This allows the programmer (or user interface implementor)
to specify, at a relatively high level, what is to happen, while relying
on the system to automatically determine how these requirements are to be
carried out.
A subset of constraint techniques (primarily propagation-based techniques
often called one-way and multi-way constraints) have been employed in user
interfaces for some time. These techniques have been recognized as extremely
useful in implementing several aspects of a typical advanced user interface
including:
- flexible specification of layout and other aspects of presentation for
graphical user interfaces,
- establishment of automatically updated connections between application
data and user interface components, and
- convenient maintenance of multiple presentations or views of the same
data (including shared data in collaborative systems).
This project seeks to produce two kinds of advances in constraint techniques
for user interface software. First, it seeks to make existing constraint
technology more accessible and practical for real interface implementations
by developing several important practical tools. Second it seeks to create
new advances in constraint systems themselves by extending them to new domains
and considering new user interface tasks that can be supported by them.
Specifically, this project seeks:
- to make one-way constraints easier to use for practical user interface
development by enhancing (and preparing for distribution) a previously developed
tool which compiles one-way constraint declarations into objects in a widely
used imperative programming language (C++),
- to use the techniques developed for this tool to construct a second
tool capable of supporting more flexible multi-way constraints,
- to directly compare the effectiveness of one-way and multi-way constraint
systems when used in the context of an advanced object-oriented toolkit,
- to explore new uses of constraints including their use in the implementation
of pre- and post-condition dialog management, automatic mapping of data
to presentations, and their use in implementing dynamic query interfaces,
- to develop new visual notations for applying constraints to user interface
specification problems,
- to develop new techniques for visualizing constraint systems themselves,
so that they are easier to understand and debug, and
- to develop new algorithms for concurrent and distributed solution of
constraint systems so that they can become a more practical tool in multi-user
interfaces.
PROJECT RELATED PUBLICATIONS
Scott E. Hudson, Ian Smith, "Automatic Generation of Starfield Displays
Using Constraints", CHI '95 Conference Companion, pp. 202-203
May 1995.
Krishna Bharat, Scott E. Hudson, "Supporting Distributed, Concurrent,
One-Way Constraints in User Interface Applications", Proceedings
of the ACM Symposium on User Interface Software and Technology, pp.
121-132, Nov. 1995.
Scott E. Hudson, Ian Smith , "A Practical System for Compiling One-Way
Constraints into C++ Objects", submitted to ACM Transactions on
Computer Human Interaction..
Last updated 3/2/96