기존 시스템에서 설계 패턴으로의 재공학 툴에 관한 연구

A Study on The Reengineering Tool From conventional System into Design Pattern

  • 김행곤 (대구효성가톨릭대학교 컴퓨터공학과) ;
  • 차정은 (대구효성가톨릭대학교 대학원 전산통계학과)
  • 발행 : 1998.09.01

초록

코드중심의 컴피넌트 추상화에 의한 클래스 단위의 응용시스템 구성은 각 요소의 독립성 및 재사용에 대한 잇점이 미흡하다. 이들 요소가 주로 구현상에 초점을 두기 때문이다. 다라서 사우이의 개발 단계에 대한 설계 문제의 추상화와 특정 영역의 일반적인 해결에 대한 정보 표현 및 구성 요소 상호 간의 관련성을 나타내는 설계패턴이 필요하다. 또한 기존 시스템을 분석하여 정확한 시스템을 이해하고 재사용 자원으로의 지식을 활용할 수 있는 소프트웨어 역공학이 필요하다. 즉, 객체지향 시스템의 설계구조를 추출하여 시스템 분석과 설계에 대한 이해를 향상시키고 표준화된 설계용어 및 컴퍼넌트 관계 구조를 통해 재사용을 용이하게 하는 설계 패턴 추출을 위한 역공학은 중요하다. 따라서 본 논문에서는 기존 객체지향 시스템 코드에서 설계 패턴 추출을 위한 역공학 적용에 관한 타당성과 설계 패턴 자동 추출을 위한 알고리즘을 Java 시스템에 적용하고 설계 패턴의 자동 추출을 위한 역공학 및 패턴 재사용을 위한 자동화 도구의 아키텍쳐를 설계 구현하다.

Appliciltion systems focusing class units, as component abstraction based on source code, has insufficient benefit of independency and reuse of elements. Only few effects are acquired, because it is only inclined implementation. We need design pattern to represent not only the problem abstraction but also information and relationship between system elements for generic solutions of specific domain Also, it is essential to software reverse engineering to catch the correct system through examming the cxisting system and utilizing the acquired knowledges as reusable resource. Namely, software reverse engineering for extracting the design pattern is very important because it improves the understand ability for system analysis and design through extracting the design structure of object-oriented system, and provides rich and high leIel reusabilitv through grasping the standard idioms and relationships between components. In this paper, we defined the extraction algorithm for design patterns with standardized, packaged and quantitative measlIIul thruugh applying reyerse engineering into existing ubject Olicnted system. And we designed the reengineering toul including reverse engineering for autumatic extractiun of design patterns ami reuse fur retrieval. editing and rebuilding oi design patterns. Also we applied the algorithms into Java applications.

키워드