Detecting architectural integrity violation patterns using machine learning
Recent1 years have seen a surge of research into new ways of analyzing software quality. Specifically, a set of studies has been devoted to the impact the architectural relations among files have on system maintainability and file bug-proneness. The literature has proposed a set of rules for determining recurring architectural design flaws that occur in most complex systems, are associated with bugs, and thus incur high maintenance costs. In the present paper we advocate for using machine learning as the means of refining the approach and revealing new patterns of architectural integrity violations. Having trained a machine learning model on the combination of structural and historical information acquired from the Tiki open source project, we have been able to replicate three of the six known types of architectural violations and discover one new type, the Reverse Unstable Interface pattern. The implication of our study is that machine learning can provide valuable insights into the problem and discover novel patterns which would help software analysts to pinpoint specific architectural problems that may be the root causes of elevated bug- and change-proneness.
|Architectural flaws, Bug-proneness, Hotspot patterns, Machine learning, Software architecture|
|35th Annual ACM Symposium on Applied Computing, SAC 2020|
Zakurdaeva, A. (Alla), Weiss, M, & Muegge, S. (2020). Detecting architectural integrity violation patterns using machine learning. In Proceedings of the ACM Symposium on Applied Computing (pp. 1480–1487). doi:10.1145/3341105.3374008