Detecting architecturally-relevant code smells in evolving software systems
Abstract
Refactoring tends to avoid the early deviation of a program from its intended architecture design. However, there is little knowledge about whether the manifestation of code smells in evolving software is indicator of architectural deviations. A fundamental difficulty in this process is that developers are only equipped with static analysis techniques for the source code, which do not exploit traceable architectural information. This work addresses this problem by: (1) identifying a family of architecturally-relevant code smells; (2) providing empirical evidence about the correlation of code smell patterns and architectural degeneration; (3) proposing a set of metrics and detection strategies and that exploit traceable architectural information in smell detection; and (4) conceiving a technique to support the early identification of architecture degeneration symptoms by reasoning about code smell patterns.
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?
Previous studies indicate that certain patterns of co-occurrence of code smells tend to be effective indicators of architectural erosion.
“Previous studies indicate that certain patterns of co-occurrence of code smells tend to be effective indicators of architectural erosion [9, 35, 53, 59].”
From Software Architecture in Practice: Challenges and Opportunities (2023) · cites this paper as [9]
Unawareness of correlation between code smells and architecture.
“Unawareness of correlation between code smells and architecture”
From Software Architecture in Practice: Challenges and Opportunities (2023) · cites this paper as [9]
Cites
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
Kiczales, G. (1996) · ACM Computing Surveys · doi:10.1145/242224.242420 · Cited by 5,146 · see citing works
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C. V., Loingtier, J. M., & Irwin, J. (1997) · Lecture notes in computer science · doi:10.1007/bfb0053381 · Cited by 2,573 · see citing works
DECOR: A Method for the Specification and Detection of Code and Design Smells
Moha, N., Guéhéneuc, Y., Duchien, L., & Meur, A.-F. L. (2009) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2009.50 · Cited by 803 · see citing works
How We Refactor, and How We Know It
Murphy-Hill, E., Parnin, C., & Black, A. P. (2012) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2011.41 · Cited by 547 · 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
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
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
Improving evolvability through refactoring
Ratzinger, J., Fischer, M. D., & Gall, H. C. (2005) · ACM SIGSOFT Software Engineering Notes · doi:10.1145/1082983.1083155 · Cited by 79 · see citing works
Improving evolvability through refactoring
Ratzinger, J., Fischer, M., & Gall, H. C. (2005) · doi:10.1145/1083142.1083155 · Cited by 53 · 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-citationScalable, expressive, and context-sensitive code smell display
Murphy-Hill, E. R. (2008) · Companion to the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA Companion) · doi:10.1145/1449814.1449854 · Cited by 5 · see citing works
Detecting Design Defects Caused by Design Rule Violations
Wong, S., Cai, Y., & Dalton, M. (2009) · Cited by 4 · 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
“Conversely, developers are suggested to be actively involved (P3f), by providing explanations or rationale behind implementation decisions that violate the criteria for metrics as specified in monitoring tools.”
Background
- Authors
- Bertran, I. M.
- Affiliations
- Pontifical Catholic University of Rio de Janeiro, Rio de Janeiro, Brazil
- Venue
- Proceedings of the 33rd International Conference on Software Engineering
- Publisher
- ACM
- Published
- 2011-05-21
- Pages
- 1090-1093
- ISSN
- 0270-5257 (ISSN-L)
- OpenAlex
- W2121316451
- Cited by
- 28
- References
- 14
- Citations by year
- 2025: 1 · 2024: 1 · 2023: 4 · 2022: 7 · 2020: 4 · 2019: 4 · 2018: 2 · 2017: 2 · 2016: 1 · 2013: 1 · 2012: 1
- FWCI
- 0.48
- Type
- conference paper
- Language
- en
- Open access
- closed
- Locations
- ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) (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 › Software › Model-Driven Software Engineering Techniques
- Keywords
- code smells, software architecture, software evolution, refactoring, architectural metrics, code smell detection, software quality
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