Detecting Architectural Erosion using Runtime Verification
Diego Marmsoler (Technische Universit\"at M\"unchen), Ana Petrovska, (Technische Universit\"at M\"unchen)

TL;DR
This paper introduces a runtime verification approach to detect architectural erosion in software systems, addressing limitations of static analysis in dynamic architectures through formal specifications and monitor generation.
Contribution
It presents a systematic method to translate architectural constraints into runtime monitors, implemented in Eclipse/EMF, and validated with case studies.
Findings
Effective detection of architectural violations at runtime
Applicable to dynamic architectures where static analysis fails
Validated through case studies demonstrating practical utility
Abstract
The architecture of a system captures important design decisions for the system. Over time, changes in a system's implementation may lead to violations of specific design decisions. This problem is common in industry and known as architectural erosion. Since it may have severe consequences on the quality of a system, research has focused on the development of tools and techniques to address the presented problem. As of today, most of the approaches to detect architectural erosion employ static analysis techniques. While these techniques are well-suited for the analysis of static architectures, they reach their limit when it comes to dynamic architectures. Thus, in this paper, we propose an alternative approach based on runtime verification. To this end, we propose a systematic way to translate a formal specification of architectural constraints to monitors, which can be used to detect…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Advanced Software Engineering Methodologies · Software Engineering Techniques and Practices
