incorporating layout managers into an evolutionary programming algorithm to design graphical user interfaces
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.
evolutionary programming genetic algorithms human computer interaction (hci)