User interface software structures

This thesis codifies the structural choices faced by designers of user interface software. It shows how these choices can be based on system requirements. Much work can be saved if we can learn to re-use structural designs. Instead of deriving every design from first principles (e.g., design by top-down decomposition), we should be able to choose among known solutions with known properties. This is already possible for some algorithm and data structure problems, such as sorting. This thesis works towards organizing design knowledge to make routine design possible at the level of system structure. The thesis begins by analyzing existing user interface systems. Patterns of structural choices and functional properties are extracted to form a design space for user interface structures. Each dimension of this space represents either a key structural choice or a functional requirement that influences structure. The thesis constructs a mechanical set of rules that select appropriate structural choices given desired values for functional dimensions. These rules are experimentally tested by comparing their predictions to the designs of a fresh set of systems. The rules achieve substantial correlation with the actual choices of these designs; moreover, many of the differences represent reasonable alternative choices. This experiment demonstrates first that the design space can successfully describe systems other than those it was based on, and second that there are usable correlations between the functional and structural dimensions of the space. This shows that the design space forms a useful carrier of design knowledge and can guide structural choices. This thesis is a first step in the investigation of system-level structuring principles, or "software architecture". Such principles are now poorly understood. The thesis studies structures that can be observed in the limited domain of user interfaces. In combination with similar efforts in other domains of software, this work may eventually lead to understanding of general structural principles.