Abstract
The goal of product line engineering is to support the systematic development of a set of similar software systems by understanding and controlling their common and distinguishing characteristics. The product line engineering is a process that develops reusable core assets and develops a set of software-intensive systems from a common set of core assets in a prescribed way. Currently, many software development technologies are accomplished in context of product line. However, much of the product line engineering research have focused on the reuse of work products relating to the software's architecture, detail design, and code. The product lines fulfill the promise of tailor-made systems built specifically for the needs of particular customers or customer groups. In particular, commonality and variability play central roles in the all product line development processes. These must be treated already during the requirement analysis phase. Requirements in product line engineering are basis of software development just like as traditional system development engineering, and basis of deciding other core assets' property - commonalities and variabilities. However, it is difficult to elicit, analyze and manage correct requirements. Therefore, it is necessary to develop systematic methods which can develop and manage requirement as core asset, which can be stable in anticipative change and can be well adapted to unpredictable change. In this paper, we suggest a method of managing requirements as core asset in product line. Through this method, the reuse of domain requirements can be enhanced. As a result, the cost and time of software development can be reduced and the productivity can be increased.
소프트웨어 프로덕트 라인 공학의 목표는 일련의 유사한 소프트웨어 시스템의 공통성과 구별되는 특성을 이해하고 제어함으로써 시스템의 체계적인 개발을 지원하는 것이다[1]. 이것은 소프트웨어 개발 시 나오는 산출물들을 핵심 자산으로 만들어 놓고 이를 체계적으로 재사용 할 수 있도록 지원하기 위한 프레임웍 역할을 한다. 현재 많은 기술들이 프로덕트 라인 공학 관련하여 연구되고 있지만, 그 초점이 소프트웨어 아키텍쳐나 상세 설계 또는 코드에 맞추어져 있다[2]. 소프트웨어 프로덕트 라인 공학에서는 컴포넌트의 공급, 조립뿐만 아니라 조립공정까지 특정 요구나 변화에 신속히 적응할 수 있도록 관리하는 것이 중요한데, 이는 요구사항 분석 단계에서부터 이루어져야 한다. 소프트웨어 프로덕트 라인 공학에서 요구사항은 전통적인 시스템 개발에서와 마찬가지로 모든 개발의 기초가 되는 부분이며, 다른 핵심 자산의 공통성과 가변성의 성질을 결정짓게 만들 수 있는 기준이 된다. 그러나 요구사항들을 다 반영하기도 전에 변경이 발생하는 수많은 경험을 해 온 것처럼, 올바른 요구사항을 획득하고 이를 분석, 관리한다는 것은 결코 쉬운 일이 아니다. 특히, 여러 개의 시스템을 개발할 때 사용할 요구사항은 공통성과 가변성의 속성을 가지게 된다. 그러므로 계획할 수 있는 변화에는 충분히 안정적이면서, 반면에 예측하지 못하는 변화에 잘 적응하고 개조될 수 있도록 유연성을 지닌 핵심 요구사항을 개발, 관리하기 위한 체계적인 방법이 필요하다. 본 논문에서는 소프트웨어 프로덕트 라인에서 핵심 자산의 하나인 도메인 요구사항을 관리하는 방법에 대하여 제안한다. 이를 통해 도메인 요구사항에 대한 재사용성을 중대시키고 시스템의 목표를 정확히 세우는 데 투자되는 많은 시간과 노력을 감소시켜 준다. 이는 결과적으로 소프트웨어 개발 시간과 비용을 줄이고, 생산성을 향상시키는 등의 장점을 가져다준다.