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

@article{Fritz2010ADM,
  title={A degree-of-knowledge model to capture source code familiarity},
  author={Thomas Fritz and Jingwen Ou and Gail C. Murphy and Emerson R. Murphy-Hill},
  journal={2010 ACM/IEEE 32nd International Conference on Software Engineering},
  year={2010},
  volume={1},
  pages={385-394}
}
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… 

Figures and Tables from this paper

Degree-of-knowledge
TLDR
A degree-of-knowledge model is introduced that computes automatically, for each source-code element in a codebase, a real value that represents a developer's knowledge of that element based on a developers' authorship and interaction data.
Using Developers Contributions on Software Vocabularies to Identify Experts
TLDR
Results confirm similarity between vocabularies might be explored to point out code experts and can recommend among current team members one whose vocabulary is closest to the entity for orphaned entities.
Identifying key developers in software projects using code authorship metrics
TLDR
This thesis proposes an algorithm to estimate truck factors (TF), a concept widely used by practitioners to reveal key project members, and uses this algorithm to detect TF events in 1,932 projects and to reveal the practices that help them to overcome such events.
Mining Software Repositories for Accurate Authorship
TLDR
Two new line-level authorship models are presented to overcome the limitation of current tools that assume that the last developer to change a line of code is its author regardless of all earlier changes.
Assessing Developer Expertise from the Statistical Distribution of Programming Syntax Patterns
TLDR
This paper focuses on syntactic patterns mastery as an evidence of knowledge in programming and proposes a theoretical definition of programming knowledge based on the distribution of Syntax Patterns in source code, namely Zipf’s law.
Mining API Expertise Profiles with Partial Program Analysis
TLDR
This paper considers a technique called Partial Program Analysis for resolving type bindings in Java source code in the absence of third-party library binaries and evaluates different design options on 4 open-source Java projects.
Assessing Code Authorship: The Case of the Linux Kernel
TLDR
A case study on the Linux kernel shows that only a small portion of developers makes significant contributions to the code base; the distribution of the number of files per author is highly skewed; and authors with a high number of co-authorship connections tend to collaborate with others with less connections.
Measuring and analyzing code authorship in 1 + 118 open source projects
Revisiting Code Ownership and Its Relationship with Software Quality in the Scope of Modern Code Review
TLDR
This paper complements traditional code ownership heuristics using code review activity, and suggests that reviewing activity captures an important aspect of code ownership, and should be included in approximations of it in future studies.
Developer-centric models: easing access to relevant information in a software development environment
TLDR
The concept of a developer-centric model is introduced and the Degree-of-Knowledge model provides a means to automatically determine the core of what a developer knows, which can then be used to identify the information a developer might be interested in.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 14 REFERENCES
Does a programmer's activity indicate knowledge of code?
TLDR
An empirical study investigates whether a programmer's activity can be used to build a model of what a programmer knows about a code base and found that a degree of interest model based on this frequency and recency of interaction can often indicate the parts of the code base for which the programmer has knowledge.
How developers drive software evolution
TLDR
The mapping between the changes and the author identifiers (e.g., user names) provided by versioning repositories is used to define the ownership map visualization to understand when and how different developers interacted in which way and in which part of the system.
Mining the history of synchronous changes to refine code ownership
  • L. Hattori, Michele Lanza
  • Computer Science
    2009 6th IEEE International Working Conference on Mining Software Repositories
  • 2009
TLDR
This paper illustrates how the information mined by the Syde tool can help to provide a refined notion of code ownership and breaks new ground in terms of how such information can assist developers.
Mining usage expertise from version archives
TLDR
Preliminary results for the ECLIPSE project are presented that demonstrate that the concept of usage expertise, which manifests itself whenever developers are using functionality, e.g., by calling API methods, is introduced.
Mylar: a degree-of-interest model for IDEs
TLDR
The use of a degree-of-interest (DOI) model to capture the task context of program elements scattered across a code base and the results of a preliminary diary study in which professional programmers used Mylar for their daily work on enterprise-scale Java systems are presented.
Recommending Emergent Teams
  • S. Minto, G. Murphy
  • Computer Science
    Fourth International Workshop on Mining Software Repositories (MSR'07:ICSE Workshops 2007)
  • 2007
TLDR
This paper introduces the emergent expertise locator (EEL) that uses emergent team information to propose experts to a developer within their development environment as the developer works and finds that EEL produces, on average, results with higher precision and higher recall than an existing heuristic for expertise recommendation.
Expertise Browser: a quantitative approach to identifying expertise
  • A. Mockus, J. Herbsleb
  • Computer Science
    Proceedings of the 24th International Conference on Software Engineering. ICSE 2002
  • 2002
TLDR
A tool, called Expertise Browser (ExB), that uses data from change management systems to locate people with desired expertise and uses a quantification of experience, and presents evidence to validate this quantification as a measure of expertise.
Towards understanding programs through wear-based filtering
TLDR
This paper presents the results of a formative observational study of seven professional programmers who use a conventional development environment to update an unfamiliar implementation of a commonly known video game, and presents sketches of new visualizations that use wear-based filtering.
Focusing knowledge work with task context
TLDR
The results of this study showed that task context generalizes beyond programming applications, reducing information overload and facilitating multi-tasking in a cross-section of knowledge work domains.
Using task context to improve programmer productivity
TLDR
This paper presents a mechanism that captures, models, and persists the elements and relations relevant to a task, and reports a statistically significant improvement in the productivity of industry programmers who voluntarily used Mylar for their daily work.
...
1
2
...