Identifying Domain Expertise of Developers from Source Code

Identifying Domain Expertise of Developers from Source Code...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon
Identifying Domain Expertise of Developers from Source Code Renuka Sindhgatta IBM India Research Laboratory Embassy Golf Links Park Bangalore, India 91-80-51774584 renuka.sr@in.ibm.com ABSTRACT We are interested in identifying the domain expertise of developers of a software system. A developer gains expertise on the code base as well as the domain of the software system he/she develops. This information forms a useful input in allocating software implementation tasks to developers. Domain concepts represented by the system are discovered by taking into account the linguistic information available in the source code. The vocabulary contained in source code as identifiers such as class, method, variable names and comments are extracted. Concepts present in the code base are identified and grouped based on a well known text processing hypothesis - words are similar to the extent to which they share similar words. The developer’s association with the source code and the concepts it represents is arrived at using the version repository information. In this line, the analysis first derives documents from source code by discarding all the programming language constructs. KMeans clustering is further used to cluster documents and extract closely related concepts. The key concepts present in the documents authored by the developer determine his/her domain expertise. To validate our approach we apply it on large software systems, two of which are presented in detail in this paper. Categories and Subject Descriptors H.3.3 [ Information Storage and Retrieval ]: Information Search and Retrieval – Clustering. D.2.9 [ Software Engineering ]: Management – Programming Teams General Terms Documentation, Design, Experimentation, Verification. Keywords Document Clustering, Version History, Developer Expertise. 1. INTRODUCTION Developers implementing software systems, gain expertise over a period of time on different aspects of software development – programming languages, libraries , frameworks and the domain of the software system. A developer implementing an online auction system using Java 2 Enterprise Edition (J2EE) not only gains knowledge on using Servlet or Java Beans but also understands the process related to creating an auction. This information is particularly useful in large organizations where there are several development projects in similar domain using similar technologies. Identifying developer expertise based on the domain and technical know-how can be a very useful input for allocating projects or tasks. In software engineering, much work has been done in identifying experts for a source code file. Expertise Recommender [11], Expertise Browser [12], use check-in logs from version repository to determine the list of experts a given source code file. This information is useful but is very specific to a given project. In software services organization, developers work on multiple projects and multiple technologies. Identifying the expertise of a
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 2
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 9

Identifying Domain Expertise of Developers from Source Code...

This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online