원문정보
초록
영어
A software system is required to change during its life cycle due to various requirements such as adding functionalities, fixing bugs, and adjusting to new computing environments. Such program code modification should be considered as carefully as a new system development becase unexpected software errors could be introduced. In addition, when reusing open source programs, we can expect higher quality software if code changes of the open source program are predicted in advance. This paper proposes a Convolutional Neural Network (CNN)-based deep learning model to predict source code changes. In this paper, the prediction of code changes is considered as a kind of a binary classification problem in deep learning and labeled datasets are used for supervised learning. Java projects and code change logs are collected from GitHub for training and testing datasets. Software metrics are computed from the collected Java source code and they are used as input data for the proposed model to detect code changes. The performance of the proposed model has been measured by using evaluation metrics such as precision, recall, F1-score, and accuracy. The experimental results show the proposed CNN model has achieved 95% in terms of F1-Score and outperformed the multilayer percept-based DNN model whose F1-Score is 92%.
한국어
소프트웨어 시스템은 생명주기동안 기능 추가, 버그 수정, 새로운 컴퓨팅 환경 수용 등의 다양한 이유로 프로그 램 코드 변경이 요구된다. 이러한 코드 수정 과정에서 새로운 오류 발생을 가져올 수 있으므로 프로그램 코드 수정 과정 은 새로운 시스템 개발 못지 않게 신중하게 처리되야 한다. 또한, 오픈 소스 프로그램에 대한 재사용이 일반화된 소프트 웨어 개발환경에서 오픈 소스 프로그램의 코드 변경 가능성을 예측할 수 있다면, 보다 양질의 프로그램 개발 효과를 기대할 수 있을 것이다. 본 논문은 소스 코드 변경을 예측하는 Convolutional Neural Network (CNN) 기반의 딥러닝 모델을 제안한다. 소스 코드 변경을 예측하는 문제는 딥러닝의 이진 분류 문제이며 레이블된 데이터가 요구되는 지도학 습을 사용한다. 코드 예측 모델의 학습 및 시험을 위해 깃허브에서 수집한 Java 소스 코드와 코드 변경 로그를 데이터로 사용한다. 수집된 Java 소스 코드에서 소프트웨어 메트릭스를 계산한 후 제안된 코드 변경 예측 모델의 입력 데이터로 사용한다. 제안된 모델의 성능 평가를 위해 정밀도, 재현율, F1점수, 정확도가 측정되었으며 각각의 평가 지표에 있이서 CNN 모델은 95%, 다층 퍼셉트 기반의 DNN 모델은 92%를 달성했다.
목차
Abstract
1. 서론
2. 관련 연구
3. 연구 방법
3.1 코드 변경 예측 시스템
3.2 코드 메트릭스
3.3 딥러닝 네트워크 모델
4. 실험 결과 및 분석
4.1 모델 평가 지표
4.2 실험 결과
5. 결론 및 향후연구방향
REFERENCES
