Architecture violations detection and visualization in the continuous integration pipeline. (31st May 2021) - Mendoza, Camilo; Bocanegra, José; Garcés, Kelly; Casallas, Rubby
Abstract: New code in projects can introduce violations that deviate the code implementation from the intended architecture. This process is known as architecture erosion. In this article, we propose an approach for recovering the implemented architecture, and detecting violations when comparing it with the intended architecture. Given a code repository, the continuous integration pipeline calls the solution to detect the incidences of architecture violations as well as some quality and social metrics. This data is presented in metric‐centered views that help development teams to manage architecture erosion. Our approach is based on model‐driven engineering techniques since models serve to represent the code, and a model‐based pattern language helps us to automate the search for violation occurrences and execute corresponding actions (e.g., creation/assignment of issues). We confirm the approach benefits in a real project implemented by a software developing company, in a sample project available on the internet, and in a software development course, including 20 projects, where every single project decreases its architecture violations density through time.