Identifying architectural problems through prioritization of code smells

Santiago Vidal, Everton Guimaraes, Willian Oizumi, Alessandro Garcia, Andrés Díaz Pace, Claudia Marcos

Research output: Chapter in Book/Report/Conference proceedingConference contribution

24 Scopus citations

Abstract

Architectural problems constantly affect evolving software projects. When not properly addressed, those problems can hinder the longevity of a software system. Studies have revealed that a range of architectural problems are reflected in source code through two or more code smells. However, a software project often contains thousands of code smells and many of them have no relation to architectural problems. Thus, developers may feel discouraged to identify architectural problems if they are not equiped with means to focus their attention in a reduced set of locations in their system to start with. However, state-of-the-art techniques fall short in assisting developers in the prioritization of code smells that are likely to indicate architectural problems in a program. As a consequence, developers struggle to effectively focus on (groups of) smells that are architecturally relevant, i.e., smells that contribute to a critical design problem. This work presents and evaluates a suite of criteria for prioritizing groups of code smells as indicators of architectural problems in evolving systems. These criteria are supported by a tool called JSpIRIT. We have assessed the prioritization criteria in the context of more than 23 versions of 4 systems, analyzing their effectiveness for spoting locations of architectural problems in the source code. The results provide evidence that one of the proposed criteria helped to correctly prioritize more than 80 (locations of) architectural problems, alleviating tedious manual inspections of the source code vis-a-vis with the architecture. This prioritization criteria would have helped developers to discard at least 500 code smells having no relation to architectural problems in the analyzed systems.

Original languageEnglish (US)
Title of host publicationProceedings - 2016 10th Brazilian Symposium on Components, Architectures and Reuse Software, SBCARS 2016
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages41-50
Number of pages10
ISBN (Electronic)9781509050864
DOIs
StatePublished - Dec 16 2016
Event10th Brazilian Symposium on Components, Architectures and Reuse Software, SBCARS 2016 - Maringa, Brazil
Duration: Sep 19 2016Sep 20 2016

Publication series

NameProceedings - 2016 10th Brazilian Symposium on Components, Architectures and Reuse Software, SBCARS 2016

Conference

Conference10th Brazilian Symposium on Components, Architectures and Reuse Software, SBCARS 2016
Country/TerritoryBrazil
CityMaringa
Period9/19/169/20/16

All Science Journal Classification (ASJC) codes

  • Software
  • Hardware and Architecture

Fingerprint

Dive into the research topics of 'Identifying architectural problems through prioritization of code smells'. Together they form a unique fingerprint.

Cite this