| node types: | source code file, change transaction of version repository |
| edge type: | file was changed in change transaction |
| number of nodes: | 203 files and 203 transactions [the equality is coincidence] |
| number of edges: | 1343 |
Changes of software systems are less expensive and less error-prone if they affect only one subsystem. Thus groups of files that frequently change together are subsystem candidates. The edge-repulsion LinLog drawing helps to identify such groups. It shows only the files (but files and change transactions were used to compute the drawing). The colors indicate the membership of the files in subsystems in the existing decomposition of the software system.
Application scenarios for such drawings include:
Improvement of an existing subsystem structure. For example, the drawing shows that some files of the green subsystem changed mostly together with the red subsystem, so they should probably be moved to the red subsystem.
Proposal of a new subsystem structure, if no useful subsystem structure exist. The drawing shows that the edge-repulsion LinLog energy model rediscovered the existing subsystem structure fairly well, i.e. grouped nodes with the same color.
Suggestion of changes. When a file is changed, then it could be necessary to change other files that are close to it in the drawing, because these files frequently changed together in the past.
The positions of files that changed rarely (small circles) should not be over-interpreted, because a certain minimum number of changes is necessary to reliably assign a file to group.
![]() |
| Edge-repulsion LinLog model (click on the picture to view VRML file) |
![]() |
![]() |
| Fruchterman-Reingold model (for comparision) | Node-repulsion LinLog model (for comparison) |
| back |