New TCC and LCOM Measures Considering the Write Operations between Class Members

클래스 멤버 사이의 쓰기 연산을 고려한 새로운 TCC 및 LCOM 척도

  • 우균 (부산대학교 컴퓨터공학과) ;
  • 채흥석 (부산대학교 컴퓨터공학과)
  • Published : 2005.11.01

Abstract

Cohesion refers to the degree of the relatedness of the members in a class and it is widely accepted that the higher the cohesion of a module is, the easier the module to understand and maintain. Recently, several cohesion measures have been proposed to measure the cohesiveness of classes in an object-oriented program. In this paper, we propose an approach to improving the existing cohesion measures by considering the impact of write dependencies between class members. We have developed a cohesion measurement tool for supporting our approach and describe a case study performed with a C++ class library.

응집도는 모듈의 구성 요소들 사이의 관련성 정도를 나타내는 척도로서, 응집도가 높을수록 소프트웨어에 대한 이해 및 유지보수가 용이하다고 알려져 있다. 최근에 응집도의 개념을 객체지향 시스템의 클래스에 적용하기 위하여 많은 응집도 척도들이 제안되고 있다. 본 논문에서는 클래스 멤버 간의 쓰기 의존성의 영향을 고려함으로써 기존의 응집도 척도를 개선시킬 수 있음을 소개한다. 본 논문의 기법을 지원하는 도구를 개발하였으며 이 도구를 이용하여 C++ 클래스 라이브러리에 이 기법을 적용한 사례 결과를 소개한다.

Keywords

References

  1. W. Stevens, et. al, 'Structured Design,' IBM Systems Journal, Vol. 12, No. 2, 1974
  2. N. N. Card, et. al, 'Criteria for Software Modularization,' Proc. of 8th Int. Conf. on Software Engineering, pp. 372-377, 1985
  3. N. N. Card, et. al, 'An Empirical Study of Software Design Practices,' IEEE Trans. on Software Engineering, Vol. 12, No. 2, pp. 264-271, 1986
  4. A. Snyder, 'Encapsulation and Inheritance in Object-Oriented Programming Languages,' Proc. of 1th ACM Conf. on OOPSLA, pp. 84-91, 1986
  5. J. M. Bieman and B.-K. Kang, 'Cohesion and Reuse in an Object-Oriented System,' Proc. of Symp. on Software Reusability, pp. 259-262, 1995 https://doi.org/10.1145/211782.211856
  6. L. C. Briand, et. al, 'A Unified Framework for Cohesion Measurement in Object-Oriented Systems,' Empirical Software Engineering Journal, Vol. 1, No. 1, pp. 65-117, 1998 https://doi.org/10.1023/A:1009783721306
  7. H. -S. Chae, Y. -R. Kwon and D. -H. Bae, 'A Cohesion Measure for Object-Oriented Classes,' Software Practice and Experience, Vol. 30, pp. 1405-1431, 2000 https://doi.org/10.1002/1097-024X(200010)30:12<1405::AID-SPE330>3.0.CO;2-3
  8. S. R. Chidamber and C. F. Kemerer, 'Towards a Metrics Suite for Object-Oriented Design,' Proc. 6th ACM Conf. on OOPSLA, pp. 197-211, 1991 https://doi.org/10.1145/117954.117970
  9. S. R. Chidamber and C. F. Kemerer, 'A Metrics Suite for Object-Oriented Design,' IEEE Trans. on Software Engineering, Vol. 20, No. 6, pp. 476-493, 1994 https://doi.org/10.1109/32.295895
  10. B. Henderson-Sellers, Software Metrics, Prentice-Hall, 1996
  11. M. Hitz and B. Montazeri, 'Measuring Coupling and Cohesion in Object-Oriented Systems,' Proc. of Symp. on Applied Corporate Computing, 1995
  12. W. Li and S. Henry, 'Object-Oriented Metrics that Predict Maintainability,' Journal of Systems and Software, Vol. 23, No. 2, pp. 111-122, 1993 https://doi.org/10.1016/0164-1212(93)90077-B
  13. H. -S. Chae, Y. -R. Kwon and D. -H. Bae, 'Improving Cohesion Metrics by Considering Dependent Instance Variables,' IEEE Trans. on Software Engineering, Vol. 30, No. 11, pp. 826-832, 2004 https://doi.org/10.1109/TSE.2004.88
  14. Y. Zhou, et. al, 'DRC: A Dependence Relationships Based Cohesion Measure for Classes,' Proc. of the 10th IEEE APSEC, pp. 215-223 https://doi.org/10.1109/APSEC.2003.1254374
  15. Y. Zhou, et. al, 'A Comparative Study of Graph Theory-based Class Cohesion Measure,' ACM SIGSOFT SE Notes, Vol. 29, No. 2, March 2004 https://doi.org/10.1145/979743.979767
  16. L. C. Briand, et. al, 'Investigation of Quality Factors in Object-Oriented Designs: An Industrial Case Study,' Proc. of Int. Conf. Software Engineering, pp. 345-354, 1999
  17. L. C. Briand, et. al, 'Exploring the Relationship between Design Measures and Software Quality in Object-Oriented Systems,' Journal of Systems and Software, Vol 51, No. 3, pp. 245-273, 2000 https://doi.org/10.1016/S0164-1212(99)00102-8
  18. L. C. Briand and J. K. Wust, 'Modeling Development Effort in Object-Oriented Systems Using Design Properties,' IEEE Trans. on Software Engineering, Vol. 27, No. 11, pp. 963-986, 2001 https://doi.org/10.1109/32.965338
  19. M. Bruntink and A. Deursen, 'Predicting Class Testability using Object-Oriented Metrics,' Proc. of 4th Int. Workshop on Source Code Analysis and Manipulation, 2004 https://doi.org/10.1109/SCAM.2004.15
  20. M. Folwer, Rectoring: Improving the Design of Existing Code, Addison Wesley, 1999
  21. M. Linton, et. al, 'InterViews: A C++ Graphical Interface Toolkit,' Technical Report CSL-TR-88-358, Stanford University, 1988
  22. P. Devanbu, 'GENOA a customizable, languageand front-end independent code analyzer,' Proc. Conf. on Software Engineering, pp. 307-317, 1992