Improving the detection of evolutionary coupling
Marcelo De Oliveira Costa Machado, Ricardo Choren · 2018
During the evolution of software systems, change tends to make software designs erode over time. Modifications to a system that violate its architectural principles can result in evolutionary coupling between classes. While techniques have been proposed to detect evolutionary coupling, they are difficult to confirm if, indeed, it is a logical dependency acquired. This occurs due to the fact that, normally, the architect uses a single snapshot of the system architecture in the analysis, instead of making sense of the continuous architectural evolution. To address this problem, we argue for using a set of consecutive releases. We consider that using a single unattached release of the system is an inherent obstacle in establishing true evolutionary coupling between architectural elements - the limited view of the evolution process may hinder such analysis. In this paper, we present an approach that considers the concept of sliding verification to calculate the probability two architectural elements change together, improving the detection of evolutionary coupling. A continuous subset of versions are used in such analysis. We also describe the application of the proposed approach in one large Military Command and Control System evolution scenario.