C++ 언어에 대한 역공학 도구의 설계 및 구현

객체 지향 개념은 최근 십 년간 가장 활발하게 연구되고 있는 분야 중의 하나이다. 객체 지향 개념은 소프트웨어 위기 극복과 생산성 향상을 위한 유력한 접근 방식임이 분명하다. 따라서 객체 지향 CASE(Computer Aided Software Engineering) 도구의 필요성은 점차 증가하고 있다. 본 연구의 최종 목적은 외국의 회사들에 의하여 개발된 객체 지향 개발 도구들의 문제점을 해결할 수 있는 좀더 유용한 객체 지향 CASE 도구를 개발하는 것이다. 본 논문에서는 이전에 수행되었던 개발 결과를 토대로 C++ 언어에 대한 역공학 도구 개발 결과를 제시한다. OODesigner라고 명명된 본 도구는 현재 Rumbaugh의 OMT(Object Modeling Technique) 기법 중에서 객체 모델을 지원한다. 이 도구는 C++ 원시 코드에 대한 역공학 기능뿐 아니라 객체 도표의 작성 기능, 클래스 자원에 대한 문서화 기능, 자동적인 C++ 코드 생성 기능, 클래스의 재 사용을 위한 정보 저장소 기능 등을 수행한다. 역공학 기능을 이용하여 객체 도표와 C++ 프로그램간의 일관성을 유지할 수 있기 때문에 객체 지향 기법의 솔기 없는 공정을 달성할 수 있다. 본 논문에서는 이 도구의 역공학 기능에 대한 설계 및 구현 결과를 중점적으로 기술한다. OODesigner는 최근 일년간 public domain에 공개되어 있으며 많은 외국 사용자의 관심을 받고 있다.