Software Architecture Recovery for Android Application Reuse

안드로이드 어플리케이션의 재사용을 위한 소프트웨어 아키텍처 생성

  • Park, Jin-Soo (Department of Computer Science, Chungbuk National University) ;
  • Kwon, Jang-Jin (Department of Computer Science, Chungbuk National University) ;
  • Hong, Jang-Eui (Department of Computer Science, Chungbuk National University) ;
  • Choi, Min (Department of Information and Communication Engineering, Chungbuk National University)
  • 박진수 (충북대학교 컴퓨터과학과) ;
  • 권장진 (충북대학교 컴퓨터과학과) ;
  • 홍장의 (충북대학교 컴퓨터과학과) ;
  • 최민 (충북대학교 정보통신학과)
  • Received : 2013.08.30
  • Accepted : 2013.10.10
  • Published : 2013.11.30

Abstract

Android applications market has increased rapidly due to the popularity of smart phones. In order to high competitiveness in the application market should be high productivity, reduce cost. And short development cycle is required because of increased the android applications demand. Owing to develop applications in short time, the requirements analysis, design process are able to omitted. But in the case of reuse application at development phase, involved many problems because omit document or design. so target of this paper is android application source code that omit document or design. we propose architecture recovery techniques from android application source code by reverse engineering with identify functions are reused. We expect that increase productivity and reduce development cost, smooth maintain by proposed technique.

스마트폰의 대중화로 안드로이드 어플리케이션 시장이 급증하였다. 안드로이드 어플리케이션 시장에서 경쟁력을 갖추기 위해서는 높은 생산성, 비용 절감 및 유지 보수가 잘 이루어져야 한다. 또한 어플리케이션의 수요가 높아지면서 짧은 개발 주기가 요구되며 단기간 내에 개발을 진행해야 하므로 개발자는 요구사항 분석 및 체계적인 설계 과정을 생략하는 경우가 많다. 하지만 어플리케이션의 생산성과 비용 절감을 위해 기존 어플리케이션의 전체 또는 일부분을 재사용 할 경우 설계 및 문서화의 생략으로 인해 많은 어려움을 수반되며, 개발 이후 어플리케이션의 유지 보수가 제대로 이루어지지 않을 수 있다. 따라서 본 연구에서는 설계 및 문서화가 생략된 안드로이드 어플리케이션의 소스코드를 대상으로 하여 해당 어플리케이션의 아키텍처를 추출하는 리버스 엔지니어링 방법과, 재사용 가능한 기능들을 식별하는 방법을 제안한다. 제안하는 방법을 통해 안드로이드 어플리케이션의 생산성 증가 및 비용감소와 원활한 유지보수가 이루어지는 것을 기대할 수 있다.

Keywords