검색 상세

클래스 특성 기계학습에 기반한 클래스 이름의 접미사 검증 기법

Validation Technique for Class Name Postfixes Based on the Machine Learning of Class Properties

초록/요약

소프트웨어 산업의 급격한 발전에 따라 오늘날의 소프트웨어는 과거에 비하여 규모가 커지고 복잡성이 증가하였다. 이에, 소프트웨어의 유지보수가 보다 중요해지고 있다. 유지보수 활동 중 큰 비율을 차지하는 것은 코드의 가독성이며 이러한 가독성의 90% 이상 영향을 끼치는 요인이 소스코드에서 사용되는 식별자들의 이름이다. 이런 이유로 유지보수성 향상을 위해 적절한 식별자들의 이름에 대한 연구가 존재한다. 대부분의 기존 연구에서는 클래스의 식별자로 사용된 어휘를 이용하여 클래스의 이름을 검증한다. 하지만 이러한 대부분의 관련 연구는 식별자에 사용된 어휘를 이용한, 즉 도메인 관련 특성 만을 고려한 접근법이며 클래스 내의 어휘가 소스코드의 의도를 적절히 반영하지 못하거나 잘못 작성된 경우 적용할 수 있는 범위가 한정적이라는 한계점이 있다. 본 논문에서는 클래스의 특성을 추출하여 의사결정트리 기법을 통해 기계 학습을 시킨 후 클래스 역할 모델을 생성한다. 생성된 클래스 역할 모델을 이용하여 이름을 검증할 대상 클래스의 역할에 해당하는 접미사를 추천하게 되며 연구 기법의 최종 산출물로 클래스 이름 검증 보고서를 생성한다. 본 연구 기법의 효용성을 검증하기 위해 4개의 오픈소스 프로젝트에 대하여 본 연구 기법을 적용하였고 클래스 역할 정보를 담고 있는 5개의 접미사에 대해 정확도와 재현율, ROC 곡선과 같은 지표를 제시하였다.

more

초록/요약

As software industry has been advanced, software today has gotten bigger in magnitude and the complexity of software has been increased. Therefore, software maintenance has gained increasing attention for its significant impact on the cost. Readability accounts for a majority portion of the maintenance activities and identifiers declared in source codes have an impact on more than 90 percent of the readability. For this reason, the existing works are based on identifiers of source codes to improve maintainability and the majority of them manipulate vocabularies used in identifiers and evaluate their approaches. However, the existing works focus on domain-specific features on source codes, which is not suitable for the cases when either a class name does not reflect the intention of its context or a class naming is incorrect. In this paper, I suggest a series of class name validation process by extracting features of classes and building learning model, which applies a decision tree technique of machine learning. This approach recommends postfixes of target classes and the final artifact is the validation reports. To evaluate this, four open source projects are selected and applied to the presented approach. Besides indicators such as precision, recall, and ROC curve present the value of this work when it comes to five specific postfixes including functional information on class names.

more