By Duc Le
Architectural decay is a consequence of bad design or bad programming practices during development and refactoring. Architecture smells is a way to find decay. The idea is that finding decay helps in preventing technical debt. But there is no empircal evidence for this idea. That is the basis of this paper. From Github, they collected many versions of several systems (421 versions, 376 MLoC). With architecture recovery techniques they extracted the as-is architecture of each of these versions. Then, they ran a smell detector on each of the architectures to find the different smells. Additionally, they wanted to correlate this with the issues documented (in Jira and commits). They only looked at fixed or closed issues. Next, they mapped the smells they found on the issues collected. For their first hypothesis, whether smelly files are more likely to be issue-prone than clean files, they find that it is doubled. Similarly, smelly files are 1,5 times more likely to be change-prone. Another observation is that significant signes of decay were already present in initial versions, and that these increase slowly, compared to the complete system. They didn’t find a correlation between file size and smells.
A very nice empirical study on decay and architecture reconstruction!