Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
User interface design smell: Automatic detection and refactoring of Blob listeners
Univ Rennes, INSA Rennes, INRIA, CNRS,IRISA, Rennes, France..
Univ Fed Ceara, Fortaleza, Ceara, Brazil..
KTH.
Univ Toulouse Jean Jaures, Toulouse, France..
2018 (English)In: Information and Software Technology, ISSN 0950-5849, E-ISSN 1873-6025, Vol. 102, p. 49-64Article in journal (Refereed) Published
Abstract [en]

Context. User Interfaces (UIs) intensively rely on event-driven programming: interactive objects send UI events, which capture users' interactions, to dedicated objects called controllers. Controllers use several UI listeners that handle these events to produce UI commands. Objective. First, we reveal the presence of design smells in the code that describes and controls UIs. Second, we demonstrate that specific code analyses are necessary to analyze and refactor UI code, because of its coupling with the rest of the code. Method. We conducted an empirical study on four large Java software systems. We studied to what extent the number of UI commands that a UI listener can produce has an impact on the change- and fault-proneness of the UI listener code. We developed a static code analysis for detecting UI commands in the code. Results. We identified a new type of design smell, called Blob listener, that characterizes UI listeners that can produce more than two UI commands. We proposed a systematic static code analysis procedure that searches for Blob listener that we implement in InspectorGuidget. We conducted experiments on the four software systems for which we manually identified 53 instances of Blob listener. InspectorGuidget successfully detected 52 Blob listeners out of 53. The results exhibit a precision of 81.25% and a recall of 98.11%. We then developed a semi-automatically and behavior-preserving refactoring process to remove Blob listeners. 49.06% of the 53 Blob listeners were automatically refactored. Patches have been accepted and merged. Discussions with developers of the four software systems assess the relevance of the Blob listener. Conclusion. This work shows that UI code also suffers from design smells that have to be identified and characterized. We argue that studies have to be conducted to find other UI design smells and tools that analyze UI code must be developed.

Place, publisher, year, edition, pages
Elsevier, 2018. Vol. 102, p. 49-64
Keywords [en]
User interface, Event handling, Design smell, Software maintenance, Code refactoring, Empirical software engineering
National Category
Computer Sciences
Identifiers
URN: urn:nbn:se:kth:diva-233262DOI: 10.1016/j.infsof.2018.05.005ISI: 000440116400004Scopus ID: 2-s2.0-85047814624OAI: oai:DiVA.org:kth-233262DiVA, id: diva2:1238950
Note

QC 20180815

Available from: 2018-08-15 Created: 2018-08-15 Last updated: 2018-08-15Bibliographically approved

Open Access in DiVA

No full text in DiVA

Other links

Publisher's full textScopus

Authority records BETA

Baudry, Benoit

Search in DiVA

By author/editor
Baudry, Benoit
By organisation
KTH
In the same journal
Information and Software Technology
Computer Sciences

Search outside of DiVA

GoogleGoogle Scholar

doi
urn-nbn

Altmetric score

doi
urn-nbn
Total: 22 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf