초록
컴포넌트 기반 개발은 재사용 단위의 컴포넌트를 사용한 경제적인 소프트웨어 개발 패러다임으로 학계와 산업계에 폭넓게 사용되고 있다. 잘 정의된 컴포넌트 인터페이스는 컴포넌트 사이의 저결합도와 의존도를 관리하며, 재사용과 확장성 및 유지보수성을 향상시키는 매개체가 된다. 따라서 컴포넌트가 도입된 이후 컴포넌트 인터페이스의 체계적인 개발 프로세스와 설계 지침에 대한 연구와 방법이 요구되어 왔다. 본 논문에서는 소프트웨어 아키텍쳐 계층 및 기능 유형에 따라 컴포넌트 기능을 제공하는 Provided, 요구하는 기능을 명세단위로 제공하는 Required와 사용자의 요구에 맞게 컴포넌트를 특화하는 Customize 인터페이스를 제시하며, 인터페이스 설계를 위한 기준을 마련하여 체계적인 설계 프로세스 및 지침을 고안한다. 먼저 아키텍쳐 계층별 Provided긴 인터페이스를 식별하기 위해 유즈케이스 모델과 클래스 모델 등에서 추출된 오퍼레이션을 클러스터링하며. 컴포넌트 내 식별된 가변성 배치 산출물에 기반하여 Customize 인터페이스를 설계한다. 또한 인터페이스 의존도에 따라 컴포넌트 기능 수행시 요구되는 Required 인터페이스를 명세로 제공한다. 제시된 설계 지침은 설계 전 과정을 통해 추적성이 보장되며, 사례연구를 통하여 고품질의 컴포넌트 인터페이스를 위한 실용적인 설계 기법의 토대를 마련한다.
Component-based Development is gaining a wide acceptance as an economical software development paradigm to develop applications by utilizing reusable software components. Well-defined interface manages coupling and cohesion between components, minimizes the effect on the user in case of component evolvement, and enhances reusability, extendibility and maintainability. Therefore, study on systematic development process and design guidelines for component interface has been required since the component has been introduced. In this paper, we propose three types of interfaces based on software architecture layers and functionality types; Provided Interface which provides functionality of a component, Required Interface which specifies required functionality that is provided by other components, and Customize Interface which tailors the component to customer's requirement. In addition, we suggest design criteria for well-designed interface, and systematic process and instructions for designing interface. We firstly cluster operations extracted from use case model and class model to identify Provided interfaces, and design Customize interfaces based on artifacts for variability. We also specify Required interfaces by identifying dependency among interfaces. Proposed interface design method provides traceability, throughout the component interface design. And furthermore, proposed guidelines support practical design for high quality component based on a case study.