- 추출식 소프트웨어 제품라인 공학을 위한 자산 컴포넌트 탐색 및 재공학 방법
- ㆍ 저자명
- 조성배,이혜선,강교철,Cho. Sungbae,Lee. Hyesun,Kang. Kyo Chul
- ㆍ 간행물명
- 정보과학회논문지. Journal of KIISE. 소프트웨어 및 응용
- ㆍ 권/호정보
- 2012년|39권 10호|pp.775-786 (12 pages)
- ㆍ 발행정보
- 한국정보과학회
- ㆍ 파일정보
- 정기간행물| PDF텍스트
- ㆍ 주제분야
- 기타
소프트웨어 제품라인 공학은 동일한 도메인에 포함된 제품들의 공통점과 차이점을 분석하고 이를 고려하여 재사용 가능한 자산을 개발하여, 계획된 제품들에 자산을 재사용함으로써 소프트웨어의 품질과 생산성을 향상시키는 방법이다. 재품라인의 자산을 개발하는 방법 중 추출식 접근법은 기존에 주로 연구되던 선행식 접근법과 달리, 레거시 시스템으로부터 재사용 가능한 자산을 확보함으로써 자산 개발에 필요한 초기 비용을 줄이고 시간을 단축시킬 수 있는 접근법으로 제안되었다. 추출식 접근법을 성공적으로 적용하기 위해서는 레거시 시스템을 분석하고 그로부터 자산을 개발함으로써 자산 개발 시간을 줄여야 한다. 하지만 재품라인을 고려하지 않은 레거시 시스템을 설계자가 자신의 고려사항에 따라 하나의 컴포넌트에 여러 기능을 혼합하여 구현한 시스템이기 때문에 설계 및 코드를 이해하고 재사용 가능한 자산을 명확히 분리하여 확보하는데 어려움이 존재한다. 이를 해결하기 위해서 본 논문에서는 추출식 접근법을 적용하여 제품라인 자산을 확보함에 있어서, 레거시 시스템에 대한 이해를 높이고, 자산 후보의 파악 및 분리를 돕는 방법을 소개한다. 본 논문에서 제안하는 방법은 다음의 두 가지 프로세스로 구성되어 있다: 1) 시스템 구조의 이해를 높이기 위하여, 첫 번째 프로세스는 컴포넌트 타입을 정의하고, 레거시 시스템에서 정의된 컴포넌트 타입의 컴포넌트를 자동으로 탐색하는 단계로 구성된다. 탐색된 레거시 컴포넌트를 통하여 레거시 시스템에서 각 컴포넌트가 갖는 역할을 이해할 수 있게 된다. 2) 재사용 가능한 자산을 레거시 시스템으로부터 분리하기 위하여, 두 번째 프로세스에서는 컴포넌트 타입을 기반으로 응집도가 높은 컴포넌트를 분석하여 분리해내는 재공학 방법을 제안한다. 제안한 방법을 검증하기 위하여 하나의 구체적인 컴포넌트 타입의 탐색 방법 및 재공학 방법을 수립하고, 이를 지원하는 도구를 개발하여 실제 사례에 적용해보았다.
Software product line engineering is a paradigm that helps organizations develop software systems from reusable assets rather than from scratch. It can improve both software quality and software productivity. The extractive approach to software product line engineering is an emerging approach that capitalizes on legacy systems when developing reusable assets. With the extractive approach, organizations can reduce time and costs required to initiate a product line, compared to the proactive approach. For the success of the extractive approach, it is important to reduce asset development time by analyzing legacy systems and extracting reusable assets from them. However, as developers who have developed these systems often combined many functions in one component, it is difficult to understand and separate reusable assets. To address these challenges, this paper suggests an approach that contains processes and tactics for analyzing legacy systems and extracting reusable assets from them. This approach consists of two major processes: 1) To analyze the legacy system structure, the first process includes steps that define "component type" which can be used to automatically identify legacy components of the defined component type. From the identified legacy components, the analyst can understand the role of each component in the legacy system. 2) To separate reusable assets from the legacy system, the second process includes steps that help analyst evaluate cohesiveness of candidate components based on the component type. To demonstrate the feasibility of the proposed approach, we defined one component type, a component identification method, and a separation method, and developed a tool that supports the method.