Abstract
It is well recognized that component-based development (CBD) is an effective approach to manage the complexity of modem software development. To achieve the benefits of low-cost development and higher productivity, effective techniques to maximize component reusability should be developed. Component is a set of related concepts and objects, and provides a particular coarse-grained business service. Often, these components include various message flows among the objects in the component, called 'business workflow`. Blackbox components that include but hide business workflow provide higher reusability and productivity. A key difficulty of using blackbox components with business workflow is to let the workflow be customized by each enterprise. In this paper, we provide techniques to model the variability of family members and to customize the business workflow of components. Our approach is to provide formal specification on the component variability, and to define techniques to customize them by means of the formalism.
컴포넌트는 소프트웨어 개발의 복잡성을 감소시키는 효과적인 방법으로 평가되고 있다. 그러나 소프트웨어 개발 시 컴포넌트를 사용하여 기간 단축과 비용 절감 효과를 얻기 위해서는 컴포넌트의 재사용성이 향상되어야 한다. 업무 단위로 컴포넌트를 설계하여 컴포넌트 안에 업무 워크플로우를 포함하는 것은 컴포넌트의 재사용성을 향상시키는 효과적인 방법이다. 워크플로우가 내장된 컴포넌트는 업무 단위로 재사용되기 때문에 개발 기간 단축과 비용 절감 효과가 크다. 몇 몇 컴포넌트 방법론에서 워크플로우를 내장한 컴포넌트 설계 기법의 필요성을 제시했다. 그러나 컴포넌트 개발에 적용하기 위해서는 좀 더 실용적이고 구체적인 기법이 요구된다. 본 논문에서는 컴포넌트를 통한 워크플로우의 재사용을 위해 패밀리 멤버간의 가변적인 워크플로우를 컴포넌트에 내장하여 재사용성을 높이는 기법을 제안한다. 제시된 기법은 워크플로우와 워크플로우 가변성에 대한 정형명세를 통해 복잡한 워크플로우의 설계를 단순화한다. 또한 정형 명세를 통해 워크플로우 가변성 간의 불일치를 해결하고 가변성의 결합도를 낮춘다. 정형 명세와 UML을 사용한 컴포넌트 모델링의 산출물은 컴포넌트 구현 소스 코드를 자동으로 생성하는 것을 돕는다. 따라서 제시된 설계 기법은 개발자의 생산성을 높이고 컴포넌트의 재사용성을 향상시킨다. 본 논문에서는 설계 기법과 함께 예제를 통해 컴포넌트 워크플로우 명세와 설계 기법의 타당성을 입증한다.