Configurable User Interfaces with XML

James Briggs


Supervised by Frank C Langbein; Moderated by Xianfang Sun

The aim of this project is to create a fully functioning user interface language using XML to specify user interfaces for programs in a wide range of environments. This is similar to the existing XUL system, but should be based on creating the structural elements of a user-interface in an HTML-like fashion where the particular layout is prescribed by a CSS-like system. So one part of the interface should define the elements and the other part their layout (not quite style, so not overriding the theme of the actual user interface toolkit). This could be used to enable reconfigurable user interfaces for programs (where the HTML-like part essentially defines the backend interface and the CSS-like part its layout).

The language should be independent of the particular toolkit used, but should instead interface with any one of these. Ideally the project would demonstrate this over a range of toolkits.

The language will also have to take into account the interaction between the user interface and the functional backend of the application. A model-view-control design paradigm may be used, but alternative approaches could also be explored, e.g. for truly concurrent user interface frameworks (not just single-threaded sub-systems). The actual interaction with the backend could be based on a message passing paradigm, similar to the GNU/Hurd interfaces.

It must be implemented in C or C++ under Linux and released under the GPL V3. Skills you should be familiar with or have to familiarise yourself with are: XML, parsers, at least one a user interface framework of your choice, user interface design patterns (incl. possibly concurrent user interface frameworks).

Initial Plan (18/10/2012) [Zip Archive]

Interim Report (14/12/2012) [Zip Archive]

Final Report (03/05/2013) [Zip Archive]

Publication Form