Software systems continuously evolve. CVS record almost all of the changes the system parts undergo. Hence, CVS repositories contain a great deal of information about software artifact evolution. Software artifacts of a system can evolve following similar evolution patterns as well as very different ones. A peculiar kind of similarity in evolution is the one among two or more artifacts having changed almost at the same times for a certain number of changes. We name these co-changing artifacts. Co-changing artifacts are relevant because cochanges can be inducted by not trivial dependencies among system parts.
In this paper, we propose a definition of co-changes suitable of practical application. We assess the challenges arising in detection of groups of co-changing software parts, and we present a robust approach, based on Dynamic Time Warping, to detect groups of co-changing files in CVS repositories. We also report and discuss the results of a preliminary application of the approach to the Mozilla CVS repository.