대중 지식을 활용한 프로그래밍 작업용 종합 솔루션 제안
📝 원문 정보
- Title: Recommending Comprehensive Solutions for Programming Tasks by Mining Crowd Knowledge
- ArXiv ID: 1903.07662
- 발행일: 2019-03-21
- 저자: Rodrigo F. G. Silva, Chanchal K. Roy, Mohammad Masudur Rahman, Kevin A. Schneider, Klerisson Paixao, Marcelo de Almeida Maia
📝 초록 (Abstract)
개발자들은 종종 프로그래밍 작업을 위한 관련 코드 예제를 인터넷에서 찾아보곤 합니다. 그러나 두 가지 주요 문제에 직면하게 됩니다. 첫째, 쿼리(작업 설명)와 솔루션과 연결된 정보 사이의 어휘적 간극으로 인해 검색이 방해받습니다. 둘째, 검색된 솔루션이 종종 포괄적이지 않을 수 있습니다. 즉, 코드 조각은 명확한 설명을 포함하지 않을 수도 있습니다. 이러한 문제들은 개발자들이 적절한 솔루션을 합성하기 위해 수십 개의 문서를 둘러보게 만듭니다. 이러한 두 가지 문제를 해결하기 위해 우리는 CROKAGE(Crowd Knowledge Answer Generator)라는 도구를 제안합니다. 이 도구는 프로그래밍 작업 설명(쿼리)을 입력으로 받아 해당 작업에 대한 포괄적인 솔루션을 제공합니다. 우리의 솔루션은 관련 코드 예제뿐만 아니라 그들의 명확한 설명도 포함하고 있습니다. 우리의 접근 방식은 스택 오버플로우 Q&A 스레드에서 관련 API 클래스를 추출하여 작업 설명을 확장시키고 어휘적 간극 문제를 완화합니다. 또한, 우리는 상위 품질의 답변에 대해 자연어 처리를 수행하고 그러한 프로그래밍 솔루션을 반환하며 이는 기존 연구와 달리 코드 예제와 코드 설명을 포함합니다. 우리의 접근 방식은 48개의 프로그래밍 쿼리를 사용하여 평가했으며, 기존 최고 수준의 도구를 통계적으로 유의미하게 앞서는 결과를 보여주었습니다. 또한, 29명의 개발자에게 24개의 작업(쿼리)을 이용한 평가에서는 CROKAGE가 제안된 코드 예제의 관련성, 코드 설명의 이점 및 전체 솔루션 품질(코드 + 설명) 측면에서 기존 최고 수준의 도구보다 우수함을 확인했습니다.💡 논문 핵심 해설 (Deep Analysis)
This paper addresses the challenges faced by programmers when searching for relevant code examples online to solve their programming tasks. The primary issues include a lexical gap between user queries and solution descriptions, as well as incomplete solutions that often lack succinct explanations. To tackle these problems, the authors propose CROKAGE (Crowd Knowledge Answer Generator), which takes a description of a programming task and provides comprehensive solutions including relevant code snippets and clear explanations.CROKAGE works by expanding the initial query with related API classes from Stack Overflow Q&A threads, thereby bridging the lexical gap. It also uses natural language processing to extract high-quality answers that include both code examples and their descriptions. The tool was evaluated using 48 programming queries and outperformed six baseline methods, including state-of-the-art solutions. Further evaluation with 29 developers confirmed CROKAGE’s superiority in terms of the relevance of suggested code snippets, the benefit provided by code explanations, and overall solution quality.
This research is significant as it offers a practical tool that can enhance programmer productivity and improve access to comprehensive programming solutions.