Design Pattern Discovery based on Machine Learning

자동학습에 기반한 디자인 패턴 인식

  • Hwang, Sung-Wook (Dept. of Computer Engineering, Sungkyunkwan University) ;
  • Youn, Hyun-Sang (Dept. of Computer Engineering, Sungkyunkwan University) ;
  • Lee, Eun-Seok (Dept. of Computer Engineering, Sungkyunkwan University)
  • 황성욱 (성균관대학교 컴퓨터공학과) ;
  • 윤현상 (성균관대학교 컴퓨터공학과) ;
  • 이은석 (성균관대학교 컴퓨터공학과)
  • Published : 2006.02.13

Abstract

디자인 패턴의 사용은 시스템을 좀 더 유연하고, 이해하기 쉽고, 재사용 가능하게 만든다. 개발이 완료된 시스템이 명확하게 문서화가 되어 있으면, 시스템의 내부 구조를 이해하기 쉽고, 향후 유지 보수의 비용이 적게 든다. 하지만, 대부분 시스템의 경우 개발된 시스템의 문서화가 잘 되어 있지 않기 때문에, 시스템에 문제가 생겨 수정 하고자 하거나, 새로운 모듈을 추가하여 시스템의 기능을 확장하고자 할 때, 전체 소스코드를 분석하여 시스템을 이해해야 하는 어려움이 있다. 이러한 문제점을 해결하기 위해서 소스코드에서 자동적으로 디자인 패턴을 인식하여 문서화를 증진시킬 수 있다. 따라서 신뢰할 만한 디자인 패턴 인식 시스템이 중요하다. 지금까지 디자인 패턴 인식 방법은 시스템의 구조적인 특징만을 이용하여 패턴을 인식하여 왔다. 그래서 본 논문은 구조적인 특징뿐만 아니라 동적인 분석, 그리고 자동학습(machine learning)에 기반하여 소스코드로부터 디자인 패턴을 인식하는 방법을 제안하고자 한다. 그리고 전 작업에서 만든 자바로 쓰여진 에이전트 개발 툴을 대상으로 실시하여 인식한 디자인 패턴에 대한 평가를 하였다.