DOI QR코드

DOI QR Code

Classifying a Strength of Dependency between classes by using Software Metrics and Machine Learning in Object-Oriented System

기계학습과 품질 메트릭을 활용한 객체간 링크결합강도 분류에 관한 연구

  • Received : 2012.12.24
  • Accepted : 2013.06.20
  • Published : 2013.10.31

Abstract

Object oriented design brought up improvement of productivity and software quality by adopting some concepts such as inheritance and encapsulation. However, both the number of software's classes and object couplings are increasing as the software volume is becoming larger. The object coupling between classes is closely related with software complexity, and high complexity causes decreasing software quality. In order to solve the object coupling issue, IT-field researchers adopt a component based development and software quality metrics. The component based development requires explicit representation of dependencies between classes and the software quality metrics evaluates quality of software. As part of the research, we intend to gain a basic data that will be used on decomposing software. We focused on properties of the linkage between classes rather than previous studies evaluated and accumulated the qualities of individual classes. Our method exploits machine learning technique to analyze the properties of linkage and predict the strength of dependency between classes, as a new perspective on analyzing software property.

객체지향 설계는 상속 및 은닉과 같은 개념이 도입되어 소프트웨어 개발 생산성 및 품질 향상을 가져다 주었다. 하지만 소프트웨어의 크기가 커지게 되면 이를 구성하는 객체의 수가 증가하고 이에 비례하여 상속 또는 호출과 같은 객체간 결합관계가 증가한다. 또한 이러한 객체간 결합관계는 객체지향 소프트웨어의 복잡도와 밀접한 관계를 갖고 있는데 다수의 결합관계는 소프트웨어의 복잡도를 높이어 결국에는 소프트웨어 품질저하로 이어지게 된다. 그래서 소프트웨어 개발 분야에서는 컴포넌트 기반의 설계와 같은 방법을 통하여 객체간 결합관계를 명확히 함으로써 소프트웨어의 품질을 높이려는 노력이 진행되고 있다. 또한 객체 품질 메트릭을 정의, 산출하여 소프트웨어의 품질을 측정하고 이를 활용하여 높은 품질의 소프트웨어가 될 수 있는 방법들을 찾는 연구가 함께 진행되고 있다. 이러한 연구의 일환으로 본 연구는 컴포넌트와 같은 시스템 분해 관점에서 객체 상호간 결합링크 속성의 분석을 통하여 서브시스템 분해를 위한 기초자료를 구축하고자 한다. 이전까지의 연구들이 개별객체를 평가하고 수치화하여 이를 누적하는 방식이었다면 이번 연구는 소프트웨어 복잡도와 밀접한 관계가 있는 객체간 상호간의 링크결합관계를 분석 대상으로 선정하고 객체간 링크의 속성분석 및 결합강도 예측에 기계학습을 활용한 새로운 관점에서의 소프트웨어 분석 방법을 제안한다.

Keywords

References

  1. D. L. Parnas, "On the criteria to be used in decomposing systems into modules" Communications of the ACM, 1972, Vol.15, No.12, pp.1053-1058. https://doi.org/10.1145/361598.361623
  2. S. Xanthos, "Clustering object-oriented software systems using spectral graph partitioning." ACM Student Research Competition, 2005.
  3. P. Rousseeuw, A. Struyf, M. Hubert, "Clustering in an object-oriented environment." Jaurnal of Statistical Software, 1996, pp.1-30.
  4. S. R. Chidamber, C. F. Kemerer, "Towards a Metrics Suite for Object Oriented design" Conference on Object-Oriented Programming: Systems, Languages and Applications (OOPSLA'91), October 1991, 26 (11) pp.197-211.
  5. D. P. Tegarden, S. D. Sheetz, D. E. Monarch, "A Software Complexity Model of Object-Oriented Systems" Decision Support Systems, 1995, Vol.13, No.3-4, pp.241-262. https://doi.org/10.1016/0167-9236(93)E0045-F
  6. Y. S. Lee, B. S. Liang, S. F. Wu, F. J. Wang, "Measuring the Coupling and Cohesion of an Object- Oriented Program Based on Information Flow" International Conference on Software Quality, Maribor, Slovenia, 1995.
  7. W. Li, S. Henry, "Object-oriented metrics that predict maintainability." Journal of Systems and Software, 1993, Vol.23, No.2, pp.111-122. https://doi.org/10.1016/0164-1212(93)90077-B
  8. M. H. Tang, M. H. Kao, M. H. Chen, "An Empirical Study on Object Oriented Metrics." Sixth Int'l Software Metrics Symp, 1999, pp.242-249.
  9. J. K. Chhabra, V. Gupta, "Package Coupling Measurement in Object-oriented Software." Journal of Computer Science and Technology 2009, Vol.24, No.2, pp.273-283. https://doi.org/10.1007/s11390-009-9223-6
  10. S. R. Chidamber, C. F. Kemerer, "A metrics suite for object oriented design." IEEE Transactions on Software Engineering, 1994, Vol.20, No.6, pp.476-493. https://doi.org/10.1109/32.295895
  11. V. Vapnik, "Estimation of Dependences Based on Empirical Data"Springer-Verlag, 1982.
  12. V. Vapnik, "The Nature of Statistical Learning Theory." Springer-Verlag, 1995.
  13. J. C Platt, "Fast training of support vector machines using sequential minimal optimization. Advances in kernel methods: support vector learning." MIT Press, Cambridge, MA, 1999.
  14. J. R. Quinlan, "C4.5: Programs for Machine Learning." Morgan Kaufmann Publishers, San Mateo, CA, 1993.
  15. G. H. John, P. Langley, "Estimating Continuous Distributions in Bayesian Classifiers." Proc. 11th Conf. on Uncertainty in Artificial Intelligence , 1995, pp.338-345.
  16. M. Fowler, "Reducing Coupling." IEEE Software July august, 2001, pp.102-105.
  17. A. Mtichell, J. F. Power, "Using object-level run-time metrics to study coupling between objects." ACM Symposium on Applied Computing. Santa Fe,New Mexico, USAObjects, 2005.
  18. J.M. Hwa , S.H. Lee , Y.R. Kwon, "A Coupling Metric for Measuring Strength of Dependency between Classes in Object-Oriented Systems." KIISE, Korea Computer Congress, 2007, Vol.34, No.1, pp.33-34.
  19. 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 1996, Vol.32, No.1, pp.21-40. https://doi.org/10.1016/0164-1212(95)00047-X
  20. D. Markus, "Byte code engineering library (BCEL), version 5.1, April 25 2004. http://jakarta.apache.org/bcel/".
  21. A. Lake, C. Cook, "Use of factor analysis to develop OOP software complexity metrics." Proc. 6th Annual Oregon Workshop on Software Metrics, Silver Falls, Oregon, 1994.
  22. I. H. Witten, E. Frank, "Data Mining: Practical machine learning tools and techniques." Morgan Kaufmann, San Francisco. 2nd Edition, 2005.
  23. K. Kira, L. Rendell, "A practical approach to feature selection.", Proc. the Ninth International Workshop on Machine Learning, Morgan Kaufmann Publishers Inc, 1992, pp.249-256.
  24. E. Gamma, R. Helm, R. Johnson, J. Vlissides, "Design Patterns: Elements of Reusable Object-Oriented Design." Addison-Wesley, Reading, MA 1995.
  25. T. Michell, "Machine Learning" Boston, McGraw-Hill, MA 1997.
  26. D. Heckerman, D. Geiger "Learning Bayesian networks: a unication for discrete and Gaussian domains." Proc. Eleventh Conf. on Uncertainty in Articial Intelligence, 1995, pp.274-284.
  27. E. Arisholm, L. C. Briand, A. Foyen, "Dynamic coupling measures for object-oriented software." IEEE Transactions on Software Engineering, 2004, Vol.30, No.8, pp.491-506. https://doi.org/10.1109/TSE.2004.41