A degree-of-knowledge model to capture source code familiarity

The size and high rate of change of source code comprising a software system make it difficult for software developers to keep up with who on the team knows about particular parts of the code. Existing approaches to this problem are based solely on authorship of code. In this paper, we present data from two professional software development teams to show that both authorship and interaction information about how a developer interacts with the code are important in characterizing a developer's knowledge of code. We introduce the degree-of-knowledge model that computes automatically a real value for each source code element based on both authorship and interaction information. We show that the degree-of-knowledge model can provide better results than an existing expertise finding approach and also report on case studies of the use of the model to support knowledge transfer and to identify changes of interest.

[1]  Audris Mockus,et al.  Expertise Browser: a quantitative approach to identifying expertise , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[2]  Thomas Zimmermann,et al.  Mining usage expertise from version archives , 2008, MSR '08.

[3]  Spencer Rugaber,et al.  Enriching revision history with interactions , 2006, MSR '06.

[4]  Mik Kersten,et al.  Using task context to improve programmer productivity , 2006, SIGSOFT '06/FSE-14.

[5]  Mik Kersten Focusing knowledge work with task context , 2007 .

[6]  Mark S. Ackerman,et al.  Expertise recommender: a flexible recommendation system and architecture , 2000, CSCW '00.

[7]  Mik Kersten,et al.  Mylar: a degree-of-interest model for IDEs , 2005, AOSD '05.

[8]  Robert DeLine,et al.  Let's go to the whiteboard: how and why software developers use drawings , 2007, CHI.

[9]  Michael W. Godfrey,et al.  Understanding interaction differences between newcomer and expert programmers , 2008, RSSE '08.

[10]  Thomas Fritz,et al.  Does a programmer's activity indicate knowledge of code? , 2007, ESEC-FSE '07.

[11]  Michele Lanza,et al.  Mining the history of synchronous changes to refine code ownership , 2009, 2009 6th IEEE International Working Conference on Mining Software Repositories.

[12]  Stéphane Ducasse,et al.  How developers drive software evolution , 2005, Eighth International Workshop on Principles of Software Evolution (IWPSE'05).

[13]  Mary Czerwinski,et al.  Towards understanding programs through wear-based filtering , 2005, SoftVis '05.

[14]  Gail C. Murphy,et al.  Recommending Emergent Teams , 2007, Fourth International Workshop on Mining Software Repositories (MSR'07:ICSE Workshops 2007).