On the Relevance of Code Anomalies for Identifying Architecture Degradation Symptoms
Abstract
The longevity of evolving software systems largely depends on their resilience to architectural design degradation. It is often assumed that code anomalies are always key indicators of architecture degradation symptoms. The problem is that there is still limited knowledge about the circumstances under which code anomalies represent architectural problems. Without this knowledge, developers are not able to implement architecturally-relevant strategies for code refactoring. This paper presents an empirical study about the influence of code anomalies on architecture degradation symptoms. To this end, we studied the relationship between code anomalies and architecture problems in 6 software systems, which were intended to adhere different architectural decompositions. A total of 40 versions and 2056 code anomalies were analyzed. Our study revealed that 78% of all architecture problems in the programs were related to code anomalies. In particular, more than 33% of all architecture problems were unexpectedly induced by anomalous code elements in the systems' first version. We also found that the refactoring strategies, even when frequently applied in those systems, did not significantly contribute to remove architecturally-relevant code anomalies.
Integrity signals
Registry
Cites
Statistics
Claims the paper makes
Claims other papers make about this one
Each is checked against this paper’s own text: does it say what the citing paper says it does?
Some code smell detection tools employ code smell metrics relevant to identification of architectural smells.
“Some code smell detection tools also employ code smell metrics that are relevant to the identification of architectural smells [48, 58].”
From Software Architecture in Practice: Challenges and Opportunities (2023) · cites this paper as [58]
Obsolete documentation and increasing complexity of software are expressed as top reasons that cause architecture erosion in interviews.
“Obsolete documentation and increasing complexity of software are expressed as the top reasons that cause architecture erosion in our interviews (P1a, P3b, P3f, P4a-b), which have been also raised in the literature [25, 38, 58, 63].”
From Software Architecture in Practice: Challenges and Opportunities (2023) · cites this paper as [58]
Inadequate tool support for module- and system-level refactoring.
“Inadequate tool support for module- and system-level refactoring ( cogs ).”
From Software Architecture in Practice: Challenges and Opportunities (2023) · cites this paper as [58]
Cites
(1990) · Choice Reviews Online · doi:10.5860/choice.27-3338 · Cited by 35,305 · see citing works
Hosmer, D. W., & Lemeshow, S. (2000) · doi:10.1002/0471722146 · Cited by 20,302 · see citing works
Refactoring: Improving the Design of Existing Code
Fowler, M. (2002) · Lecture notes in computer science · doi:10.1007/3-540-45672-4_31 · Cited by 5,615 · see citing works
Refactoring improving the design of existing code
Saca, M. A. (2017) · IEEE Central America and Panama Convention (CONCAPAN) · doi:10.1109/concapan.2017.8278488 · Cited by 2,077 · see citing works
Foundations for the study of software architecture
Perry, D. E., & Wolf, A. L. (1992) · ACM SIGSOFT Software Engineering Notes · doi:10.1145/141874.141884 · Cited by 2,023 · see citing works
Object-Oriented Metrics in Practice
Lanza, M., & Marinescu, R. (2006) · Springer eBooks · doi:10.1007/3-540-39538-5 · Cited by 529 · see citing works
Aldrich, J., Chambers, C., & Notkin, D. S. (2002) · Proceedings/Proceedings - International Conference on Software Engineering · doi:10.1145/581339.581365 · Cited by 449 · see citing works
Software reflexion models: bridging the gap between design and implementation
Murphy, G. C., Notkin, D. S., & Sullivan, K. (2001) · IEEE Transactions on Software Engineering · doi:10.1109/32.917525 · Cited by 400 · see citing works
Evolving software product lines with aspects
Figueiredo, E., Cacho, N., Sant’Anna, C., Monteiro, M., Kulesza, U., Garcia, A. D., Soares, S., Ferrari, F. C., Khan, S. S., Castor, F., et al. (2008) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1145/1368088.1368124 · Cited by 336 · see citing works
Self-citationAn Exploratory Study of the Impact of Code Smells on Software Change-proneness
Khomh, F., Penta, M. D., & Guéhéneuc, Y. (2009) · Working Conference on Reverse Engineering (WCRE) · doi:10.1109/wcre.2009.28 · Cited by 312 · see citing works
Automated Detection of Refactorings in Evolving Components
Dig, D., Comertoglu, C., Marinov, D., et al. (2006) · Lecture notes in computer science · doi:10.1007/11785477_24 · Cited by 250 · see citing works
Olbrich, S. M., Cruzes, D. S., & Sjøberg, D. I. K. (2010) · IEEE International Conference on Software Maintenance (ICSM) · doi:10.1109/icsm.2010.5609564 · Cited by 240 · see citing works
Identifying Architectural Bad Smells
Garcia, J., Popescu, D., Edwards, G., et al. (2009) · Proceedings of the ... European Conference on Software Maintenance and Reengineering/Proceedings of the European Conference on Software Maintenance and Reengineering · doi:10.1109/csmr.2009.59 · Cited by 223 · see citing works
How we refactor, and how we know it
Murphy-Hill, E. R., Parnin, C., & Black, A. P. (2009) · doi:10.1109/icse.2009.5070529 · Cited by 197 · see citing works
On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study
Greenwood, P., Bartolomei, T. T., Figueiredo, E., Dósea, M., Garcia, A., Cacho, N., Sant’Anna, C., Soares, S., Borba, P. H. M., Kulesza, U., et al. (2007) · Lecture notes in computer science · doi:10.1007/978-3-540-73589-2_9 · Cited by 187 · see citing works
Self-citationHandbook of Parametric and Nonparametric Statistical Procedures: Third Edition
Sheskin, D. J. (2000) · Cited by 162 · see citing works
Using history information to improve design flaws detection
Ratiu, D., Ducasse, S., Gîrba, T., et al. (2004) · doi:10.1109/csmr.2004.1281423 · Cited by 151 · see citing works
On the Impact of Design Flaws on Software Defects
D’Ambros, M., Bacchelli, A., & Lanza, M. (2010) · Proceedings of the ... International Conference on Quality Software/Proceedings · doi:10.1109/qsic.2010.58 · Cited by 142 · see citing works
An empirical investigation into the role of API-level refactorings during software evolution
Kim, M., Cai, D., & Kim, S. (2011) · Proceedings/Proceedings - International Conference on Software Engineering · doi:10.1145/1985793.1985815 · Cited by 141 · see citing works
ArchJava: connecting software architecture to implementation
Aldrich, J., Chambers, C., & Notkin, D. S. (2003) · Proceedings/Proceedings - International Conference on Software Engineering · doi:10.1109/icse.2002.1007967 · Cited by 141 · see citing works
Schedule of Bad Smell Detection and Resolution: A New Way to Save Effort
Liu, H., Ma, Z., Shao, W., et al. (2011) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2011.9 · Cited by 113 · see citing works
Macia, I., Garcia, J., Popescu, D., Garcia, A., Medvidovic, N., & von Staa, A. (2012) · Proceedings of the 11th annual international conference on Aspect-oriented Software Development · doi:10.1145/2162049.2162069 · Cited by 111 · see citing works
Self-citationAre refactorings less error-prone than other changes?
Weißgerber, P., & Diehl, S. (2006) · doi:10.1145/1137983.1138011 · Cited by 96 · see citing works
Combating architectural degeneration: a survey
Hochstein, L., & Lindvall, M. (2005) · Information and Software Technology · doi:10.1016/j.infsof.2004.11.005 · Cited by 94 · see citing works
Defining and continuous checking of structural program dependencies
Eichberg, M., Kloppenburg, S., Klose, K., & Mezini, M. (2008) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1145/1368088.1368142 · Cited by 92 · see citing works
Understanding the longevity of code smells
Arcoverde, R., Garcia, A., & Figueiredo, E. (2011) · doi:10.1145/1984732.1984740 · Cited by 85 · see citing works
Self-citationDucasse, S., Gîrba, T., & Kuhn, A. (2006) · Proceedings/Proceedings - Conference on Software Maintenance · doi:10.1109/icsm.2006.22 · Cited by 81 · see citing works
Ubayashi, N., Jun, N., & Tamai, T. (2010) · doi:10.1145/1806799.1806815 · Cited by 60 · see citing works
Abi-Antoun, M., & Aldrich, J. (2009) · ACM SIGPLAN Notices · doi:10.1145/1639949.1640113 · Cited by 57 · see citing works
Reconceptualizing a Family of Heterogeneous Embedded Systems via Explicit Architectural Support
Malek, S., Seo, C., Ravula, S., et al. (2007) · Proceedings/Proceedings - International Conference on Software Engineering · doi:10.1109/icse.2007.69 · Cited by 42 · see citing works
An exploratory study of code smells in evolving aspect-oriented systems
Bertran, I. M., Garcia, A., & von Staa, A. (2011) · International Conference on Aspect-Oriented Software Development (AOSD) · doi:10.1145/1960275.1960300 · Cited by 37 · see citing works
Self-citationA static aspect language for checking design rules
Morgan, C., Volder, K. D., & Wohlstadter, E. (2007) · International Conference on Aspect-Oriented Software Development (AOSD) · doi:10.1145/1218563.1218571 · Cited by 33 · see citing works
Exploring Inter-Module Relationships in Evolving Software Systems
Lungu, M. F., & Lanza, M. (2007) · Proceedings of the ... European Conference on Software Maintenance and Reengineering/Proceedings of the European Conference on Software Maintenance and Reengineering · doi:10.1109/csmr.2007.24 · Cited by 24 · see citing works
Mara, L., Honorato, G., Medeiros, F. D., et al. (2011) · doi:10.1145/1960314.1960335 · Cited by 13 · see citing works
Flagged first, then by citations
Cited by
Sorted by citations
Software Architecture in Practice: Challenges and Opportunities
Wan, Z., Zhang, Y., Xia, X., Jiang, Y., & Lo, D. (2023) · Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering · doi:10.1145/3611643.3616367 · Cited by 30 · see citing works
Are code smell detection tools suitable for detecting architecture degradation?
Lenhard, J., Hassan, M. M., Blom, M., & Herold, S. (2017) · Proceedings of the 11th European Conference on Software Architecture: Companion Proceedings · doi:10.1145/3129790.3129808 · Cited by 10 · see citing works
- Authors
- Macia, I., Arcoverde, R., Garcia, A., Chavez, C., & von Staa, A.
- Affiliations
- Pontifícia Universidade Católica do Rio de Janeiro (BR)
- ORCID
- Garcia, Alessandro
- Venue
- 2012 16th European Conference on Software Maintenance and Reengineering
- Publisher
- IEEE
- Published
- 2012-03
- Pages
- 277-286
- ISSN
- 1534-5351 (ISSN-L)
- OpenAlex
- W2044556410
- Cited by
- 121
- References
- 34
- Citations by year
- 2026: 1 · 2025: 7 · 2024: 6 · 2023: 7 · 2022: 6 · 2021: 6 · 2020: 15 · 2019: 12 · 2018: 10 · 2017: 13 · 2016: 9 · 2015: 7 · 2014: 9 · 2013: 8 · 2012: 5
- FWCI
- 7.30
- Type
- conference paper
- Language
- en
- Open access
- closed
- Locations
- Euromicro Conference on Software Maintenance and Reengineering (CSMR) (publishedVersion)
- Topics
- Physical Sciences › Computer Science › Information Systems › Software Engineering Research
- Physical Sciences › Computer Science › Artificial Intelligence › Advanced Software Engineering Methodologies
- Physical Sciences › Computer Science › Computer Networks and Communications › Software System Performance and Reliability
- Keywords
- software architecture, refactoring, architectural problems, software evolution, software resilience
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review