3. CONTEXT
Foutse’s research interests
Developping techniques and tools to assess the quality of systems
Design patterns, design defects : their impact on the quality of systems and their
evolution in systems
Foutse “Antipatterns are more fault prone” . 2012
Christian Bird. Don’t Touch My Code! Examining the Effects of Ownership on
Software Quality. 2011
5. IMPLEMENTATION – EXISTING WORK
Previous work from Francis NAHM:
List of AntiPatterns for each version of the Argouml project
(APs example : ComplexClass, LongMethod, LongParameterList)
8. IMPLEMENTATION – KEEP INTERESTING INFORMATION
Get the list of contributors
Get the date of commits
Get the files/classes that had been modified
9. IMPLEMENTATION – EVALUATE MAJOR CONTRIBUTOR RATE
Major contributor: A developer who has made changes to a component and whose
ownership is at or above X% is a major contributor to the component and a commit
from such a developer is a major contribution.
3rd quartile of all contributors statistics on each classes : 71%
10. IMPLEMENTATION – ADD INFORMATION OF MC ON EACH VERSION
Know the kind of contributor for each version on each class.
Add it beside the number of AntiPatterns on each version of each class.
12. IMPLEMENTATION – METHOD TO ESTIMATE THE EVOLUTION OF A CLASS
List of the occurrence of AntiPatterns for each class.
Example: [5, 3, 4, 4, 1, 2, 5]
[0]: A-A-A-A-A-S
[1]: D-D-A-A-D
[2]: S-A-A-D
[3]: A-A-D
[4]: D-D
[5]: D
A = 11 ; D = 8 ; S = 2
A > D > S This class is considered to have a global amelioration tendency
13. IMPLEMENTATION – DIFFERENT CATEGORIES OF LIST
Classes with only Major Contributor (MC) on each version of the project.
Classes without any MC.
Classes with a MC, only on the first version.
Classes with a developer who becomes MC after few versions without any.
Classes where there is no longer MC after few versions with a MC.
14. RESULTS
Only MC
No MC
Only MC on
the 1st
version
Stable
58%
73,63%
74,40%
87,13%
79,18%
Amelioration
24%
11,55%
7,76%
1,98%
14,46%
Degradation
18%
14,82%
20,84%
10,89%
6,36%
Become MC
No longer MC
15. CONCLUSION
Linus Law. “Given a large enough developers, almost every problem will be
characterized quickly and the fix will be obvious to someone“
AntiPatterns have the same characteristics of Bugs correlate with
ownership.
Of course, this work should be reproduced on other projects.
16. PERSONAL EXPERIENCE
Lab experience
Met new people
Learnt Python language (enjoyed coding for once)
Not sure I would be a good researcher ^^