나이브 베이즈 학습과 상호작용 기반 응집도를 이용한 객체지향 시스템의 라지 클래스 후보 검출 기법
Large Class Candidates Detection Method of Object Oriented System using Naïve Bayes Learning and Interaction based Cohesion Metric
- 발행기관 서강대학교 일반대학원
- 지도교수 박수용
- 발행년도 2012
- 학위수여년월 2012. 8
- 학위명 석사
- 학과 및 전공 일반대학원 컴퓨터공학과
- 실제URI http://www.dcollection.net/handler/sogang/000000047677
- 본문언어 한국어
- 저작권 서강대학교 논문은 저작권 보호를 받습니다.
초록/요약
소프트웨어가 진화되어 갈수록 점점 크고 복잡해지는 경향을 보인다. Martin Fowler는 객체 지향 시스템에서 잠재적인 문제를 야기할 수 있는 문제들을 카테고리화 하여 21가지 Code Bad Smell로 정리하였다. 이 중 가장 문제의 소지가 큰 Code Bad Smell은 바로 라지 클래스(Large Class)이다. 라지 클래스는 소프트웨어 유지보수에 악영향을 미치는 요인으로써 보통 한 클래스가 다양한 책임을 갖고 있으면서 다른 클래스와의 결합도가 높고 사이즈가 큰 경우를 말한다. 본 연구에서는 라지 클래스 후보의 검출을 위해 나이브 베이즈와 관계 기반 응집도 기반의 방법이 제안된다. 관계 기반 응집도는 시멘틱 기반 유사도를 통해 계산되며 시멘틱 기반 유사도는 다음과 같은 요소를 고려한다. 첫째, 클래스 외부의 메소드 간의 관계, 둘째로는 클래스 내부의 메소드 간의 관계 마지막으로 클래스 간의 관계이다. 클래스 외부의 메소드 간의 관계는 Resnik의 Taxonomy 이론을 도입한다. 이 후 기계 학습 방법인 나이브 베이즈 학습을 이용하여 라지 클래스 후보 검출을 자동화 할 수 있는 방법을 제안한다. 나이브 베이즈 학습은 시멘틱 기반 유사도와 관계 기반 응집도 값을 Data Set으로 하여 학습을 시킨다.
more초록/요약
As software evolves, it gets larger and more complex. Martin Fowler analyzed problems that most Object-Oriented systems potentially have and categorized these problems in 21 code bad smells. One of the worst problematic bad smells is Large Class. Large class (also known as God Class) is code defects resulting from software evolution, having diverse responsibilities highly coupled with other classes and often large in size, which makes it difficult to maintain the system. In this paper, Na?ve Bayes and Interaction based Cohesion approaches are introduced for detecting God classes and identifying their responsibilities based on semantic based similarity of methods. Semantic based similarity of methods is measured based on 1) inter-class interactions of methods, 2) intra-class interactions of methods, and 3) types of class relationships. The taxonomy by Resnik is adopted for analyzing inter-class interactions of methods. The results of the taxonomy are refined by considering intra-class interactions of methods and further refined using types of class relationships. Furthermore machine learning technique is used for detecting large class candidates automatically. Naive Bayes algorithm is adopted and SW metrics based on semantic based similarity and interaction based cohesion are used for date set of Naive Bayes algorithm.
more