Reverse Engineering of Embedded Software based on Model-Driven Development

모델 기반 개발방법은 개발자가 추상화된 모델만을 설계하는 것만으로도 소프트웨어를 개발할 수 있도록 하는 방법이다. 현재까지의 모델 기반 개발방법론은 모델에서 코드를 변환하는 것은 다루고 있지만, 반대로 코드에서 모델로의 변환은 고려하고 있지 않다. 본 논문에서는 모델이 아닌 기존에 작성된 C 언어 코드를 모델로 변환하는 역공학 기법을 제안한다. 이러한 역공학 기법을 사용하면, 새로운 모델을 작성할 때 기존의 코드로부터 모델을 얻어내 적용할 수 있다. 또한, 모델을 작성하고 작성된 모델을 통해 생성된 최종코드를 수정하였을 경우 역공학을 통해 모델과 수정한 코드를 일관성 있게 유지할 수 있다. 이를 지원하기 위해 C언어를 UML로 변환 하는 방법 및 변환된 모델의 효율적인 구성을 위한 모델 재구성 방법을 제안한다.