Let a constituent of a program by any of class, interface, method, field... First step: 1. Define a program p, composed of a set of constituent C. 2. Define a set of refactorings R applying on any constituent. 3. Define a set of metrics M to compute on constituents. 4. Choose a subset of C, . 5. Choose a subset of R, . 6. Apply on to obtain 7. Compute the metrics in M on both the ci and the c'j. 8. Apply the similarity measure and assess precision and recall. Second step: 1. Choose a set of programs P (either different version of a same program and different similar programs). 2. Apply the similarity measure defined above.