Silva, João C.Silva, Carlos E.Campos, José C.Saraiva, João A.Mealha, Óscar and Madeira, Joaquim and Tércio, Daniel and Sousa Santos, Beatriz2021-06-182021-06-182021978-3-03868-153-3https://doi.org/10.2312/pt.20101163https://diglib.eg.org:443/handle/10.2312/pt20101163When developing interactive applications, considering the correctness of graphical user interfaces (GUIs) code is essential. GUIs are critical components of today's software, and contemporary software tools do not provide enough support for ensuring GUIs' code quality. GUIsurfer, a GUI reverse engineering tool, enables evaluation of behavioral properties of user interfaces. It performs static analysis of GUI code, generating state machines that can help in the evaluation of interactive applications. This paper describes the design, software architecture, and the use of GUIsurfer through an example. The tool is easily re-targetable, and support is available to Java/Swing, and WxHaskell. The paper sets the ground for a generalization effort to consider rich internet applications. It explores the GWT web applications' user interface programming toolkit.Graphical user interfaceReverse EngineeringAnalysisGUI Behavior from Source Code Analysis10.2312/pt.2010116381-88