Abstract

소프트웨어의 규모가 커지고 복잡성이 증가함에 따라 소프트웨어의 유지보수가 보다 중요해지고 있으며 유지보수성에 많은 영향을 미치는 요인 중 하나는 소스코드 가독성이다. 가독성의 90% 이상 영향을 끼치는 요인은 소스코드에서 사용되는 식별자들의 이름이며 이를 위한 기존 연구들에서는 클래스의 식별자로 사용된 어휘를 이용하여 식별자의 이름을 검증한다. 하지만 대부분의 관련 연구는 그 특성상 개체의 도메인 관련 특성만을 고려하게 되며 클래스 내의 어휘가 적절하지 못한 경우 적용할 수 있는 범위가 한정적이라는 한계점이 있다. 본 논문에서는 클래스의 특성을 추출하여 의사결정트리 기법을 통해 기계학습을 시킨 후 클래스 역할 모델을 생성하며 이를 이용하여 이름을 검증할 대상 클래스의 역할에 해당하는 접미사를 추천하게 되어 클래스 이름 검증 보고서를 생성한다. 본 연구 기법의 효용성을 검증하기 위해 4개의 오픈소스 프로젝트에 대하여 본 연구 기법을 적용하였고 클래스 역할 정보를 담고 있는 5개의 접미사에 대해 정확도와 재현율, ROC 곡선과 같은 지표를 제시하였다. As software has gotten bigger in magnitude and the complexity of software has been increased, the maintenance has gained in-creasing attention for its significant impact on the cost. Identifiers have an impact on more than 90 percent of the readability which accounts for a majority portion of the maintenance activities. For this reason, the existing works focus on domain-specific features based on identifiers. However, their approaches have a limitation when either a class name does not reflect the intention of its context or a class naming is incorrect. Therefore, this paper suggests a series of class name validation process by extracting properties of classes, building learning model by applying a decision tree technique of machine learning, and generating a validation report containing the list of recommendable postfixes of classes to be validated. To evaluate this, four open source projects are selected and 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.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.