SEHCMar 26, 2017

Automatic Detection of GUI Design Smells: The Case of Blob Listener

arXiv:1703.08803v113 citationsHas Code
Originality Incremental advance
AI Analysis

This work addresses GUI maintainability issues for developers of Java Swing systems by identifying a new design smell, but it is incremental as it builds on existing event-driven programming concepts.

The paper tackles the problem of GUI design smells by identifying Blob listeners, which are GUI listeners that can produce more than two GUI commands, and shows that 21% of analyzed GUI controllers are Blob listeners. It proposes a static code analysis tool, InspectorGuidget, that detects Blob listeners with 97.37% precision and 97.59% recall on a dataset of 37 manually identified instances.

Graphical User Interfaces (GUIs) intensively rely on event-driven programming: widgets send GUI events, which capture users' interactions, to dedicated objects called controllers. Controllers implement several GUI listeners that handle these events to produce GUI commands. In this work, we conducted an empirical study on 13 large Java Swing open-source software systems. We study to what extent the number of GUI commands that a GUI listener can produce has an impact on the change-and fault-proneness of the GUI listener code. We identify a new type of design smell, called Blob listener that characterizes GUI listeners that can produce more than two GUI commands. We show that 21 % of the analyzed GUI controllers are Blob listeners. We propose a systematic static code analysis procedure that searches for Blob listener that we implement in InspectorGuidget. We conducted experiments on six software systems for which we manually identified 37 instances of Blob listener. InspectorGuidget successfully detected 36 Blob listeners out of 37. The results exhibit a precision of 97.37 % and a recall of 97.59 %. Finally, we propose coding practices to avoid the use of Blob listeners.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes