Exploring architecture blueprints for prioritizing critical code anomalies: Experiences and tool support

E. Guimarães, S. Vidal, A. Garcia, J. A. Diaz Pace, C. Marcos

Research output: Contribution to journalArticle

3 Scopus citations

Abstract

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.

Original languageEnglish (US)
Pages (from-to)1077-1106
Number of pages30
JournalSoftware - Practice and Experience
Volume48
Issue number5
DOIs
StatePublished - May 2018

All Science Journal Classification (ASJC) codes

  • Software

Fingerprint Dive into the research topics of 'Exploring architecture blueprints for prioritizing critical code anomalies: Experiences and tool support'. Together they form a unique fingerprint.

Cite this