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
IMPLEMENTATION – EXISTING WORK
Previous work from Francis NAHM:
List of AntiPatterns for each version of the Argouml project
(APs example : ComplexClass, LongMethod, LongParameterList)
IMPLEMENTATION – COLLECT
Collect information about the Argouml project:
IMPLEMENTATION – WHAT IS INTERESTING IN « SVN LOG »
IMPLEMENTATION – KEEP INTERESTING INFORMATION
Get the list of contributors
Get the date of commits
Get the files/classes that had been modified
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%
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.
IMPLEMENTATION – WHAT THE CSV LOOKS LIKE
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]
A = 11 ; D = 8 ; S = 2
A > D > S This class is considered to have a global amelioration tendency
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.
Only MC on
No longer MC
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
Of course, this work should be reproduced on other projects.
Met new people
Learnt Python language (enjoyed coding for once)
Not sure I would be a good researcher ^^