TY - GEN
T1 - Identifying architectural problems through prioritization of code smells
AU - Vidal, Santiago
AU - Guimaraes, Everton
AU - Oizumi, Willian
AU - Garcia, Alessandro
AU - Pace, Andrés Díaz
AU - Marcos, Claudia
N1 - Funding Information:
This work is funded by CAPES/Procad (grant # 175956), CNPq (grants # 483425/2013-3 and 309884/2012-8) and FAPERJ (E26-102.166/2013). This research is part of a Brazil- Argentina collaboration project, funded by CAPES- MINCYT.
Publisher Copyright:
© 2016 IEEE.
PY - 2016/12/16
Y1 - 2016/12/16
N2 - 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.
AB - 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.
UR - http://www.scopus.com/inward/record.url?scp=85011298938&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85011298938&partnerID=8YFLogxK
U2 - 10.1109/SBCARS.2016.11
DO - 10.1109/SBCARS.2016.11
M3 - Conference contribution
AN - SCOPUS:85011298938
T3 - Proceedings - 2016 10th Brazilian Symposium on Components, Architectures and Reuse Software, SBCARS 2016
SP - 41
EP - 50
BT - Proceedings - 2016 10th Brazilian Symposium on Components, Architectures and Reuse Software, SBCARS 2016
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 10th Brazilian Symposium on Components, Architectures and Reuse Software, SBCARS 2016
Y2 - 19 September 2016 through 20 September 2016
ER -