Files, classes, or methods have frequently been investigated in recent research on co-change. In this paper, we present a first study at the level of lines. To identify line changes across several versions, we define the annotation graph which captures how lines evolve over time. The annotation graph provides more fine-grained software evolution information such as life cycles of each line and related changes: “Whenever a developer changed line 1 of version.txt she also changed line 25 of Library.java.” Categories and Subject Descriptors D.2.7 [Software Engineering]: Distribution, Maintenance, and Enhancement—corrections, version control; D.2.9 [Management]: Software configuration management General Terms Management, Measurement
Thomas Zimmermann, Sunghun Kim, Andreas Zeller, E.