객체 지향 시스템에서의 클래스 간 의존성 강도 측정을 위한 커플링 척도

A Coupling Metric for Measuring Strength of Dependency between Classes in Object-Oriented Systems

  • 화지민 (한국과학기술원 전자전산학과) ;
  • 이숙희 (한국과학기술원 전자전산학과) ;
  • 권용래 (한국과학기술원 전자전산학과)
  • 발행 : 2008.02.15

초록

객체지향 패러다임에서 커플링은 유지보수활동에 가장 큰 영향을 주는 속성 중 하나로 많은 연구들이 진행되어 왔다. 그러나 기존의 커플링 척도는 클래스들간의 의존성 여부만 측정할 뿐 의존성 강도를 표현하지 못하기 때문에 리팩토링이나 시스템 분해와 같이 의존성 강도 정보가 필요한 유지보수활동에서 의사 결정을 지원하는데 한계가 있다. 이 논문에서는 이를 해결하기 위해 클래스 간의 의존성 여부뿐만 아니라 유지 보수성-재검사 비용 측면에서 클래스 간의 의존성 강도까지 표현할 수 있는 커플링 척도를 제안한다. 그리고 시스템 분해 문제에 적용한 예제를 통하여 시스템 유지 보수를 위한 여러 분야에 적용될 수 있음을 보인다.

The coupling measurements of object oriented programs can be valuable information for various maintenance tasks and there exists a variety of metrics proposed by numerous researchers. Those metrics, however, cannot measure the strength of dependencies between classes, but only imply the existence of dependencies. Hence they are of limited value for assisting maintenance tasks such as refactoring and system decomposition, which requires information about the strength of dependency. In this paper, a coupling metric which can measure the strength of dependence as well as detect the existence of dependencies is proposed. Our coupling metric is evaluated based on the cost required for performing the maintenance tasks. We have applied the proposed coupling metric to an example of system decomposition in an effort to assess the potential benefits of our approach for maintenance tasks.

키워드

참고문헌

  1. L.C. Briand, J. Wuest, and H. Louinis, "Using Coupling Measurement for Impact Analysis in Object-Oriented Systems," Proc. of IEEE Int'l Conf. on Software Maintenance, pp. 475-482, 1999
  2. P. Yu, T. Systa, and H. Muller, "Predicting Fault-proneness Using OO Metrics. An Industrial Case Study," The Journal of Syst. and Software, Vol.52, pp. 99-107, 2002
  3. T. Gyimóthy, R. Ferenc, and I. Siket, "Empirical Validation of Object-Oriented Metrics on Open Source Software for Fault Prediction," IEEE Trans. on Software Eng., Vol.31, No.10, pp. 897- 910, 2005 https://doi.org/10.1109/TSE.2005.112
  4. T. Mens, and T. Tourwe, "A Survey of Software Refactoring," IEEE Trans. on Software Eng., Vol. 30, No.2, pp. 126-139, 2004 https://doi.org/10.1109/TSE.2004.1265817
  5. C.-H. Lung, M. Zaman, and A. Nandi, "Applications of Clustering Techniques to Software Partitioning, Recovery and Restructuring," The Journal of Syst. And Software, Vol.32, No.2, pp. 227-224, 2004
  6. L.C. Briand, J. Daly, and J. Wust, "A Unified Framework for Coupling Measurement in Object Oriented Systems," IEEE Trans. on Software Eng., Vol.25, No.1, pp. 91-121, 1999 https://doi.org/10.1109/32.748920
  7. S.R. Chidamber, and C.F. Kemerer, "A Metrics Suite for Object Oriented Design," IEEE Trans. Software Eng., Vol.20, No.6, pp. 476-493, 1994 https://doi.org/10.1109/32.295895
  8. E. Arisholm, L.C. Briand, and A. Foyen, "Dynamic Coupling Measurement for Object-Oriented Software," IEEE Trans. on Software Eng., Vol.30, No.8, pp. 491-506, 2004 https://doi.org/10.1109/TSE.2004.41
  9. S. Yacoub, H. Ammar, and T. Robinson, "Dynamic Metrics for Object-Oriented Designs," Proc. 6th Int'l Symp. Software Metrics, pp. 50-61, 1999
  10. D.C. Kung, J. Gao, P. Hsia, Y. Toyoshima, and C. Chen, "On Regression Testing of Object-Oriented Software Maintenance," The Journal of Syst. and Software, Vo1.32, No.1, pp. 21-40, 1996 https://doi.org/10.1016/0164-1212(95)00047-X
  11. R. Leitch and E. Stroulia, "Assessing the Maintainability Benefits of Design Restructuring using Dependency Analysis," Proc. 9th Int'l Symp. Software Metrics, pp. 309-322, 2003
  12. N. Anquetil, and T. C. Lethbridge, "Comparative Study of Clustering Algorithms and Abstract Representations for Software Remodularisation," Proc. Softw., Vol.150, No.3, pp. 185-201, 2003 https://doi.org/10.1049/ip-sen:20030581