In this paper, we suggest a framework for reconstructing software architecture from open source. The framework consists of the steps and tool requirements to reconstruct software architecture for modifying open source code. The framework can be a guideline for developers to analyze open source and reconstruct software architecture, and for researchers to understand the requirements of software reconstruction toolset for modifying open source.
For that, we define the process of reconstructing software architecture from open source. Based on the process, we evaluate several tools to support software architecture reconstruction. First, we reason automatable steps in the process. Then, we investigate current tool capability to support the automatable steps, and we map some current tools to the automatable steps. As a result, we deduce toolset requirements for supporting software architecture reconstruction. The summary tables are useful for researchers to understand the requirements of software reconstruction toolset for modifying open source and overview the present state of software architecture reconstruction tools.
Then we perform a case study of Reflexion Model, an open source code, with the tools selected in the review. The purpose of the case study is to verify that the framework can be applied to software architecture reconstruction. In addition, the case study provides guidelines for developers to understand and adopt our framework.
본 논문에서, 우리는 오픈 소스를 위한 소프트웨어 아키텍처 재구축 체제를 제시한다. 오픈 소스는 아키텍처 문서 및 아키텍트의 도움을 받을 수 없는 가장 대표적인 예로서, 소프트웨어 아키텍처를 알아 낼 수 있는 원천이 극히 제한되며, 주요 원천은 소스 코드와 실행 프로그램이 된다. 이러한 구체적인 상황을 가정하고 단계들을 정의함으로써, 이와 유사한 상황에 처하는 개발자들에게 구체적인 가이드라인을 제시한다. 또한, 현재 효율을 높이기 위한 도구들이 많이 나와 있으므로, 해당 도구들을 검토하여, 아키텍처 역공학을 위해 도구 사용을 원하는 개발자들에게 도움을 준다. 마지막으로 제시한 체제 안에서 검토한 도구를 사용하여 사례 연구를 함으로써, 실제로 활용할 수 있는 체제임을 보여준다. 또한, 본 논문은 지원 도구와 본 논문에서 정의한 단계의 연관성을 체계적으로 논의하여, 지원 도구를 고안하고자 하는 연구자들에게도 도움을 준다.