Skip to main content
QUICK REVIEW

[논문 리뷰] A Context-based Automated Approach for Method Name Consistency Checking and Suggestion

Yi Li, Shaohua Wang|arXiv (Cornell University)|2021. 02. 27.
Software Engineering Research참고 문헌 33인용 수 4
한 줄 요약

이 논문은 메서드 이름의 일관성 검사 및 제안을 향상시키기 위해 호출자, 피호출자, 형제 메서드, 둘러싼 클래스와의 상호작용을 활용하는 컨텍스트 인식 딥러닝 접근법인 DeepName을 제안한다. 서브토큰 시퀀스를 기반으로 한 RNN 기반 인코딩과 새로운 복사/비복사 메커니즘을 사용함으로써, DeepName은 대규모 데이터셋(1,400만 개 이상의 메서드 포함)에서 일관성 검사 및 이름 제안 작업에서 정밀도, 재현율, F-스코어를 각각 최대 19.6%와 38.2% 향상시키며 최신 기술 수준을 초월한다.

ABSTRACT

Misleading method names in software projects can confuse developers, which may lead to software defects and affect code understandability. In this paper, we present DeepName, a context-based, deep learning approach to detect method name inconsistencies and suggest a proper name for a method. The key departure point is the philosophy of "Show Me Your Friends, I'll Tell You Who You Are". Unlike the state-of-the-art approaches, in addition to the method's body, we also consider the interactions of the current method under study with the other ones including the caller and callee methods, and the sibling methods in the same enclosing class. The sequences of sub-tokens in the program entities' names in the contexts are extracted and used as the input for an RNN-based encoder-decoder to produce the representations for the current method. We modify that RNN model to integrate the copy mechanism and our newly developed component, called the non-copy mechanism, to emphasize on the possibility of a certain sub-token not to be copied to follow the current sub-token in the currently generated method name. We conducted several experiments to evaluate DeepName on large datasets with +14M methods. For consistency checking, DeepName improves the state-of-the-art approach by 2.1%, 19.6%, and 11.9% relatively in recall, precision, and F-score, respectively. For name suggestion, DeepName improves relatively over the state-of-the-art approaches in precision (1.8%--30.5%), recall (8.8%--46.1%), and F-score (5.2%--38.2%). To assess DeepName's usefulness, we detected inconsistent methods and suggested new method names in active projects. Among 50 pull requests, 12 were merged into the main branch. In total, in 30/50 cases, the team members agree that our suggested method names are more meaningful than the current names.

연구 동기 및 목표

  • 코드 이해도를 저해하고 소프트웨어 결함을 유발하는 일관되지 않거나 오해의 소지가 있는 메서드 이름 문제를 해결하기 위해.
  • 호출자, 피호출자, 형제 메서드, 둘러싼 클래스와 같은 컨텍스트 정보를 통합함으로써 메서드 본문에만 의존하는 것 이상의 방식으로 메서드 이름 제안을 향상시키기 위해.
  • 학습 데이터에 존재하지 않는 새로운 의미 있는 메서드 이름을 생성할 수 있는 딥러닝 모델을 개발하여 검색 기반 접근법의 한계를 극복하기 위해.
  • 실제 소프트웨어 프로젝트에서 제안된 이름의 실용적 유용성을 활성 개발 워크플로우에 통합하여 평가하기 위해.

제안 방법

  • DeepName은 내부 본문, 호출자/피호출자, 형제 메서드, 둘러싼 클래스의 네 가지 컨텍스트에서 프로그램 엔티티로부터 서브토큰 시퀀스를 추출한다.
  • 모델은 컨텍스트 표현을 통합된 벡터로 조합하기 위해 RNN 기반 인코더-디코더 아키텍처를 사용한다.
  • 모델은 컨텍스트에서 관련 서브토큰을 유지하기 위해 복사 메커니즘을 통합하고, 이름 생성 중에 불필요한 서브토큰을 억제하기 위해 새로운 비복사 메커니즘을 도입한다.
  • 이전 연구에서 우수한 성능을 보인 바 있기에, AST나 PDG 구조가 아닌, 메서드 이름, 매개변수, 반환 유형의 서브토큰을 입력 특징으로 사용한다.
  • 최종 표현에 컨볼루션 레이어를 적용하여 주어진 메서드 이름이 컨텍스트와 일관되는지 분류한다.
  • 1,400만 개 이상의 메서드로 구성된 대규모 데이터셋에서 엔드 투 엔드로 훈련되며, 일관성 검사 및 이름 제안 작업에 대해 미세조정된다.

실험 결과

연구 질문

  • RQ1호출자, 피호출자, 형제 메서드, 둘러싼 클래스와 같은 컨텍스트 정보를 통합함으로써, 메서드 본문에만 의존하는 것보다 메서드 이름 일관성 검사 성능을 향상시킬 수 있는가?
  • RQ2서브토큰 수준의 어텐션과 복사/비복사 메커니즘을 갖춘 딥러닝 모델은 의미 있는 새로운 메서드 이름을 얼마나 효과적으로 생성할 수 있는가?
  • RQ3DeepName은 기존 최신 기술 대비 메서드 이름 제안 및 불일치 탐지 작업에서 정밀도, 재현율, F-스코어 측면에서 얼마나 뛰어난 성능을 보이는가?
  • RQ4실제 소프트웨어 개발 환경에서 인간 개발자들의 평가에 따르면, 제안된 메서드 이름은 얼마나 유용한가?

주요 결과

  • DeepName은 기존 최신 기술 대비 일관성 검사에서 재현율 2.1% 상승, 정밀도 19.6% 상승, F-스코어 11.9% 상승을 달성한다.
  • 메서드 이름 제안 작업에서 DeepName은 기존 방법 대비 정밀도 1.8%에서 30.5%까지, 재현율 8.8%에서 46.1%까지, F-스코어 5.2%에서 38.2%까지 상승을 기록한다.
  • 실제 환경 평가에서 팀원들이 50개의 제안된 메서드 이름 중 30개를 원래 이름보다 더 의미 있는 것으로 평가했으며, 12개의 풀 리퀘스트가 메인 브랜치에 성공적으로 머지되었다.
  • 모델은 기존에 보이지 않은 메서드 이름을 생성함으로써 강력한 일반화 능력을 보이며, 훈련 데이터를 초월한 효과적인 제로샷 일반화 능력을 입증한다.
  • 비복사 메커니즘이 생성 과정에서 관련 없는 서브토큰을 복사할 가능성을 줄여 이름 품질을 크게 향상시킨다.
  • DeepName은 기존 이름에 제약을 받지 않는 새로운, 맥락에 적합한 이름을 생성함으로써 검색 기반 접근법보다 뛰어난 성능을 보인다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.