소스코드 검색은 소프트웨어 개발 프로젝트에서 높은 비중을 차지하며, 개발자들은 검색을 통해 개발에 필요한 모듈, 코드 예시 등을 얻고 개발의 효율성을 증대시키거나 소프트웨어 품질을 개선한다. 또한 개발자들은 수시로 자신 또는 타인의 코드를 수정하고 확장하는데, 이 경우에도 소스코드 검색을 통해 수정, 확장 방향을 모색한다. 이때 대부분의 개발자들은 단순히 ...
소스코드 검색은 소프트웨어 개발 프로젝트에서 높은 비중을 차지하며, 개발자들은 검색을 통해 개발에 필요한 모듈, 코드 예시 등을 얻고 개발의 효율성을 증대시키거나 소프트웨어 품질을 개선한다. 또한 개발자들은 수시로 자신 또는 타인의 코드를 수정하고 확장하는데, 이 경우에도 소스코드 검색을 통해 수정, 확장 방향을 모색한다. 이때 대부분의 개발자들은 단순히 자연어 입력으로 코드를 검색하는 경우가 많고, 때때로 검색에 많은 시간을 할애하기도 한다. 본 논문에서는 코드조각을 입력으로 코드예시를 검색하는 의미적 유사성 기반의 코드 검색엔진인 Semantic similarity-based COde seArCH engine (S_Coach)를 제안한다. 본 접근법에서는 대규모의 코드샘플과 사용자 질의 예시를 추출하기 위하여 각각 가장 큰 규모의 코드 호스팅 사이트와 Q&A 커뮤니티인 GitHub와 Stackoverflow의 데이터를 기반으로 색인을 구성하였다. 또한 사용자 입력 코드를 분석해 구조적 코드요소들과 맵핑하는 방식을 통해 검색의 성능을 향상시키고, 의미적 유사성을 고려하기 위하여 코드를 직접 검색하지 않고 Q&A 커뮤니티 내에서 사용자 입력코드와 관련된 포스트들의 자연어 분석을 거쳐 유사한 질문들을 자동으로 검색하는 프로세스를 추가했다. S_Coach의 효용성을 입증하기 위하여 Stackoverflow에서 가장 많이 검색되는 질문들내의 답변들에서 추출한 코드조각들을 입력으로 하여, S_Coach와 상용 코드검색 엔진들로부터 반환되는 결과의 정확도를 분석하고, 구조적 및 의미적 유사성을 비교하였다. 결론적으로, S_Coach가 Krugle과 SearchCode에 비해 각각 50%, 23% 포인트의 구조적 유사성이 높은 것으로 나타났으며, 의미적으로는 유사하지만 문법이나 라이브러리가 다른 코드들도 검색 가능함을 보였다.
소스코드 검색은 소프트웨어 개발 프로젝트에서 높은 비중을 차지하며, 개발자들은 검색을 통해 개발에 필요한 모듈, 코드 예시 등을 얻고 개발의 효율성을 증대시키거나 소프트웨어 품질을 개선한다. 또한 개발자들은 수시로 자신 또는 타인의 코드를 수정하고 확장하는데, 이 경우에도 소스코드 검색을 통해 수정, 확장 방향을 모색한다. 이때 대부분의 개발자들은 단순히 자연어 입력으로 코드를 검색하는 경우가 많고, 때때로 검색에 많은 시간을 할애하기도 한다. 본 논문에서는 코드조각을 입력으로 코드예시를 검색하는 의미적 유사성 기반의 코드 검색엔진인 Semantic similarity-based COde seArCH engine (S_Coach)를 제안한다. 본 접근법에서는 대규모의 코드샘플과 사용자 질의 예시를 추출하기 위하여 각각 가장 큰 규모의 코드 호스팅 사이트와 Q&A 커뮤니티인 GitHub와 Stackoverflow의 데이터를 기반으로 색인을 구성하였다. 또한 사용자 입력 코드를 분석해 구조적 코드요소들과 맵핑하는 방식을 통해 검색의 성능을 향상시키고, 의미적 유사성을 고려하기 위하여 코드를 직접 검색하지 않고 Q&A 커뮤니티 내에서 사용자 입력코드와 관련된 포스트들의 자연어 분석을 거쳐 유사한 질문들을 자동으로 검색하는 프로세스를 추가했다. S_Coach의 효용성을 입증하기 위하여 Stackoverflow에서 가장 많이 검색되는 질문들내의 답변들에서 추출한 코드조각들을 입력으로 하여, S_Coach와 상용 코드검색 엔진들로부터 반환되는 결과의 정확도를 분석하고, 구조적 및 의미적 유사성을 비교하였다. 결론적으로, S_Coach가 Krugle과 SearchCode에 비해 각각 50%, 23% 포인트의 구조적 유사성이 높은 것으로 나타났으며, 의미적으로는 유사하지만 문법이나 라이브러리가 다른 코드들도 검색 가능함을 보였다.
Source code retrieval takes high proportion in software development projects and developers obtain the needed modules and code examples through code search so that they can improve the effectiveness or quality of software. In addition, developers constantly modify and expand their own or others' cod...
Source code retrieval takes high proportion in software development projects and developers obtain the needed modules and code examples through code search so that they can improve the effectiveness or quality of software. In addition, developers constantly modify and expand their own or others' codes, and in this case, they also search for source code for modification and expansion. At this time, most of developers often simply search for codes with free-form query, and sometimes it takes a lot of time. In this paper, I propose Semantic similarity-based COde seArCH engine (S_Coach), an approach that retrieves code examples based on semantic similarity and that receives an input as a code fragment. In this approach, indices are constructed based on the data of GitHub and Stackoverflow, the largest code hosting site and Q&A forum respectively to extract a large number of code samples and user code query examples. In addition, by analyzing the user input code and mapping it with the structural code elements, the performance of the search engine is improved. S_Coach has added a process to automatically search for similar questions through natural language analysis of posts related to the user input code within the Q&A forum, without directly searching for code to consider semantic similarity. To evaluate the effectiveness of S_Coach, structural similarity and semantic similarity were compared against to the results of commercial code search engines, taking input as the code fragments extracted from the answers in the most frequently searched questions in Stackoverflow. As a result, S_Coach showed structural similarity of 50% and 23% points higher compared to two commercial code search engines (Krugle and searchcode) respectively, and the result also indicated that S_Coach is capable of finding semantically similar codes without syntactic similarity or those using different libraries.
Source code retrieval takes high proportion in software development projects and developers obtain the needed modules and code examples through code search so that they can improve the effectiveness or quality of software. In addition, developers constantly modify and expand their own or others' codes, and in this case, they also search for source code for modification and expansion. At this time, most of developers often simply search for codes with free-form query, and sometimes it takes a lot of time. In this paper, I propose Semantic similarity-based COde seArCH engine (S_Coach), an approach that retrieves code examples based on semantic similarity and that receives an input as a code fragment. In this approach, indices are constructed based on the data of GitHub and Stackoverflow, the largest code hosting site and Q&A forum respectively to extract a large number of code samples and user code query examples. In addition, by analyzing the user input code and mapping it with the structural code elements, the performance of the search engine is improved. S_Coach has added a process to automatically search for similar questions through natural language analysis of posts related to the user input code within the Q&A forum, without directly searching for code to consider semantic similarity. To evaluate the effectiveness of S_Coach, structural similarity and semantic similarity were compared against to the results of commercial code search engines, taking input as the code fragments extracted from the answers in the most frequently searched questions in Stackoverflow. As a result, S_Coach showed structural similarity of 50% and 23% points higher compared to two commercial code search engines (Krugle and searchcode) respectively, and the result also indicated that S_Coach is capable of finding semantically similar codes without syntactic similarity or those using different libraries.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.