Monitoring and Controlling Software Architecture Erosion
During the development and maintenance activities, it is likely that architectural violations are introduced and consequently the implementation diverges from the intended software architecture. The agglomeration of such architectural violations is known as architecture erosion causing degradation of software quality attributes, e.g. maintainability. In order to ensure longevity of a software system, it is important to monitor and control architecture erosion during the entire software life cycle.
This project aims at detecting and evaluating critical architectural violations in a software system. First, we identified the most critical architectural concerns regarding architecture erosion by interviewing software architects from industry and how they identify and prevent architecture erosion. Second, we provide an approach that aims to detect and prioritize architectural violations of a software system. We not only investigate the source code but additionally use software data like source code comments, commits from source code versioning systems, pull requests, issue tracking systems etc. Additionally, we want to describe how architecture erosion emerges when the source code is changed. We investigate if recurring evolution styles of architecture erosion exist that can be used further for prediction and prevention of architecture erosion.
University research project, PhD research project
Duration: Aug 2014 - Feb 2020