Java構文要素のカップリング
時刻 t1 でのファイル A.java と、時刻 t2 (> t1) でのファイル A.java の内容を関連付ける。
- A.java (t1)
class C1 implements Serializeable { private static final long serialVersionUID = 1L; } class C2 { public static void main(String...args) { } } class C3 implements Serializeable { private static final long serialVersionUID = 1L; }
- A.java (t2)
class C1Dash implements Serializeable { private static final long serialVersionUID = 1L; @Override public String toString() { return "C1Dash"; } } class C2Dash { public static void main(String...args) { System.out.println("Hello, world!"); } @Override public String toString() { return "C2Dash"; } } class C3Dash { @Override public String toString() { return "C3Dash"; } }
先日のSEDを使って、
操作 | t1 | t2 |
---|---|---|
変更 | C1 | C1Dash |
変更 | C2 | C2Dash |
削除 | C3 | - |
追加 | - | C3Dash |
こんな感じで追跡できるように。ただし、SEDをそのまま使うのではなく、Javaの開発に即した感じでやってます。
C3 から C3Dash はSEDの閾値によって同一の系列とみなしてません。最終的にはこの辺がかなりヒューリスティックになりそうです。