TY - JOUR
T1 - Exploring architecture blueprints for prioritizing critical code anomalies
T2 - Experiences and tool support
AU - Guimarães, E.
AU - Vidal, S.
AU - Garcia, A.
AU - Diaz Pace, J. A.
AU - Marcos, C.
N1 - Publisher Copyright:
Copyright © 2018 John Wiley & Sons, Ltd.
PY - 2018/5
Y1 - 2018/5
N2 - The manifestation of code anomalies in software systems often indicates symptoms of architecture degradation. Several approaches have been proposed to detect such anomalies in the source code. However, most of them fail to assist developers in prioritizing anomalies harmful to the software architecture of a system. This article presents an investigation on how developers, when supported by architecture blueprints, are able to prioritize architecturally relevant code anomalies. First, we performed a controlled experiment where participants explored both blueprints and source code to reveal architecturally relevant code anomalies. Although the use of blueprints has the potential to improve code anomaly prioritization, the participants often made several mistakes. We found these mistakes might occur because developers miss relationships between implementation and blueprint elements when they prioritize anomalies in an ad hoc manner. Furthermore, the time spent on the prioritization process was considerably high. Aiming to improve the accuracy and effectiveness of the process, we provided means to automate the prioritization process. In particular, we explored 3 prioritization criteria, which establish different ways of relating the blueprint elements with code anomalies. These criteria were implemented in the JSpIRIT tool. The approach was evaluated in the context of 2 applications with satisfactory precision results.
AB - The manifestation of code anomalies in software systems often indicates symptoms of architecture degradation. Several approaches have been proposed to detect such anomalies in the source code. However, most of them fail to assist developers in prioritizing anomalies harmful to the software architecture of a system. This article presents an investigation on how developers, when supported by architecture blueprints, are able to prioritize architecturally relevant code anomalies. First, we performed a controlled experiment where participants explored both blueprints and source code to reveal architecturally relevant code anomalies. Although the use of blueprints has the potential to improve code anomaly prioritization, the participants often made several mistakes. We found these mistakes might occur because developers miss relationships between implementation and blueprint elements when they prioritize anomalies in an ad hoc manner. Furthermore, the time spent on the prioritization process was considerably high. Aiming to improve the accuracy and effectiveness of the process, we provided means to automate the prioritization process. In particular, we explored 3 prioritization criteria, which establish different ways of relating the blueprint elements with code anomalies. These criteria were implemented in the JSpIRIT tool. The approach was evaluated in the context of 2 applications with satisfactory precision results.
UR - http://www.scopus.com/inward/record.url?scp=85041236239&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85041236239&partnerID=8YFLogxK
U2 - 10.1002/spe.2563
DO - 10.1002/spe.2563
M3 - Article
AN - SCOPUS:85041236239
SN - 0038-0644
VL - 48
SP - 1077
EP - 1106
JO - Software - Practice and Experience
JF - Software - Practice and Experience
IS - 5
ER -