[논문 리뷰] A Systematic Literature Review on the Use of Deep Learning in Software Engineering Research
이 체계적 문헌 리뷰는 소프트웨어 공학 분야의 딥러닝(DL4SE)에 관한 128篇의 논문을 분석하여 23개의 소프트웨어 공학 작업 전반에서 핵심 패턴, 과제, 최선의 실천 방법을 규명한다. 학습의 구성요소를 기반으로 한 분석 체계를 통해, 성공적인 응용 사례, 재현 가능성 문제, 그리고 DL4SE 분야의 향후 연구 방향을 강조하는 종합적인 연구 로드맵을 제공한다.
An increasingly popular set of techniques adopted by software engineering (SE) researchers to automate development tasks are those rooted in the concept of Deep Learning (DL). The popularity of such techniques largely stems from their automated feature engineering capabilities, which aid in modeling software artifacts. However, due to the rapid pace at which DL techniques have been adopted, it is difficult to distill the current successes, failures, and opportunities of the current research landscape. In an effort to bring clarity to this crosscutting area of work, from its modern inception to the present, this paper presents a systematic literature review of research at the intersection of SE & DL. The review canvases work appearing in the most prominent SE and DL conferences and journals and spans 128 papers across 23 unique SE tasks. We center our analysis around the components of learning, a set of principles that govern the application of machine learning techniques (ML) to a given problem domain, discussing several aspects of the surveyed work at a granular level. The end result of our analysis is a research roadmap that both delineates the foundations of DL techniques applied to SE research, and highlights likely areas of fertile exploration for the future.
연구 동기 및 목표
- 소프트웨어 공학 연구 분야에서의 딥러닝 응용 현황을 맵핑하기 위해.
- SE 작업에 딥러닝을 적용할 때 반복되는 패턴, 과제, 최선의 실천 방법을 규명하기 위해.
- 128개의 연구를 분석함으로써 향후 연구를 위한 연구 로드맵을 제공하기 위해.
- DL4SE 문헌에서의 재현 가능성 및 재현 가능성 문제를 평가하기 위해.
- DL4SE와 최근 부상하고 있는 '딥러닝을 위한 소프트웨어 공학(SE4DL)' 분야를 구분하고, 본 리뷰에서 DL4SE에 집중하는 이유를 정당화하기 위해.
제안 방법
- 소프트웨어 공학 연구를 위한 Kitchenham 등에 의한 지침을 따르는 체계적 문헌 리뷰(SLR)를 수행하였다.
- 최상위 SE 및 DL 학술 컨ferences에서 정제된 검색 문자열을 사용해 검색하였으며, 추가로 스노우볼링과 수동 논문 수집을 통해 보완하였다.
- 사전 정의된 포함/배제 기준을 적용하여 23개의 서로 다른 SE 작업에서 유의미한 128개의 주요 연구를 선별하였다.
- 데이터 유형, 전처리, 아키텍처, 손실 함수, 하이퍼파라미터 튜닝, 평가 지표 등 14개 차원에 걸쳐 세부 속성을 추출하였다.
- 기초 데이터 분석 및 상관관계 분석을 수행하여 딥러닝 구성요소와 성능 간의 관계를 규명하였다.
- 발견된 결과를 종합하여 연구 로드맵을 제시하였으며, 함정, 최선의 실천 방법, 실질적인 향후 연구 방향을 도출하였다.
실험 결과
연구 질문
- RQ1딥러닝이 가장 자주 적용된 소프트웨어 공학 작업은 무엇인가?
- RQ2SE 연구에서 가장 흔히 사용되는 딥러닝 아키텍처와 데이터 유형은 무엇인가?
- RQ3DL4SE 연구에서 하이퍼파라미터 튜닝, 과적합, 모델 평가를 어떻게 다루는가?
- RQ4DL4SE 문헌에서 재현 가능성 및 재현 가능성과 관련된 주요 과제는 무엇인가?
- RQ5SE 작업을 위한 딥러닝 모델 설계 시 고려되는 원칙(예: 옥컴의 면도날 원칙)은 무엇인가?
주요 결과
- 가장 자주 연구된 SE 작업은 결함 예측, 코드 제안, 자동 프로그램 수리, 악성코드 탐지이다.
- 컨volutional Neural Networks(CNNs)와 Recurrent Neural Networks(RNNs), 특히 LSTMs가 가장 흔히 사용되는 딥러닝 아키텍처이다.
- 많은 연구에서 소스 코드, 주석, 문서 등 코드 및 텍스트 기반 데이터를 입력으로 사용하며, 일반적으로 토큰화 및 임bedding 기법이 필요로 한다.
- 다음 중 32%의 연구만이 비교를 위한 베이스라인 모델을 보고하여 성능 향상의 타당성과 재현 가능성에 우려가 제기된다.
- 손실 함수로는 교차 엔트로피와 평균 제곱 오차가 가장 자주 사용되었으며, 불균형 결함 예측 작업에서는 포칼 손실이 부상하고 있다.
- 적절한 검증 전략의 사용과 모델 일반화 능력 향상 간에 강한 상관관계가 발견되어, 연구 간 메서드올로지의 엄밀함이 크게 다름을 시사한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.