A Metric based Restructuring Technique Preserving the Behavior of Object-Oriented Designs

객체지향 설계 행위를 보존하는 메트릭 기반 재구조화 기법

  • 이병정 (서울시립대학교 컴퓨터과학부)
  • Published : 2003.10.01

Abstract

Design restructuring improves software quality by reorganizing design elements and reduces maintenance cost. Object-oriented metrics can help to detect design flaws and find transformations to reorganize design elements. Basically, the transformations must preserve the behavior of an initial system. This paper describes a metric based restructuring technique preserving the behavior of object-oriented designs, founded on set theory, and gives its validity by applying the technique to applications written in Java. This paper also compares the technique with a technique using simulated annealing algorithm to show its effectiveness.

설계 재구조화는 설계 구성 요소들을 재조직함으로써 품질을 향상시켜 소프트웨어 유지보수 비용을 줄인다. 객체지향 메트릭은 설계 결함을 발견하고 설계 구성 요소들을 재조직하기 위한 변형을 찾는데 도움을 제공한다. 기본적으로 이러한 설계 변형은 초기 시스템의 행위를 보존해야 한다. 본 논문에서는 객체지향 설계 행위를 보존하는 메트릭 기반 재구조화 기법을 집합론에 기반하여 기술하고, 자바로 작성된 응용 프로그램에 적용하여 유효성을 확인한다. 그리고 재구조화의 효과성을 확인하기 위하여 시뮬레이티드 어닐링(simulated annealing) 알고리즘을 사용한 방법과 비교한다.

Keywords

References

  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. I. Sommerville, Software Engineering, 5th ed., Addison Wesley, Harlow, England, 1995
  3. H. Sahraoui, R. Godin, and T. Miceli, 'Can Metrics Help to Bridge the Gap Between the Improvement of OO Design Quality and Its Automation?,' In Proceedings of International Conf. on Software Maintenance, pp. 154-162, 2000 https://doi.org/10.1109/ICSM.2000.883034
  4. B. J. Lee and C. S. Wu, 'Restructuring Object-Oriented Design using Genetic Algorithms,' In Proceedings of International Conf. on Software Engineering and Applications, pp. 167-172, 2000
  5. B. J. Lee and C. S. Wu, 'Restructuring of Object-Oriented Designs using Metrics,' Journal of KISS : Software and Applications, Vol. 28, No. 6, 2001
  6. S. Mancoridis, B. Mitchell, C. Rorres, Y. Chen, and E. Gansner, 'Using Automatic Clustering to Produce High-Level System Organizations of Source Code,' In Proceedings of the 6th International Workshop on Program Comprehension, pp. 45-52, 1998 https://doi.org/10.1109/WPC.1998.693283
  7. B. K. Kang and J. M. Bieman, 'A Quantitative Framework for Software Restructuring,' Journal of Software Maintenance, Vol. 11, No. 4, pp. 245-284, 1999 https://doi.org/10.1002/(SICI)1096-908X(199907/08)11:4<245::AID-SMR193>3.0.CO;2-8
  8. F. Abreu, G. Pereira, and P. Sousa, 'A Coupling-Guided Cluster Analysis Approach to Reengineer the Modularity of Object-Oriented Systems,' In Proceedings of the 4th European Conference on Software Maintenance and Reengineering, 2000 https://doi.org/10.1109/CSMR.2000.827300
  9. F. Abreu and M. Goulo, 'Coupling and Cohesion as Modularization Drivers: Are we being over-persuaded?' In Proceedings of the Fifth European Conference on Software Maintenance and Reengineering, 2001 https://doi.org/10.1109/.2001.914968
  10. J. Banerjee, W. Kim, H. J. Kim, and H. Korth, 'Semantics and Implementation of Schema Evolution in Object-Oriented Databases,' ACMSIGMOD, 1987 https://doi.org/10.1145/38714.38748
  11. P. Bergstein, 'Object-Preserving Class Transformations,' In Proceedings of Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'91), 1991 https://doi.org/10.1145/117954.117977
  12. L. Tokuda and D. Batory, 'Evolving Object-Oriented Designs with Refactorings,' In Proceedings of International Conf. on Automated Software Engineering, pp. 174-181, 1999 https://doi.org/10.1109/ASE.1999.802203
  13. I. Moore and T. Clement, 'A Simple and Efficient Algorithm for Inferring Inheritance Hierarchies,' Proceedings of Technology of Object-Oriented Languages and Systems(TOOLS) Europe, pp. 173-184, 1996
  14. G. Snelting and F. Tip, 'Reengineering Class Hierarchies Using Concept Analysis,' ACM. Sigsoft Software Engineering Notes, Vol. 23, No. 6, pp. 99-110, 1998 https://doi.org/10.1145/291252.288273
  15. L. C. Briand, J. W. Daly, and J. Wust, 'A Unified Framework for Cohesion Measurement in Object-Oriented Systems,' Empirical Software Engineering, Vol. 3, No. 1, pp. 65-117, 1998 https://doi.org/10.1023/A:1009783721306
  16. S. R. Chidamber and C. F. Kemerer, 'A Metrics Suite for Objet-Oriented Design,' IEEE Trans. on Software Engineering, Vol. 20, No. 6, pp. 476-493, 1994 https://doi.org/10.1109/32.295895
  17. M. Hitz and B. Montazeri, 'Measuring Coupling and Cohesion in Object-Oriented Systems,' In Proceedings of International Symposium on Applied Corporate Computing, 1995
  18. W. Li and S. Henry, '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
  19. 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
  20. R. Harrison, S. Counsell, and R. Nithi, 'Experimental assessment of the effect of inheritance on the maintainability of object-oriented systems,' The Journal of Systems and Software, Vol. 52, No. 2-3, pp. 173-179, 2000 https://doi.org/10.1016/S0164-1212(99)00144-2
  21. L. C. Briand, S. Morasca, and V. R. Basili, 'Property-Based Software Engineering Measurement,' IEEE Trans. on Software Engineering, Vol. 22, No. 1, pp. 68-86, 1996 https://doi.org/10.1109/32.481535
  22. C. Pons, L. Olsina, M. Prieto, 'A Formal Mechanism for Assessing Polymorphism in Object-Oriented Systems,' In Proceedings of Asia-Pacific Conference on Quality Software, pp. 53-62, 2000 https://doi.org/10.1109/APAQ.2000.883778
  23. 강유훈, 박찬진, 우치수, 김민정, 'UML 추상 구문을 이용한 정적 설계 제한조건 검사 도구', 한국 소프트웨어공학 학술대회 논문집, Vol. 3, No. 1, 2001
  24. D. S. Johnson, C. Aragon, L. McGeoch, and C. Schevon, 'Optimization by Simulated Annealing: An Experimental Evaluation, Part I, Graph Partitioning,' Operations Research, Vol. 37, pp. 865-892, 1989
  25. Operations Research v.37 Optimization by Simulated Annealing:An Experimental Evaluation, Part I, Graph Partitioning D.S.Johnson;C.Aragon;L.McGeoch;C.Schevon