Project Details
Projekt Print View

Reactive Synthesis of Graphical User Interface Program Code

Subject Area Theoretical Computer Science
Term from 2016 to 2024
Project identifier Deutsche Forschungsgemeinschaft (DFG) - Project number 322591867
 
Final Report Year 2024

Final Report Abstract

Programs with a graphical interface (GUI) are difficult to get right. Such programs respond to events such as button clicks and network accesses finishing by changing the state of the user interface and starting new computation threads. Due to the user’s behavior and the order of events being unpredictable, developers of GUI programs often forget cases, leading to incorrect programs. In this project, we addressed this difficulty by developing the necessary theory and tools to lift the idea of automatically synthesizing an implementation to the realm of graphical user interface glue code. Starting point was the observation that the particular properties of GUI synthesis as an application domain can be exploited to make the synthesis process more efficient. The specification governing how the user interface behaves tends to be relatively simple in this setting and describes chains of events that may or may not happen, which allows to utilize a relatively restricted type of technical representation for the specification, called universal very-weak omega-automata. Such automata consist of states that represent obligations that the GUI program code has to fulfill. Furthermore, events and actions do not happen in parallel in GUIs and can be assumed to occur sequentially, where the GUI program code can react to every input event with multiple actions. These two observations can be exploited in a synthesis process that uses a synthesis game that encodes the interaction between the user and the program. In this game, only the best-case sequences of actions of the system need to be considered, where what is best is defined in terms of the obligations. This approach enabled building small synthesis games with a so-called Generalized Reactivity(1) winning condition, which was already known in the literature. To achieve and support these results, a couple of questions with a more theoretical focus also had to be answered. This includes defining a sub-logic of linear temporal logic (LTL) useful for describing GUI properties that is tailored towards a translation to universal very-weak automata. Similarly, we researched an approach to finding so-called invariants implied by a specification in generalized reactivity(1) synthesis, which helps a system designer with identifying which system behavior a specification implies and hence with debugging a given specification. To maintain the efficiency of generalized reactivity(1) synthesis, as used in our GUI code synthesis approach, while allowing some more complex specification parts, we furthermore provided a new synthesis approach that bridges generalized reactivity(1) synthesis with synthesis from full LTL. The new approach bases on a novel canonical form for arbitrary omega-regular specifications, which was also found in the scope of the project.

Publications

 
 

Additional Information

Textvergrößerung und Kontrastanpassung