Stop the software architecture erosion: building better software systems
Abstract
In lots of software projects unfortunately an architectural erosion happens over time. Modules which were independent, become connected, plug-ins finally depend on each other, and in general the architecture gets violated more and more. In this paper we will discuss how to avoid such architecture- and design-erosion and how an already eroded system can be fixed again. We will look at three different level of static analysis and examine architectural analysis in detail. Also typical use cases for architectural analysis are examined, followed by a collection of requirements for powerful tool support. The eclipse platform serves as case study and we look if, and how far architectural erosion happened there and if it can be fixed. Finally we discuss pros and cons of architectural analysis and conclude with an out view.
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?
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 [63]
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 [63]
Cites
The Rational Unified Process: An Introduction
Kruchten, P. B. (1998) · Cited by 2,597 · see citing works
A classification and comparison framework for software architecture description languages
Medvidovic, N., & Taylor, R. N. (2000) · IEEE Transactions on Software Engineering · doi:10.1109/32.825767 · Cited by 1,987 · see citing works
AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis
Brown, W. H., Malveau, R. C., McCormick, H. W., & Mowbray, T. J. (1998) · Cited by 932 · see citing works
SAAM: a method for analyzing the properties of software architectures
Kazman, R., Bass, L., Abowd, G. D., & Webb, M. (1994) · doi:10.5555/257734.257746 · Cited by 486 · see citing works
Using dependency models to manage complex software architecture
Sangal, N., Jordan, E., Sinha, V., & Jackson, D. N. (2005) · Conference on Object-Oriented Programming Systems, Languages, and Applications · doi:10.1145/1094811.1094824 · Cited by 371 · see citing works
Proceedings of 1993 15th International Conference on Software Engineering
Palomba, F., Panichella, A., Zaidman, A., Oliveto, R., & Lucia, A. D. (1993) · doi:10.1109/icse.1993 · Cited by 234 · see citing works
Safer C: Developing Software for High-Integrity and Safety-Critical Systems
Hatton, L. (1994) · Research Repository (Kingston University London) · Cited by 50 · see citing works
Safer C: Developing software for high-integrity and safety-critical systems
Radley, C. F. (1996) · Control Engineering Practice · doi:10.1016/s0967-0661(96)90046-5 · Cited by 38 · see citing works
Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)
Meyers, S. (2005) · Addison-Wesley Professional eBooks · Cited by 26 · see citing works
Improving software quality with static analysis
Foster, J. S., Hicks, M., & Pugh, W. (2007) · ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE) · doi:10.1145/1251535.1251549 · Cited by 21 · see citing works
Extending and Managing Software Reflexion Models
Murphy, G. C., Notkin, D. S., & Sullivan, K. (1997) · Cited by 6 · see citing works
Flagged first, then by citations
Cited by
Sorted by citations
What is social debt in software engineering?
Tamburri, D. A., Kruchten, P. B., Lago, P., & van Vliet, H. (2013) · International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE) · doi:10.1109/chase.2013.6614739 · Cited by 117 · see citing works
Software evolution visualization: A systematic mapping study
Novais, R. L., Torres, A. L. C., Mendes, T. S., Mendonça, M., & Zazworka, N. (2013) · Information and Software Technology · doi:10.1016/j.infsof.2013.05.008 · Cited by 90 · see citing works
Towards an Architectural Debt Index
Roveda, R., Fontana, F. A., Pigazzini, I., & Zanoni, M. (2018) · Euromicro Conference on Software Engineering and Advanced Applications (SEAA) · doi:10.1109/seaa.2018.00073 · Cited by 46 · see citing works
Understanding software architecture erosion: A systematic mapping study
Li, R., Liang, P., Soliman, M., & Avgeriou, P. (2022) · Journal of Software: Evolution and Process · doi:10.1002/smr.2423 · Cited by 45 · see citing works
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
“Software maintenance aims to modify the software system and ensure that the system continues to satisfy requirements while preserving its integrity.”
BackgroundUnderstanding Architecture Erosion: The Practitioners’ Perceptive
Li, R., Liang, P., Soliman, M., & Avgeriou, P. (2021) · IEEE International Conference on Program Comprehension (ICPC) · doi:10.1109/icpc52881.2021.00037 · Cited by 22 · see citing works
Continuous Software Architecture Analysis
Buchgeher, G., & Weinreich, R. (2013) · Elsevier eBooks · doi:10.1016/b978-0-12-407772-0.00006-x · Cited by 9 · see citing works
Detecting Architecture Erosion by Design Decision of Architectural Pattern.
Zhang, L., Sun, Y., Song, H., Chauvel, F., & Mei, H. (2011) · Proceedings/Proceedings of the ... International Conference on Software Engineering and Knowledge Engineering · Cited by 8 · see citing works
Evaluation of a static architectural conformance checking method in a line of computer games
Olsson, T., Toll, D., Wingkvist, A., & Ericsson, M. (2014) · International ACM SIGSOFT Conference on Quality of Software Architectures (QoSA) · doi:10.1145/2602576.2602590 · Cited by 7 · see citing works
Reuse across Multiple Architectures
Kumara, I., & Gamage, C. D. (2012) · IGI Global eBooks · doi:10.4018/978-1-4666-0897-9.ch005
- Authors
- Merkle, B.
- Affiliations
- Sick (Germany) (DE)
- Corresponding author
- Merkle, Bernhard
- Venue
- Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
- Publisher
- ACM
- Published
- 2010-10-17
- Pages
- 129-138
- OpenAlex
- W2131576385
- Cited by
- 10
- References
- 11
- Citations by year
- 2023: 1 · 2022: 1 · 2021: 1 · 2018: 1 · 2014: 1 · 2013: 3 · 2012: 1
- FWCI
- 1.12
- Type
- conference paper
- Language
- en
- Open access
- closed
- Locations
- Companion to the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 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
- architectural analysis, static analysis, Eclipse platform, software architecture recovery, software architecture tools
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