검색 상세

소프트웨어 복잡도 개선을 위한 메소드의 기능적 연관성 기반의 비응집성 클래스 분해

Decomposing Non-Cohesive Classes Based on Functional Method Relatedness For Improving Software Complexity

초록/요약 도움말

본 논문에서는 소프트웨어의 유지보수성에 큰 영향을 미치는 소프트웨어의 복잡도를 개선하기 위해 비응집성 클래스를 분해하기 위한 방안이 제시된다. 특히 비응집성 클래스 내의 메소드간의 기능적인 연관정도를 측정하기 위한 새로운 메소드의 기능적 연관성 지표를 제시하였고, 소스코드를 변경하기 위한클래스 분해 규칙을 제시하였다. 첫 번째로, 메소드의 기능적 연관성 지표는 측정되는 메소드 쌍의 외부관계를 이용하여 측정된다. 외부 관계를 이용한 메소드쌍의 기능적 연관성 측정을 위해 그 메소드 쌍으로 부터 호출되는 클래스의 연관성 정도를 측정하였다. 클래스의 연관성은 모듈 계층 구조, 상속 계층 구조, 결합 구조를 기반으로 측정되었다. 이렇게 측정된 클래스간의 연관성을 이용하여 메소드 쌍으로부터 호출되는 메소드를 가지는 클래스가 연관된 정도가 높을수록 그 메소드 쌍은 기능적으로 더욱 연관된 것으로 측정된다. 두 번째로, 클래스의 분해 규칙을 개선하였다. 기존의 클래스 분해 규칙은 분해되는 클래스에서 추출되는 메소드의 껍데기 메소드를 남겨놓고 추출하였는데, 이는 소프트웨어를 더욱 복잡하게 만들 수 있다는 단점이 있다. 이를 개선하기 위해 클래스의 분해로 인한 영향을 평가하고, 이 영향을 해결하기 위한 규칙을 제시하였다. 본 논문에서 제시된 메소드의 외부관계를 이용한 기능적 연관성 지표의 사용과, 개선된 클래스 분해 규칙의 적용으로 인한 효과는 세 개의 공개 소프트웨어를 대상으로 변이 실험, 개발자 실험을 통해 구 우수성이 통계적으로 검증되었다.

more

초록/요약 도움말

This paper presents an approach decomposing non-cohesive classes for improving software complexity that affects software maintainability. In particular, we present a functional method relatedness metric and a rule that transforms source code and decomposes classes automatically. First, the functional method relatedness metric uses external relationships of a method pair being evaluated. To this end, we measure relatedness of classes owning callee methods of a method pair being evaluated. The class relatedness is measured from three perspectives: module hierarchy, inheritance hierarchy, and class coupling. The class relatedness is used to measure the functional method relatedness. The more related class is related to a method pair, the more functionally related the method pair is. Second, we improve the rules for class decomposition. Existing class decomposition rule remain signatures of methods being extracted due to the impact of the method extraction, which make the software more complex. We improve the class decomposition rule by considering the impact of the method extraction. The benefit of use of the presented metrics and rules is statistically proved using thee open source applications.

more