초록
소프트웨어 프로덕트 라인을 구축하고자 할 때,첫 단계 활동은 도메인 분석을 통해 요구사항 들에서 가변성을 식별하는 것이고, 다음 단계는 일련의 관련된 프로덕트들의 전체적인 구조를 나타내는 도 메인 아키텍처를 개발하는 것이다 도메인 아키텍처는 소프트웨어 프로덕트 라인에 포함되어 있는 프로덕트들의 공통성과 가변성을 기술함으로써 프로덕트 라인의 핵심자산이 된다. 핵심자산의 가변성은 개발 프로세스가 진행됨에 따라 식별될 수 있는 가변 요소의 종류와 상세화 수준이 달라지기 때문에 아키텍처 수준에서 식별될 수 있는 가변성을 정의하고 이를 체계적으로 식별하여 아키텍처 모델에 명시적으로 표현하는 것이 중요하다. 아키텍처 수준에서 고려해야 하는 가변성은 아키텍처 구성 요소들에서 발생하는 가변성 뿐만 아니라 이들의 구성(configuration) 관계를 나타내는 모텔에서 나타나는 가변성들까지 고려해야 하기 때문에, 이들 사이의 복잡한 관계를 이해하고 표현하는 것은 매우 힘든 일이며 이에 대한 기존 연구가 부족한 실정이다. 본 논문에서는 공통성과 가변성이 명시적으로 고려되는 프로덕트 라인의 핵심 자산으로서 도메인 아키텍처를 개발하는 방법을 제시한다. 이를 위해, 최근 Object Management Group(OMG)에서 채택한 재사용 자산 병세(Reusable Asset Specification; RAS) 모델을 확장하여 공통성과 가변성 개념이 명확히 정의된 도메인 아키텍처 메타모델을 제시한다. 제시되는 메타모델에는 아키텍처의 구성요소들이 정의되어 있으며, 각 구성요소와 모텔에서 식별 될 수 있는 가변성이 상세화 수준에 따라 두 가지 형태로 구분되어 제시되어 있다. 또한 본 메타모델을 기반으로 특정 도메인에 대한 아키텍처에 가변성이 명시적으로 표현되는 방법을 보인다.
When the decision to initiate a software product line has been taken, the first step is the domain analysis describing the variability in the requirements, the second important step is the definition of a domain architecture that captures the overall structure of a series of closely related products. A domain architecture can be a core asset in product line by describing the commonalities and variabilities of the products contained in the software product line. The variabilities, which are identified at each phase of the core assets development, are diverse in the level of abstraction. Therefore, it is important to clearly define, systematically identify, and explicitly represent variability at the architectural level. However, it is difficult to identify and represent the variability which should be considered at the architecture level, because these may be appeared in architecture elements and in architecture configuration. In this paper, we suggest a method of developing domain architecture as a core asset in product line where commonality and variability are explicitly considered. First of all, we will describe a domain architecture metamodel that can explicitly define commonality and variability concepts by extending the Object Management Group's ($OMG^{TM}$ Reusable Asset Specification eRAS) model. Using the domain architecture metamodel, architecture elements are defined and the variations that can be identified at the architecture level are classified into two types in according th abstract level. Additionally, we describe a domain architecture where commonality and variability are explicitly considered on basis of this metamodel.