Methods to Design Provided, Required and Customize Interfaces of Software Components

소프트웨어 컴포넌트의 Provided, Required와 Customize인터페이스 설계 기법

  • Published : 2004.10.01

Abstract

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.

컴포넌트 기반 개발은 재사용 단위의 컴포넌트를 사용한 경제적인 소프트웨어 개발 패러다임으로 학계와 산업계에 폭넓게 사용되고 있다. 잘 정의된 컴포넌트 인터페이스는 컴포넌트 사이의 저결합도와 의존도를 관리하며, 재사용과 확장성 및 유지보수성을 향상시키는 매개체가 된다. 따라서 컴포넌트가 도입된 이후 컴포넌트 인터페이스의 체계적인 개발 프로세스와 설계 지침에 대한 연구와 방법이 요구되어 왔다. 본 논문에서는 소프트웨어 아키텍쳐 계층 및 기능 유형에 따라 컴포넌트 기능을 제공하는 Provided, 요구하는 기능을 명세단위로 제공하는 Required와 사용자의 요구에 맞게 컴포넌트를 특화하는 Customize 인터페이스를 제시하며, 인터페이스 설계를 위한 기준을 마련하여 체계적인 설계 프로세스 및 지침을 고안한다. 먼저 아키텍쳐 계층별 Provided긴 인터페이스를 식별하기 위해 유즈케이스 모델과 클래스 모델 등에서 추출된 오퍼레이션을 클러스터링하며. 컴포넌트 내 식별된 가변성 배치 산출물에 기반하여 Customize 인터페이스를 설계한다. 또한 인터페이스 의존도에 따라 컴포넌트 기능 수행시 요구되는 Required 인터페이스를 명세로 제공한다. 제시된 설계 지침은 설계 전 과정을 통해 추적성이 보장되며, 사례연구를 통하여 고품질의 컴포넌트 인터페이스를 위한 실용적인 설계 기법의 토대를 마련한다.

Keywords

References

  1. Grahn, G., 'Transition from Conventional to Component-based Development,' in International Workshop on Component-Based Software Engineering, pp, 78-82, 1999
  2. Short, K., Component Based Development and Object Modeling, Sterling Software, Technical Handbook Version 1.0, Februaray 1997
  3. Chessman, J., and Daniels, J., UML Component, Addison-Wesley, 2001
  4. D'Souza, D. S., and Wills, A. C., Objects, Components, and Frameworks with UML: The Catalysis Approach, Addison Wesley, 1999
  5. Whitehead, K., Component-based Development: Principles and Planning for Business Systems, Addison Wesley, 2002
  6. FowLer, M., Patterns Of Enterprise Application Architecture, Addison Wesley, 2003
  7. Szyperski, C., Component Software: Beyound Object-Oriented Programming Second Edition, Addison Wesley, 2002
  8. Booch, C. K., Jacobson, I., and Rumbaugh, J., UML Distilied, Addison Wesley, 2004
  9. Choi, S. W., Chang, S. H., and Kim, S. D., 'A Systematic Methodology for Developing Component Frameworks,' Lecture Notes in Computer Science 2984, Proceedings of 7th Fundamental Approaches to Software Engineering (FASE'04) Conference, pp.359- 373, 2004
  10. Michasel, W. B., and Richard, C. C., 'A Technique to Identify Component Interfaces,' Workshop on Software Architecture Reconstruction at WCRE, November, 2002
  11. Sterling Software, Identifying and Scoping CBD96 Components, November 1996
  12. Lee, S. D., Yang, Y. J, Cho, E. S., and Kim, S., D., COMO: A UML-Based Component Development Methodology, Asia-Pacific Software Engineering Conference, pp.54-61, December, 1999 https://doi.org/10.1109/APSEC.1999.809584
  13. Geyer, L., and Becker, M., 'On the Influence of Variabilities on the Application-Engineering Process of a Product Family,' SPLC2 2002, LNCS 2379, pp.1-14, 2002
  14. Kim, C. J. and Kim, S. D., 'The Static and Dynamic Customization Technique of Component,' Journal of KISS: Software and Applications, Vol.29, No.09, pp.605-618, October 2002
  15. So, D. S., Shin, S. K., and Kim, S. D., 'A Formal Model of Component Variability Types and Scope,' Journal of KISS: Software and Applications, Vol. 30, No.05, pp. 414-429, June 2003
  16. Clements, P., Bachmann, F., and Bass, L., Documenting Software Architectures, Addison Wesley, 2003