Derivation of a general purpose architecture for automatic user interface generation
- Publication Type:
- Issue Date:
Many software projects spend a significant proportion of their time developing the User Interface (UI), therefore any degree of automation in this area has clear benefits. Research projects to date generally take one of three approaches: interactive graphical specification tools, model-based generation tools, or language-based tools. The first two have proven popular in industry but are labour intensive and error-prone. The third is more automated but has practical problems which have led to a lack of industry adoption. This thesis set out to understand and address these limitations. It studied the issues of UI generation in practice using Action Research cycles guided by interviews, adoption studies, case studies and close collaboration with industry practitioners. It further applied the emerging field of software mining to address some of these issues. Software mining is used to collate multiple inspections of an application's artefacts into a detailed model, which can then be used to drive UI generation. Finally, this thesis explicitly defined bounds to the generation, such that it can usefully automate some parts of the UI development process without restricting the practitioner's freedom in other parts. It proposed UI generation as a way to augment manual UI construction rather than replace it. To verify the research, this thesis built an Open Source project using successive generations of Iterative Development, and released and promoted it to organisations and practitioners. It tracked and validated the project's reception and adoption within the community, with an ultimate goal of mainstream industry acceptance. This goal was achieved on a number of levels, including when the project was recognised by Red Hat, an industry leader in enterprise middleware. Red Hat acknowledged the applicability and potential of the research within industry and integrated it into their next generation products.
Please use this identifier to cite or link to this item: