Incorporating layout managers into an evolutionary programming algorithm to design graphical user interfaces

  • Authors:
  • Mathys C. du Plessis;Lynette Barnard

  • Affiliations:
  • Nelson Mandela Metropolitan University, Port Elizabeth;Nelson Mandela Metropolitan University, Port Elizabeth

  • Venue:
  • Proceedings of the 2008 annual research conference of the South African Institute of Computer Scientists and Information Technologists on IT research in developing countries: riding the wave of technology
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Designing graphical user interfaces (GUIs) is an arduous task that requires both functional and aesthetic considerations, often relying on documented style guides and design principles. Style guides and principles are mostly prescriptive in terms of what should be included and what should be avoided in interface design, but do not specify the how of the interface design process. Previous research has employed Genetic Algorithms to assist in the design process, but focused more on evolving colour schemes and ordering of user interface (UI) components than on the general layout of the interface. Components were essentially placed in a static grid which resulted in unappealing interfaces. This research seeks to evolve the placement of components on the screen through the use of layout managers. A user guides the evolution process by iteratively selecting promising interfaces from a collection of candidate interfaces. Various constraints are placed on the grouping of components to prevent inappropriate groupings in the UI layout and to reduce the number of selections that the designer has to make. Each candidate UI is encoded in a tree which made crossover operations inappropriate. This resulted in an Evolutionary Programming algorithm being used rather than a Genetic Algorithm. Various mutation operators are discussed. Through this evolutionary process, aesthetically pleasing and functional interfaces can then be created in a reasonable number of iterations.