Standard

An Empirical Catalog of Code Smells for the Presentation Layer of Android Apps. / Goularte Carvalho, Suelen; Aniche, Maurício; Veríssimo, Júlio; Durelli, Rafael; Gerosa, Marco Aurélio.

In: Empirical Software Engineering, Vol. 24, No. 6, 2019, p. 3546–3586.

Research output: Contribution to journalArticleScientificpeer-review

Harvard

Goularte Carvalho, S, Aniche, M, Veríssimo, J, Durelli, R & Gerosa, MA 2019, 'An Empirical Catalog of Code Smells for the Presentation Layer of Android Apps', Empirical Software Engineering, vol. 24, no. 6, pp. 3546–3586. https://doi.org/10.1007/s10664-019-09768-9

APA

Goularte Carvalho, S., Aniche, M., Veríssimo, J., Durelli, R., & Gerosa, M. A. (2019). An Empirical Catalog of Code Smells for the Presentation Layer of Android Apps. Empirical Software Engineering, 24(6), 3546–3586. https://doi.org/10.1007/s10664-019-09768-9

Vancouver

Goularte Carvalho S, Aniche M, Veríssimo J, Durelli R, Gerosa MA. An Empirical Catalog of Code Smells for the Presentation Layer of Android Apps. Empirical Software Engineering. 2019;24(6):3546–3586. https://doi.org/10.1007/s10664-019-09768-9

Author

Goularte Carvalho, Suelen ; Aniche, Maurício ; Veríssimo, Júlio ; Durelli, Rafael ; Gerosa, Marco Aurélio. / An Empirical Catalog of Code Smells for the Presentation Layer of Android Apps. In: Empirical Software Engineering. 2019 ; Vol. 24, No. 6. pp. 3546–3586.

BibTeX

@article{e79aac89295c413b9ca11140ddd3db14,
title = "An Empirical Catalog of Code Smells for the Presentation Layer of Android Apps",
abstract = "Software developers, including those of the Android mobile platform, constantly seek to improve their applications{\textquoteright} maintainability and evolvability. Code smells are commonly used for this purpose, as they indicate symptoms of design problems. However, although the literature presents a variety of code smells, such as God Class and Long Method, characteristics that are specific to the underlying technologies are not taken into account. The presentation layer of an Android app, for example, implements specific architectural decisions from the Android platform itself (such as the use of Activities, Fragments, and Listeners) as well as deal with and integrate different types of resources (such as layouts and images). Through a three-step study involving 246 Android developers, we investigated code smells that developers perceive for this part of Android apps. We devised 20 specific code smells and collected the developers{\textquoteright} perceptions of their frequency and importance. We also implemented a tool that identifies the proposed code smells and studied their prevalence in 619 open-source Android apps. Our findings suggest that: 1) developers perceive smells specific to the presentation layer of Android apps; 2) developers consider these smells to be of high importance and frequency; and 3) the proposed smells occur in real-world Android apps. Our domain-specific smells can be leveraged by developers, researchers, and tool developers for searching potentially problematic pieces of code.",
keywords = "Android mobile applications, Code smells, Empirical software engineering, Software maintenance and evolution",
author = "{Goularte Carvalho}, Suelen and Maur{\'i}cio Aniche and J{\'u}lio Ver{\'i}ssimo and Rafael Durelli and Gerosa, {Marco Aur{\'e}lio}",
year = "2019",
doi = "10.1007/s10664-019-09768-9",
language = "English",
volume = "24",
pages = "3546–3586",
journal = "Empirical Software Engineering",
issn = "1382-3256",
publisher = "Springer",
number = "6",

}

RIS

TY - JOUR

T1 - An Empirical Catalog of Code Smells for the Presentation Layer of Android Apps

AU - Goularte Carvalho, Suelen

AU - Aniche, Maurício

AU - Veríssimo, Júlio

AU - Durelli, Rafael

AU - Gerosa, Marco Aurélio

PY - 2019

Y1 - 2019

N2 - Software developers, including those of the Android mobile platform, constantly seek to improve their applications’ maintainability and evolvability. Code smells are commonly used for this purpose, as they indicate symptoms of design problems. However, although the literature presents a variety of code smells, such as God Class and Long Method, characteristics that are specific to the underlying technologies are not taken into account. The presentation layer of an Android app, for example, implements specific architectural decisions from the Android platform itself (such as the use of Activities, Fragments, and Listeners) as well as deal with and integrate different types of resources (such as layouts and images). Through a three-step study involving 246 Android developers, we investigated code smells that developers perceive for this part of Android apps. We devised 20 specific code smells and collected the developers’ perceptions of their frequency and importance. We also implemented a tool that identifies the proposed code smells and studied their prevalence in 619 open-source Android apps. Our findings suggest that: 1) developers perceive smells specific to the presentation layer of Android apps; 2) developers consider these smells to be of high importance and frequency; and 3) the proposed smells occur in real-world Android apps. Our domain-specific smells can be leveraged by developers, researchers, and tool developers for searching potentially problematic pieces of code.

AB - Software developers, including those of the Android mobile platform, constantly seek to improve their applications’ maintainability and evolvability. Code smells are commonly used for this purpose, as they indicate symptoms of design problems. However, although the literature presents a variety of code smells, such as God Class and Long Method, characteristics that are specific to the underlying technologies are not taken into account. The presentation layer of an Android app, for example, implements specific architectural decisions from the Android platform itself (such as the use of Activities, Fragments, and Listeners) as well as deal with and integrate different types of resources (such as layouts and images). Through a three-step study involving 246 Android developers, we investigated code smells that developers perceive for this part of Android apps. We devised 20 specific code smells and collected the developers’ perceptions of their frequency and importance. We also implemented a tool that identifies the proposed code smells and studied their prevalence in 619 open-source Android apps. Our findings suggest that: 1) developers perceive smells specific to the presentation layer of Android apps; 2) developers consider these smells to be of high importance and frequency; and 3) the proposed smells occur in real-world Android apps. Our domain-specific smells can be leveraged by developers, researchers, and tool developers for searching potentially problematic pieces of code.

KW - Android mobile applications

KW - Code smells

KW - Empirical software engineering

KW - Software maintenance and evolution

UR - http://www.scopus.com/inward/record.url?scp=85076140576&partnerID=8YFLogxK

U2 - 10.1007/s10664-019-09768-9

DO - 10.1007/s10664-019-09768-9

M3 - Article

VL - 24

SP - 3546

EP - 3586

JO - Empirical Software Engineering

JF - Empirical Software Engineering

SN - 1382-3256

IS - 6

ER -

ID: 55394006