클래스의 간접 및 직접 관계 기반 소프트웨어 모듈화를 통한 변경 용이성 향상 방법
Software Modularizing Technique using Indirect and Direct Relationship of Classes for Changeability Improvement
- 주제(키워드) 도움말 소프트웨어 모듈화 , 객체지향 , 클래스 간접관계 지표 , 유지보수
- 발행기관 서강대학교 일반대학원
- 지도교수 박수용
- 발행년도 2014
- 학위수여년월 2014. 2
- 학위명 석사
- 학과 및 전공 도움말 일반대학원 컴퓨터공학과
- 실제URI http://www.dcollection.net/handler/sogang/000000053339
- 본문언어 한국어
- 저작권 서강대학교 논문은 저작권 보호를 받습니다.
초록/요약 도움말
소프트웨어의 규모가 커지고 복잡성이 증가함에 따라 소프트웨어의 유지보수가 보다 중요해지고 있다. 원활한 유지보수를 위해 소프트웨어는 변경하기 쉬운 형태로 관리되어야 하며, 일반적으로 모듈화하여 관리한다. 시간이 지남에 따라, 초기에 디자인했던 모듈의 품질이 떨어지고 모듈의 변경이 확산되어, 소프트웨어의 변경 용이성이 떨어지는 어려움이 있다. 이를 해결하기 위해 클래스간의 결합도 지표를 사용하여 소프트웨어를 재 모듈화 시키는 연구들이 존재한다. 하지만 기존 모듈화 연구들은 클래스간의 직접관계만을 고려하였을 뿐, 간접관계를 통해 분산되는 변경을 고려하지 못한다. 또한 소프트웨어의 변경기록을 사용하는 연구들은 적용할 수 있는 프로젝트의 범위가 한정적이다. 본 논문에서는 소프트웨어 모듈을 변경 시 변경의 확산을 최소화 시키고, 제한적인 프로젝트 적용범위 문제를 해결하기 위해, 클래스간의 간접관계 기반 결합도 지표를 제안하였고, 이를 직접 결합도 지표와 합성하여 소프트웨어를 모듈화 하였다. 제안한 기법의 유효성을 검증하기 위해, 3개의 오픈 소스를 대상으로 제안기법을 적용하였고, 코드의 변경기록 기반 시뮬레이션을 통해 모듈의 변경확산 최소화 품질이 기존의 직접 결합도 기반 연구보다 18%, 의미 결합도 기반 연구보다 18% 향상됨을 증명하였다.
more초록/요약 도움말
Changeability is a design quality that has a great impact on posterior development and maintenance of object-oriented systems. There has been much work on modularizing classes based on direct relationships of classes such as method invocations. However, object-oriented systems involve significant indirect relationships carrying functional semantics which should be also taken into account in modularizing classes. There are cases where classes have no direct relationships, but significant indirect relationships. Relationships of such classes cannot be captured by direct relationship-based metrics. In this paper, we present a novel metric for measuring class coupling based on using both direct and indirect class relationships. We evaluate the metric from using history of three open source applications including ArgoUML, JHotDraw, and JMeter. The result shows that the presented approach reduce the change range in comparison with two related works: direct class relationship-based coupling metrics and text-based coupling metrics.
more