메트릭을 이용한 객체 지향 설계 재구조화

Restructuring of Object-Oriented Designs using Metrics

  • 이병정 (서울대학교 컴퓨터공학부) ;
  • 우치수 (서울대학교 컴퓨터공학부)
  • 발행 : 2001.06.01

초록

객체 지향 설계를 재구조화하기 위해서는 메소드와 속성들 사이의 관계를 파악해야 한다. 메소드와 속성들이 동일한 클래스에 속하는지를 추론하는 과정은 클래스 자료 참조 분석과 메소드 호출 분석에 의존한다. 최근의 많은 소프트웨어들은 규모가 방대하고 복잡하여 개발자가 도구를 사용하지 않고 수작업으로 설계를 재구조화기 어려우며 또한 너무 많은 시간과 노력이 요구된다. 본 논문에서는 메트릭을 이용하여 객체 지향 설계를 자동적으로 재구조화하는 방법을 기술한다. 먼저 메소드, 속성, 클래스, 그리고 그들의 관계츨 추상화된 모델로 표시한다. 이 모델을 기반으로 객체 지향 설계를 정량적으로 측정할 응집도와 결합도 메트릭을 정의한다. 본 논문의 메크릭은 재고조화 과정 동안에 여러 다른 설계들을 효율적으로 비교하기 위한 유용한 기준을 제공한다. 기본 재구조화 행위들과 그 의미(semantics)를 정의하고 메트릭과 행위들을 사용하여 설계를 자동적으로 재구조화한다.

키워드

참고문헌

  1. R. Arnold, 'Software Restructuring,' Proceedings of the IEEE, Vol. 77, No.4, pp. 607-617, 1989 https://doi.org/10.1109/5.24146
  2. S. R. Chidamber and C. F. Kemerer, 'Towards a Metrics Suite for Object-Oriented Design,' In Proceedings of Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'91) https://doi.org/10.1145/117954.117970
  3. S. R. Chidamber and C. F. Kemerer, 'Towards a Metrics Suite for Object-Oriented Design,' SIGPLAN Notices, Vol. 26, No. 11, pp. 197-211, 1991 https://doi.org/10.1145/118014.117970
  4. Li W, Henry S., 'Object-Oriented Metrics That Predict Maintainability,' Journal of Systems and Software, Vol. 23, pp. 111-122, 1993 https://doi.org/10.1016/0164-1212(93)90077-B
  5. L. Briand, P. Devanbu, and W. Melo, 'An Investigation into Coupling Measures for C++,' In Proceedings of 19th International Conference on Software Engineering, pp. 412-421, 1997 https://doi.org/10.1145/253228.253367
  6. Y. S. Lee, B. S. Liang, S. F. Wu, and F. J. Wang, 'Measuring the Coupling and Cohesion of an Object-Oriented Program Based on Information Flow,' In Proceedings of International Conference on Software Quality, 1995
  7. S. Yacoub, H. Ammar, and T. Robinson, 'Dynamic Metrics for Object Oriented Designs,' In Proceedings of 6th International Symposium on Software Metrics, 1999 https://doi.org/10.1109/METRIC.1999.809725
  8. E. B. Allen and T. M. Khoshgoftaar, 'Measuring Coupling and Cohesion: An Information-Theory Approach,' In Proceedings of International Symposium on Software Metrics, 1999 https://doi.org/10.1109/METRIC.1999.809733
  9. S. R. Chidamber and C. F. Kemerer, 'A Metrics Suite for Object-Oriented Design,' EEE Transactions on Software Engineering, Vol. 20, No.6, pp. 476-493, 1994 https://doi.org/10.1109/32.295895
  10. M. Hitz, B. Montazeri, 'Measuring Coupling and Cohesion in Object-Oriented Systems,' n Proceedings of International Symposium on Applied Corporate Computing, 1995
  11. J. M. Bieman and B. K. Kang, 'Cohesion and Reuse in an Object-Oriented System,' In Proceedings qf ACM Symposium Software Reusability(SSR'95), pp. 259-262, 1995. https://doi.org/10.1145/211782.211856
  12. H. S. Chae and Y. R. Kwon, 'A Cohesion Measure for Classes in Object-Oriented Systems,' In Proceedings of 5th International Software Metrics Symposium, pp. 158-166, 1998 https://doi.org/10.1109/METRIC.1998.731241
  13. L. C. Briand, S. Morasca, and V. R. Basili, 'Defining and Validating Measures for Object-ased High-Level Design,' IEEE Transactions on Software Engineering, Vol. 25, No.5, pp. 722-743, 1999 https://doi.org/10.1109/32.815329
  14. L. C. Briand, J. W. Daly, and]. Wust, 'A Unified Framework for Cohesion Measurement in Object-Oriented Systems,' In Proceedings of 4th International Software Metrics Symposium, pp. 43-53, 1997 https://doi.org/10.1109/METRIC.1997.637164
  15. L. C. Briand, J. W. Daly, and J. Wust, 'A Unified Framework for Coupling Measurement in Object-Oriented Systems,' IEEE Transactions on Software Engineering, Vol. 25, No.1, pp. 91-121, 1999 https://doi.org/10.1109/32.748920
  16. L. C. Briand, S. Morasca, and V. R. Basili, 'Property-Based Software Engineering Measurement,' IEEE Transactions on Software Engineering, Vol. 22, No.1, pp, 68-86, 1996 https://doi.org/10.1109/32.481535
  17. S. C. Choi and W. Scacchi, 'Extracting and Restructuring the Design of Large Systems,' IEEE Software, Vol. 7, No.1, pp. 66-71, 1990 https://doi.org/10.1109/52.43051
  18. Fernando Brito e Abreu, Goncalo Pereira, and Pedro Sousa, 'A Coupling-Guided Cluster Analysis Approach to Reengineer the Modularity of Object-Oriented Systems,' In Proceedings of 4th European Conference on Software Maintenance and Reengineering, March 2000 https://doi.org/10.1109/CSMR.2000.827300
  19. Deborah Tesch and Gary Klein, 'Optimal Module Clustering in Program Organization,' In Proceedings of the Twenty-Fourth Annual Hawii International Conference on System Sciences, Vol. 2, pp, 238-245, 1991 https://doi.org/10.1109/HICSS.1991.183984
  20. H. S. Kim, Y. R. Kwon, and I. S. Chung, 'Restructuring programs through program slicing,' International journal of Software Engineering and Knowledge Engineering, Vol. 4, No.3, pp. 349-368, 1994 https://doi.org/10.1142/S0218194094000179
  21. B. K. Kang and J. M. Bieman, 'A Quantitative Framework for Software Restructuring,' Journal of Software Maintenance, Vol. 11, No.4, pp, 245-284, Jul-Aug, 1999 https://doi.org/10.1002/(SICI)1096-908X(199907/08)11:4<245::AID-SMR193>3.0.CO;2-8
  22. van Rijsbergen, C. J., Information retrieval, 2d ed. London:Buttcrworths, 1979
  23. D. E. Goldberg, Genetic Alogrithms in Search, Optimization & Machine Learning, Addison Wesley, 1989
  24. W. Stevens, G. Myers, and L. Constantine, 'Structured design,' IBM Systems journal, Vol. 13, No.2, pp, 115-139, 1974
  25. J. Banerjee, W. Kim, H. J. Kim, and H. Korth, 'Semantics and Implementation of Schema Evolution in Object-Oriented Databases,' ACM SIGMOD, 1987 https://doi.org/10.1145/38713.38748