TY - GEN
T1 - CodeHow
T2 - 30th IEEE/ACM International Conference on Automated Software Engineering, ASE 2015
AU - Lv, Fei
AU - Zhang, Hongyu
AU - Lou, Jian Guang
AU - Wang, Shaowei
AU - Zhang, Dongmei
AU - Zhao, Jianjun
N1 - Publisher Copyright:
© 2015 IEEE.
PY - 2016/1/4
Y1 - 2016/1/4
N2 - Over the years of software development, a vast amount of source code has been accumulated. Many code search tools were proposed to help programmers reuse previously-written code by performing free-text queries over a large-scale codebase. Our experience shows that the accuracy of these code search tools are often unsatisfactory. One major reason is that existing tools lack of query understanding ability. In this paper, we propose CodeHow, a code search technique that can recognize potential APIs a user query refers to. Having understood the potentially relevant APIs, CodeHow expands the query with the APIs and performs code retrieval by applying the Extended Boolean model, which considers the impact of both text similarity and potential APIs on code search. We deploy the backend of CodeHow as a Microsoft Azure service and implement the front-end as a Visual Studio extension. We evaluate CodeHow on a large-scale codebase consisting of 26K C# projects downloaded from GitHub. The experimental results show that when the top 1 results are inspected, CodeHow achieves a precision score of 0.794 (i.e., 79.4% of the first returned results are relevant code snippets). The results also show that CodeHow outperforms conventional code search tools. Furthermore, we perform a controlled experiment and a survey of Microsoft developers. The results confirm the usefulness and effectiveness of CodeHow in programming practices.
AB - Over the years of software development, a vast amount of source code has been accumulated. Many code search tools were proposed to help programmers reuse previously-written code by performing free-text queries over a large-scale codebase. Our experience shows that the accuracy of these code search tools are often unsatisfactory. One major reason is that existing tools lack of query understanding ability. In this paper, we propose CodeHow, a code search technique that can recognize potential APIs a user query refers to. Having understood the potentially relevant APIs, CodeHow expands the query with the APIs and performs code retrieval by applying the Extended Boolean model, which considers the impact of both text similarity and potential APIs on code search. We deploy the backend of CodeHow as a Microsoft Azure service and implement the front-end as a Visual Studio extension. We evaluate CodeHow on a large-scale codebase consisting of 26K C# projects downloaded from GitHub. The experimental results show that when the top 1 results are inspected, CodeHow achieves a precision score of 0.794 (i.e., 79.4% of the first returned results are relevant code snippets). The results also show that CodeHow outperforms conventional code search tools. Furthermore, we perform a controlled experiment and a survey of Microsoft developers. The results confirm the usefulness and effectiveness of CodeHow in programming practices.
UR - http://www.scopus.com/inward/record.url?scp=84963827836&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84963827836&partnerID=8YFLogxK
U2 - 10.1109/ASE.2015.42
DO - 10.1109/ASE.2015.42
M3 - Conference contribution
AN - SCOPUS:84963827836
T3 - Proceedings - 2015 30th IEEE/ACM International Conference on Automated Software Engineering, ASE 2015
SP - 260
EP - 270
BT - Proceedings - 2015 30th IEEE/ACM International Conference on Automated Software Engineering, ASE 2015
PB - Institute of Electrical and Electronics Engineers Inc.
Y2 - 9 November 2015 through 13 November 2015
ER -