Awareness and coordination in shared workspaces
CSCW '92 Proceedings of the 1992 ACM conference on Computer-supported cooperative work
Comprehension processes during large scale maintenance
ICSE '94 Proceedings of the 16th international conference on Software engineering
Expertise recommender: a flexible recommendation system and architecture
CSCW '00 Proceedings of the 2000 ACM conference on Computer supported cooperative work
Near-term memory in programming: a simulation-based analysis
International Journal of Human-Computer Studies
Software design---cognitive aspects
Software design---cognitive aspects
Expertise browser: a quantitative approach to identifying expertise
Proceedings of the 24th International Conference on Software Engineering
Palantír: raising awareness among configuration management workspaces
Proceedings of the 25th International Conference on Software Engineering
Using a behavioral theory of program comprehension in software engineering
ICSE '78 Proceedings of the 3rd international conference on Software engineering
Group awareness in distributed software development
CSCW '04 Proceedings of the 2004 ACM conference on Computer supported cooperative work
Mylar: a degree-of-interest model for IDEs
Proceedings of the 4th international conference on Aspect-oriented software development
Towards understanding programs through wear-based filtering
SoftVis '05 Proceedings of the 2005 ACM symposium on Software visualization
How Developers Drive Software Evolution
IWPSE '05 Proceedings of the Eighth International Workshop on Principles of Software Evolution
Maintaining mental models: a study of developer work habits
Proceedings of the 28th international conference on Software engineering
Enriching revision history with interactions
Proceedings of the 2006 international workshop on Mining software repositories
How Are Java Software Developers Using the Eclipse IDE?
IEEE Software
Using task context to improve programmer productivity
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Let's go to the whiteboard: how and why software developers use drawings
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
FASTDash: a visual dashboard for fostering awareness in software teams
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
IEEE Transactions on Software Engineering
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Does a programmer's activity indicate knowledge of code?
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Focusing knowledge work with task context
Focusing knowledge work with task context
Deep intellisense: a tool for rehydrating evaporated information
Proceedings of the 2008 international working conference on Mining software repositories
Mining usage expertise from version archives
Proceedings of the 2008 international working conference on Mining software repositories
Understanding interaction differences between newcomer and expert programmers
Proceedings of the 2008 international workshop on Recommendation systems for software engineering
Mining the history of synchronous changes to refine code ownership
MSR '09 Proceedings of the 2009 6th IEEE International Working Conference on Mining Software Repositories
Codebook: discovering and exploiting relationships in software repositories
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Using information fragments to answer the questions developers ask
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
A degree-of-knowledge model to capture source code familiarity
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Customized awareness: recommending relevant external change events
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
An interactive ambient visualization for code smells
Proceedings of the 5th international symposium on Software visualization
Hard-to-answer questions about code
Evaluation and Usability of Programming Languages and Tools
Micro interaction metrics for defect prediction
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Empirical Studies of Programming Knowledge
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
As a software system evolves, the system's codebase constantly changes, making it difficult for developers to answer such questions as who is knowledgeable about particular parts of the code or who needs to know about changes made. In this article, we show that an externalized model of a developer's individual knowledge of code can make it easier for developers to answer such questions. We introduce a degree-of-knowledge model 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 developer's authorship and interaction data. We present evidence that shows that both authorship and interaction data of the code are important in characterizing a developer's knowledge of code. We report on the usage of our model in case studies on expert finding, knowledge transfer, and identifying changes of interest. We show that our model improves upon an existing expertise-finding approach and can accurately identify changes for which a developer should likely be aware. We discuss how our model may provide a starting point for knowledge transfer but that more refinement is needed. Finally, we discuss the robustness of the model across multiple development sites.