Core Concepts
코드 리뷰 댓글에서 아키텍처 침식 위반 증상을 자동으로 식별할 수 있는 기계 학습 및 딥 러닝 기반 분류기를 개발하고 평가하였다.
Abstract
이 연구는 아키텍처 침식의 가장 직접적인 증상인 위반 증상을 자동으로 식별하기 위해 수행되었다. 연구진은 OpenStack(Nova, Neutron) 및 Qt(Qt Base, Qt Creator) 커뮤니티의 4개 대규모 오픈 소스 프로젝트에서 수집한 코드 리뷰 댓글을 대상으로 15개의 기계 학습 기반 및 4개의 딥 러닝 기반 분류기를 개발하였다.
실험 결과, word2vec 기반 SVM 분류기가 가장 좋은 성능을 보였다(F1-score 0.779). 대부분의 경우 fastText 사전 훈련 단어 임베딩 모델을 사용한 분류기가 비교적 좋은 성과를 달성했다. 또한 200차원 사전 훈련 단어 임베딩 모델이 100차원 및 300차원 모델보다 우수한 성능을 보였다.
추가로 다수 투표 전략을 기반으로 한 앙상블 분류기는 개별 분류기를 능가하는 성능을 보였다.
마지막으로 참여 개발자를 대상으로 한 온라인 설문 조사와 인터뷰 결과, 개발자들은 제안된 접근법이 실제 실무에서 유용하다고 평가했다. 특히 이러한 분류기는 개발자들이 아키텍처 관련 위반 문제를 찾고, 우선순위를 지정하고, 처리하는 데 도움을 줄 수 있다.
Stats
"이 접근법은 아키텍처 침식의 위반 증상을 식별하는 데 도움이 될 수 있습니다."
"이 접근법으로 식별된 코드 리뷰 댓글의 위반 증상은 코드 품질 향상에 활용될 수 있습니다."
"이 접근법으로 식별된 위반 증상은 잠재적으로 건설적이고 유용한 아키텍처 정보를 제공할 수 있습니다."
"이 접근법으로 식별된 위반 증상은 수동으로 식별하는 것보다 위반 관련 문제를 더 빨리 찾는 데 도움이 될 수 있습니다."
"이 접근법으로 식별된 위반 증상은 시스템의 잠재적인 아키텍처 위반을 찾고, 식별하고, 우선순위를 지정하는 데 도움이 될 수 있습니다."
"이 접근법으로 식별된 위반 증상은 유사한 성격의 다른 위반을 찾는 데 도움이 될 수 있습니다."