Skip to main content
QUICK REVIEW

[논문 리뷰] Deep Learning & Software Engineering: State of Research and Future Directions.

Prémkumar Dévanbu, Matthew B. Dwyer|arXiv (Cornell University)|2020. 09. 17.
Software Testing and Debugging Techniques참고 문헌 97인용 수 9
한 줄 요약

이 논문은 딥 러닝(DL)과 소프트웨어 공학(SE)의 융합을 다룬 NSF 후원 워크숍의 통찰을 종합하여 두 핵심 연구 분야를 규명한다: 딥 러닝을 위한 소프트웨어 공학(SE4DL), 즉 DL 기반 개발 워크플로우와 추상화에 중점을 두며, 소프트웨어 공학을 위한 딥 러닝(DL4SE), 즉 소프트웨어 자산을 활용해 SE 작업을 자동화하거나 향상시키는 데 DL을 활용하는 것. 주요 기여는 기초적 과제, 실패 유형, 특화된 아키텍처, 교육 통합을 다루는 우선순위가 매겨진 연구 의제이다.

ABSTRACT

Given the current transformative potential of research that sits at the intersection of Deep Learning (DL) and Software Engineering (SE), an NSF-sponsored community workshop was conducted in co-location with the 34th IEEE/ACM International Conference on Automated Software Engineering (ASE'19) in San Diego, California. The goal of this workshop was to outline high priority areas for cross-cutting research. While a multitude of exciting directions for future work were identified, this report provides a general summary of the research areas representing the areas of highest priority which were discussed at the workshop. The intent of this report is to serve as a potential roadmap to guide future work that sits at the intersection of SE & DL.

연구 동기 및 목표

  • 딥 러닝(DL)과 소프트웨어 공학(SE)의 접점에서 고영향력 연구 과제를 규명하고 우선순위를 매기기.
  • 기존 소프트웨어 공학과는 다름없이, DL 기반 시스템을 위한 새로운 개발 워크플로우와 추상화를 정의하고 체계화하기.
  • 소프트웨어 자산(예: 코드, 요구사항, 이슈 트래커 등)의 구조적 특성을 활용하는 작업별 특화된 딥 러닝 모델을 설계하여 DL4SE를 발전시키기.
  • DL 시스템의 디버깅, 검증, 유지보수 과정에서 발생하는 핵심 과제 해결하기.
  • 미래의 개발자가 DL 기반 소프트웨어 개발을 익힐 수 있도록 학계-산업 협력 기반 교육 이니셔티브 추진하기.

제안 방법

  • 30명의 학계 및 산업계 연구자들이 참석한 3일간의 NSF 후원 워크숍을 통해 DL과 SE의 접점을 탐색하였다.
  • DL4SE, DL 시스템의 검증 및 검증(V&V), 구현 과제, 유지보수, 테스트, 코드 생성 등의 주제로 분과 세션을 운영하였다.
  • 전체 세션과 반복적 초안 작성을 통해 결과를 통합하였으며, 지속적인 협업을 위해 GitLab을 통해 공동 커뮤니티 기여를 유도하였다.
  • 네 가지 우선 연구 과제를 식별: 기초적 SE4DL 관행, 실패 유형 분석, SE를 위한 특화된 DL 아키텍처, 교육 자료 개발.
  • 주요 주제를 프레임화하고 SE 분야에서의 신규 DL 응용에 대한 논의를 자극하기 위해 라이트닝 토크와 전문가 발표를 활용하였다.
  • 지속적인 업데이트와 기여를 가능하게 하기 위해 GitLab에 실시간으로 업데이트되는 생존 문서를 구축하였다.

실험 결과

연구 질문

  • RQ1기존 소프트웨어 개발과 딥 러닝 기반 개발(SE4DL) 간의 근본적 차이점은 무엇이며, 이를 정형화할 수 있는 새로운 추상화와 워크플로우는 어떻게 정의할 수 있는가?
  • RQ2소프트웨어 공학에 활용되는 딥 러닝 시스템에서 가장 흔한 실패 유형은 무엇이며, 이를 체계적으로 탐지하고 완화할 수 있는 방법은 무엇인가?
  • RQ3다양한 소프트웨어 자산(예: 코드, 주석, 이슈 보고서 등)으로부터 효과적으로 학습할 수 있도록 딥 러닝 모델을 어떻게 설계할 수 있는가? 이때 구조적 및 의미적 특성을 유지해야 한다.
  • RQ4기존의 경험적 소프트웨어 공학 지식을 딥 러닝 접근법과 통합하여 DL4SE 응용의 성능을 향상시킬 수 있는 방법은 무엇인가?
  • RQ5 growing한 DL 기반 소프트웨어 공학 관행 수요를 충족시키기 위해 교육 커리큘럼을 어떻게 개발하고 확산시킬 수 있는가?

주요 결과

  • 워크숍은 네 가지 고우선순위 연구 과제를 규명했다: 기초적 SE4DL 관행, 실패 유형 분석, SE를 위한 특화된 DL 아키텍처, 교육 자료 개발.
  • SE4DL를 지원하기 위해 딥 러닝 개발 워크플로우와 정형화된 추상화의 체계적 분류 체계가 필요하며, 기존 소프트웨어 공학 관행과 유사해야 한다.
  • 특히 안전이 중요한 SE 환경에서, DL 시스템의 오류를 자동으로 탐지하고 디버깅 및 수정할 수 있는 기법이 긴급히 필요하다.
  • DL4SE 연구는 다양한 소프트웨어 자산으로부터 구조적 의미를 유지하면서 정규화된 표현을 학습할 수 있는 모델 설계에 초점을 맞춰야 한다.
  • 딥 러닝과 기존 경험적 소프트웨어 공학 지식을 융합하고, 다중 모odal 데이터(예: 코드 + 자연어)를 활용하면 새로운 작업 자동화 가능성이 크게 향상된다.
  • 학계-산업 협력이 필수적이며, 실제 DL 기반 소프트웨어 개발 과제를 반영한 효과적인 교육 자료 개발에 기여한다.

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

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

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

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