Abstract:
Evolutionary Coupling (EC) is the implicit relationship between the artifacts or parts of the software system that are frequently changed together during evolution of a system. Understanding the EC in software systems is important, as it has been shown to provide insight into architectural problems, cross-cutting concerns, software defects and the impact of change. Today, the increasing size and coupling within and between software increases the importance of work on EC. In the first part of this thesis we analyse large commercial systems which have rarely been empirically studied to understand the relation between EC and defects. We explore the reasons for the contradicting results in the literature about the relationship between EC and defects. No studies exist to explain these contradictory findings. Our results show that the explanatory power of EC measures varies depending on defect types and module features such as size and developer activity. In the second part of the thesis we develop EC measurement evaluation criteria by using measurement theory and metrology principles. We show the weaknesses and strengths of current EC measures based on measurement theory principles. We provide recommendations for practitioners and researchers about what EC measure to use and not to use as well as when to use these measures. Furthermore, we develop a meta model for EC concepts, which are essential in understanding how the measure is derived and how to interpret it. To the best of our knowledge, this is the first work that applies measurement theory and metrology principles to EC measurement.