객체지향 모델로부터 정적 메트릭을 이용하여 컴포넌트 기반 시스템으로 변환하는 기법

A Transforming Technique toward Component-based System from Object-oriented Model Using Static Metrics

  • 이은주 (서울대학교 전기컴퓨터공학부) ;
  • 신우창 (서경대학교 인터넷정보학) ;
  • 이병정 (서울시립대학교 컴퓨터과학) ;
  • 우치수 (서울대학교 전기컴퓨터공학부)
  • 발행 : 2004.06.01

초록

점차적으로 소프트웨어의 복잡도는 높아지고 그 생명주기는 짧아지므로, 기존의 검증된 소프트웨어 요소를 재사용 하는 것이 필요하다. 그러나 기존의 객체 지향 기술은 광범위한 재사용을 유도하지 못 하였다. 컴포넌트는 객체보다 규모가 크고 특정 도메인에 적합한 특성을 가지므로, 시스템 구조화, 설명 및 개발에 있어 더 나은 수단을 제공해 준다. 또한 그 규모나 재사용성에 있어 새로운 개발환경인 분산 시스템에 더 적합하다. 본 논문에서는 객체지향 시스템을 컴포넌트 기반 시스템으로 변환하는 프로세스를 제안하였다. 해당 프로세스는 두 단계로 나뉜다. 우선, 클래스들 간의 합성 및 상속 관계를 이용하여 기본 컴포넌트를 생성한다. 그 후 기본 컴포넌트와 컴포넌트화 되지 않은 클래스들에 대해 본 논문에서 제안된 정적 메트릭과 가이드라인을 이용하여 정제하여 컴포넌트 기란 시스템으로 변환한다.

The increasing complexity and shorter life cycle of software have made it necessary to reuse software. Object-oriented development had not provided extensive reuse and computing infrastructures are evolving from mainframe to distributed environments. However, components provide more advanced means of structuring, describing and developing system, because they are more coarse-grained and have more domain-specific aspects than objects. And they are also suited for distributed environment due to their reusability and granularity. In this paper, we present a process including the static metrics and guidelines that can be applied to transform object-oriented systems into component-based systems. Our process consists of two parts: First, basic components are created based upon composition and inheritance relationships between classes. Second, intermediate system is refined into component-based system with the static metrics and guidelines we propose.

키워드

참고문헌

  1. I. Sommerville, Software Engineering, 6th Ed., Addison Wesley, Harlow, England, 2001
  2. F. Huber, A. Rausch, and B. Rumpe, 'Modeling Dynamic Component Interfaces,' In Proceedings of Technology of Object-Oriented Languages, pp.58-70, 1998 https://doi.org/10.1109/TOOLS.1998.711003
  3. K. Bergner, A. Rausch, M. Sihling, and A. Vilbig, 'Putting the Parts Together-Concepts, Description Techniques, and Development Process for Componentware,' In proceedings of the Thirty-Third Annual Hawaii International Conference on System, Vol 8, 2000 https://doi.org/10.1109/HICSS.2000.927012
  4. H. Jain, 'Business Component Identification - A Formal Approach,' In Proceedings of Fifth IEEE International Enterprise Distributed Object Computing Conference, pp 183 -187, 2001 https://doi.org/10.1109/EDOC.2001.950437
  5. E. Holz, and O. Kath, 'Manufacturing Software Components from Object-Oriented Design Models,' In Proceedings of Fifth IEEE International Enterprise Distributed Object Computing Conference, pp. 262-272, 2001 https://doi.org/10.1109/EDOC.2001.950445
  6. E. Stroulia and T. Systa, 'Dynamic Analysis for Reverse Engineering and Program Understanding,' Applied Computing Review, ACM Press, vol 10, issue 1, pp. 8-17, 2002 https://doi.org/10.1145/568235.568237
  7. M.A. Serrano, C.M. de Oca and D. L. Carver, 'Evolutionary Migration of Legacy Systems to an Object-Based Distributed Environment,' In Proceedings of the IEEE International Conference on Software Maintenance, pp. 86-95, 1999 https://doi.org/10.1109/ICSM.1999.792579
  8. A. De Lucia, G. A. Di Lucca, A. R. Fasolino, P. Guerram and S. Petruzzelli, 'Migrating Legacy Systems towards Object Oriented Platforms,' In Proceedings of the IEEE International Conference on Software Maintenance, pp. 122-129, 1997 https://doi.org/10.1109/ICSM.1997.624238
  9. H. M. Sneed, 'Generation of stateless components from procedural programs for reuse in a distributed system,' In Proceedings of the Fourth European Software Maintenance and Reengineering, pp. 183-188, 2000 https://doi.org/10.1109/CSMR.2000.827326
  10. J. K. Lee, S. J. Jung, S. D. Kim, W. H. Jang and D. H. Ham, 'Component Identification Method with Coupling and Cohesion,' In Proceedings of Asia-Pacific Software Engineering Conference, pp. 79-86, 2001 https://doi.org/10.1109/APSEC.2001.991462
  11. M. W. Price, D. M. Needham and S.A. Demurjian, 'Producing Reusable Object-Oriented Components:A Domain-and-Organization-Specific Perspective,' In Proceedings of Symposium on Software Reusability, pp. 41-50, 2001 https://doi.org/10.1145/375212.375236
  12. F. B. Abreu, G. Pereira, and P. 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, 2000 https://doi.org/10.1109/CSMR.2000.827300
  13. D. F. Bacon and P. F. Sweeney, 'Fast static Analysis of C++ Virtual Function Calls,' In Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, San Jose, California, October pp. 324-341, 1996 https://doi.org/10.1145/236337.236371
  14. E. S. Cho, M. S. Kim, and S. D. Kim, 'Component metrics to measure component quality,' In Proceedings of Asia-Pacific Software Engineering Conference, pp. 419-426, 2001 https://doi.org/10.1109/APSEC.2001.991509
  15. M. Fowler, Refactoring : Improving the Design of Existing Code, 4th Ed., Addison Wesley, Harlow, England, 1999
  16. L C. Briand, S. Morasca, and V. R. Basili, 'Property-Based Software Engineering Measurement,' IEEE Transaction on Software Engineering, Vol. 22, No.1, pp. 68-86, 1996 https://doi.org/10.1109/32.481535