초록
컴포넌트 기반 어플리케이션 개발(CBD: Component Based Development)은 Time-To-Market을 위한 필수적인 기법이며 컴포넌트를 이용해 다양한 도메인의 어플리케이션을 개발하기 위해서는 재사용성이 높은 컴포넌트가 제공되어야만 한다. 컴포넌트의 재사용성을 높이려면 다양한 도메인의 요구사항을 분석하여 개발해야 한다. 그러나 개발하려는 컴포넌트에 해당하는 다양한 도메인의 모든 요구사항을 분석해 컴포넌트 내에 포함한다는 것은 많은 부하를 주며, 또한 여러 도메인의 공통 기능을 가진 일반적인 컴포넌트만 제공하는 것은 개발자가 개발해야 하는 다른 영역이 존재하므로 Time-To-Market을 이루기가 쉽지 않다. 이와 같이, 컴포넌트 개발(CD : Component Development) 시점에 다양한 도메인의 요구사항 분석을 통해 일반적인 컴포넌트를 개발하는 것이 재사용성이 높다고는 볼 수 없으며 이러한 컴포넌트는 공통적인 기능을 가지고 있는 컴포넌트 일뿐이며 공통 영역 외의 영역은 또 다른 개발의 부담을 준다. 따라서 본 논문에서는 공통 컴포넌트를 포함하여 특정 영역의 컴포넌트를 재사용하기 위한 컴포넌트 커스터마이제이션 기법을 제안한다. 컴포넌트의 데이터 속성(Attribute), 기능(Behavior), 그리고 메시지 흐름(Message Flow)에 대한 변경 가능성을 제공하여 컴포넌트의 재사용성을 높일 수 있다. 본 커스터마이제이션 기법은 개발된 컴포넌트들을 통합하거나 컴포넌트 내에 새로운 기능을 제공할 수 있도록 컴포넌트 내의 메시지 흐름을 변경할 수 있다. 또한 컴포넌트 내에 존재하는 클래스를 다른 클래스로 교환하거나 통합된 컴포넌트를 다른 기능의 컴포넌트로 교환할 수 있는 기법을 제공하여 다양한 도메인의 요구 사항을 수용할 수 있도록 한다. 이와 같이 본 커스터마이제이션 기법은 공통 기능의 컴포넌트 뿐만 아니라 특정 영역의 컴포넌트에 대한 재사용성도 확보할 수 있다.
The CBD (Component Based Development) is a requisite technique for the Time-To-Market, and a highly reusable component should be provided to develop a variety of domain applications with the use of components. To increase the reusability of components, they should be developed by analyzing requirements of many different kinds of domains. However, to analyze requirements of a variety of domains related to the components to be developed and to include them inside the components will give burden to developers. Also, providing only general components that have common facilities for the several domains is not easy to accomplish the time-to-market since there are other domains that the developers have to develop. As such, developing common component through the analysis of several domains at the time of the CD (Component Development) does not always guarantee high reusability of the component, but gives burden to developers to develop another development since such components have common functions. Considering this, this paper proposes the component customization technique to reuse common components as well as special components. The reusability of the component can be increased by providing changeability of the attribute, behavior and message flow of the component. This customization technique can change the message flow to integrate developed components or to provide new functions within the component. Also, provides a technique to replace the class existing within the component with other class or to exchange the integrated component with the component having a different function so that requirements from a variety of domains may be satisfied. As such, this technique can accept the requirements of several domains. As such, this customization technique is not only the component with a common function, but it also secures reusability components in the special domain.