Browse Prior Art Database

Enabling developer social network applications with connections mined from API usage

IP.com Disclosure Number: IPCOM000235881D
Publication Date: 2014-Mar-28
Document File: 2 page(s) / 232K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a system and method for generating social recommendations for software developers using information about their usage of third-party library APIs (application programming interfaces) which are mined from software repositories.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 51% of the total text.

Page 01 of 2

Enabling developer social network applications with connections mined from API usage

Background

The rapid growth of social platforms such as Facebook, Twitter and LinkedIn underscores the need for people to connect to existing and new contacts for recreational and professional purposes. A parallel of this phenomenon exists in the software development arena as well. Open-source code sharing platforms such as GitHub [1] provide the ability to follow people and projects of interest. However, users are manually required to identify projects or other users whom they might be interested in following.

Most software projects use third-party libraries and the libraries used in a project are good indicators of the needs of a project and the functionality that it builds upon on. Similarly, the library APIs that developers use while developing software are a good fingerprint of their skill set; developers who contribute to multiple projects often use the same API across projects.

Method

The method is a system which enables social network applications such as generating recommendations and creating communities for information exchange for the domain of software engineering but does so automatically by extracting information from software repositories.

The system consists of three components or stages:

The first stage extracts from software repositories logs of a software project's change history - that is,


1.

a list of code changes which were committed by developers to the repository. From these changes the system identifies which third-party libraries were being used in the changed artifacts (e.g. Java source code files) by analyzing API usage in the source code. The system then creates an association between the developer and the API being used, the API and the project whose log is being analyzed, as well as the developer and the project. Hence the output of the first stage is a graph of people, projects and libraries (see Figure below). Each association is weighted by a number which is proportional to the confidence of the association.

The second stage takes as input a graph (or network) of people, projects and library APIs that was


2.

generated in the first stage and performs statistical computations on them to get a pair-wise rating between entities, regardless of whether they were associated or not. This pair-wise rating is the result...