This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Exemplar: A Source Code Search Engine for Finding Highly Relevant Applications
Sept.-Oct. 2012 (vol. 38 no. 5)
pp. 1069-1087
Collin McMillan, College of William and Mary, Williamsburg
Mark Grechanik, Accenture Technology Labs, Chicago
Denys Poshyvanyk, College of William and Mary, Williamsburg
Chen Fu, Accenture Technology Labs, Chicago
Qing Xie, Accenture Technology Labs, Chicago
A fundamental problem of finding software applications that are highly relevant to development tasks is the mismatch between the high-level intent reflected in the descriptions of these tasks and low-level implementation details of applications. To reduce this mismatch we created an approach called EXEcutable exaMPLes ARchive (Exemplar) for finding highly relevant software projects from large archives of applications. After a programmer enters a natural-language query that contains high-level concepts (e.g., MIME, datasets), Exemplar retrieves applications that implement these concepts. Exemplar ranks applications in three ways. First, we consider the descriptions of applications. Second, we examine the Application Programming Interface (API) calls used by applications. Third, we analyze the dataflow among those API calls. We performed two case studies (with professional and student developers) to evaluate how these three rankings contribute to the quality of the search results from Exemplar. The results of our studies show that the combined ranking of application descriptions and API documents yields the most-relevant search results. We released Exemplar and our case study data to the public.
Index Terms:
Search engines,Engines,Software,Java,Cryptography,Vocabulary,Data mining,software reuse,Source code search engines,information retrieval,concept location,open source software,mining software repositories
Citation:
Collin McMillan, Mark Grechanik, Denys Poshyvanyk, Chen Fu, Qing Xie, "Exemplar: A Source Code Search Engine for Finding Highly Relevant Applications," IEEE Transactions on Software Engineering, vol. 38, no. 5, pp. 1069-1087, Sept.-Oct. 2012, doi:10.1109/TSE.2011.84
Usage of this product signifies your acceptance of the Terms of Use.