Modular Specification of GUI Layout Using Constraints

The Auckland layout model (ALM) is a novel technique for specifying layout. It generalizes grid-based layouts as they are widely used for print layout as well as for GUI layout. Qualitatively, in ALM the focus switches from the cells of the grid to the tabstops between cells. Quantitatively, the model permits the specification of constraints based on linear algebra, and an optimal layout is calculated using linear programming. ALM provides several advantages for developers: first, it supports several different levels of abstraction through higher-level layout constructs that are automatically translated into the lower-level primitives of linear programming. The formalism of linear programming defines a clean separation of ALM's interface and its implementation. Second, the compositional nature of ALM allows developers to group parts of a specification that belong naturally together, resulting in a modular GUI specification. Our experience has shown that it is much harder to achieve a similar separation of concerns when using common GUI layout techniques.

[1]  Christof Lutteroth,et al.  Optimal GUI Layout as a Problem of Linear Programming , 2007 .

[2]  Christof Lutteroth Automated Reverse Engineering of Hard-Coded GUI Layouts , 2008, AUIC.

[3]  Christof Lutteroth,et al.  User interface layout with ordinal and linear constraints , 2006, AUIC.

[4]  Steven K. Feiner,et al.  A Survey of Automated Layout Techniques for Information Presentations , 2005 .

[5]  Nesa L'abbe Wu,et al.  Linear programming and extensions , 1981 .

[6]  Alan Borning,et al.  Constraint-based document layout for the Web , 2000, Multimedia Systems.

[7]  Bjørn N. Freeman-Benson,et al.  Ultraviolet: A Constraint Satisfaction Algorithm for Interactive Graphics , 1998, Constraints.

[8]  Bjørn N. Freeman-Benson,et al.  Constraint hierarchies , 1987, OOPSLA '87.

[9]  Hiroshi Hosobe A modular geometric constraint solver for user interface applications , 2001, UIST '01.

[10]  Michael Sannella Skyblue: a multi-way local propagation constraint solver for user interface construction , 1994, UIST '94.

[11]  Kim Marriott,et al.  QOCA: A Constraint Solving Toolkit for Interactive Graphical Applications , 2004, Constraints.

[12]  Peter J. Stuckey,et al.  The Cassowary linear arithmetic constraint solving algorithm , 2001, TCHI.

[13]  Alexander Schrijver,et al.  Theory of linear and integer programming , 1986, Wiley-Interscience series in discrete mathematics and optimization.

[14]  Narendra Karmarkar,et al.  A new polynomial-time algorithm for linear programming , 1984, Comb..

[15]  Hiroshi Hosobe,et al.  A Scalable Linear Constraint Solver for User Interface Construction , 2000, CP.

[16]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[17]  Peter J. Stuckey,et al.  Solving linear arithmetic constraints for user interface applications , 1997, UIST '97.