검색 상세

역공학에서의 시퀀스 다이어그램 생성을 위한 규칙 기반의 호출 트리 통합 기법

A Rule Based Call-Tree Combination Method

초록/요약

Software maintenance has become more important due to increasing software size and complexity. System comprehension is very important task to do first for effective software maintenance. In order to understand implementation of system’s behavior, a model which describes interaction of system’s internal objects is needed. The UML(Unified Modeling Language) model can helps software developer to understand system. But since modeling is difficult and time-consuming work in software development, many project team do not modeling. As a result, developers can’t get a model which is necessary for understanding system to be maintained during system maintenance. Effective reverse engineering tools can facilitate this problem. However, a sequence diagram generated by existing tools has problems such as incomplete diagram by missing of messages and Low readability by including repetition of messages and unnecessary messages. For this reason, It can’t be used in software maintenance. To solve this problem, this paper proposes a call-tree based reverse engineering method using static analysis and dynamic analysis for generation of sequence diagram. The effectiveness of the methodology was validated by generating sequence diagram from open source software and comparing the result to existing reverse engineering tools.

more

초록/요약

소프트웨어의 규모가 커지고 복잡성이 증가함에 따라 소프트웨어의 유지보수가 보다 중요해지고 있다. 원활한 유지보수를 위해 기존 시스템의 내부 구현을 이해하는 것은 반드시 선행 되어야 하는 중요한 작업이다. 시스템 내부의 구현을 이해하기 위해, 내부의 오브젝트와 이들 간의 상호작용을 가시화한 모델이 필수적이다. 하지만 소프트웨어 개발 현장에서는 여러 가지 요인에 의해 개발 시 모델링 단계를 거치지 않고 있으며, 이로 인해 유지보수 시 시스템 이해에 필요한 모델이 수반되지 않는다. 이 때문에 다양한 시스템 분석 기법을 활용하여 기존 시스템으로부터 시퀀스 다이어그램과 같은 시스템 행위를 가시화 할 수 있는 모델을 역으로 추출하는 역공학 연구들이 진행되어 왔다. 그러나 기존의 기법을 통해 추출되는 시퀀스 다이어그램은 기능 수행 메소드 호출 흐름의 단절, 시스템 문맥 정보의 부족으로 일부 흐름의 누락, 중복되는 메시지의 포함, 불필요한 메시지 포함 등으로 불완전성과 낮은 가독성의 문제를 안고 있으며, 이로 인해 실제 활용되지 못하는 한계점을 갖는다. 이와 같은 문제를 해결하기 위해 본 연구에서는 소스 코드에 기반한 정적 분석과 실행 추적을 이용한 동적 분석 기법을 병행하여 시퀀스 다이어그램을 추출할 수 있는 호출 트리 기반의 역공학 기법을 제안한다. 또한, 제안한 기법의 효용성을 검증하기 위해 오픈 소스 소프트웨어를 대상으로 시퀀스 다이어그램을 추출하고, 이를 기존 역공학 도구들의 결과와 비교 분석하였다.

more