컴포넌트 프레임워크 설계를 위한 실용적인 커넥터 패턴

Practical Connector Patterns for Designing Component Frameworks

  • 발행 : 2004.01.01

초록

학계와 산업계 모두 효율적인 재사용 기술인 Component-based Development(CBD)로의 전환을 받아들이고 있다. Product Line Engineering(PLE)에서의 컴포넌트 프레임워크는 컴포넌트, 커넥터와 그들의 시멘틱(Semantic)들의 집합으로 구성된다. 단순한 컴포넌트 조립 보다 반 완성 어플리케이션인 컴포넌트 프레임워크가 재사용의 잠재력이 더 크다. 그러나, 어플리케이션 개발을 위해 여러 업체에서 획득된 COTS 컴포넌트들의 연관관계, 의존관계가 서로 완벽하게 일치하지 않아, 컴포넌트 조립이나 컴포넌트 대체시 구현을 변경해야 하는 문제가 발생된다. 그러므로 커넥터는 관련된 컴포넌트들간의 상호작용 관리뿐만 아니라, 조립될 수 없는 컴포넌트들간의 문제를 보완하여 연결한다. 아직 실용적으로 사용할 수 있는 커넥터에 관한 연구 및 구체적인 해결 방안이 미흡하다. 본 논문에서는 커넥터를 정의 하기 위한 메타모델을 제시하고, 커넥터를 실용적으로 설계하고 구현할 수 있는 5개의 주요 패턴을 제시한다. 제시된 주요패턴들은 설계 지침 및 문제 해결방안을 제공하여 이를 통해 컴포넌트 프레임워크 기반의 실용적이고 효율적인 커넥터를 구성할 수 있도록 한다. 또한, 주요 커넥터 패턴의 적용 기법 및 구현을 통한 적용 사례를 제시하여 컴포넌트의 활용성과 재사용성이 증가됨을 보인다.

Component-based development(CBD) has acquired a substantial acceptance in both academia and industry as an effective inter-organizational reuse technology. A component framework in product line engineering(PLE) which consists of related components, connectors and their semantics has a greater potential for reusability than components. In frameworks, components are glued with association, dependency and connections. Problems occur like affecting the implementation code of components when they are glued and replaced because the association and dependency relationships between COTS components which are acquired for application development do not match exactly. Especially, a connector may not only connect related components, but also mate partially-matched COTS components fit together. However, little has been studied to date about connectors that can be used practically. In this paper, we present a meta-model for connectors and show how a connector can be designed and implemented in practice. We propose five main patterns of connectors. Proposed major patterns Provide design guidelines for practical and efficient connector configuration based on component framework. And also, applying techniques and applied case studies of the major patterns show greatly increased applicability and reusability of the component without component modification.

키워드

참고문헌

  1. Kim Soo, 'Lesson Learned form a Nation-wide CBD Promotion Project,' Communications of The ACM, vol. 45, Issue 10, Oct. 2002 https://doi.org/10.1145/570907.570936
  2. Kim Soo and Park Ji, 'A Practical Quality Model for Evaluating COTS Components,' Proceedings of International Association of Science and Technology for Development(IASTED) International Conference on Software Engineering(SE'2003), Innsbruck, Austria, 2003
  3. Anriruddha Gokhale, 'Applying Model-Integrated Computing to Component Middleware and Enterprise Applications,' Communication of ACM, Vol.45,No10, October 2002 https://doi.org/10.1145/570907.570933
  4. Heineman and Councill, Component-Based Software Engineering, Addison Wesley, 2001
  5. Crnkovic, I. and Larsson, M., Building Reliable Component-Based Software System, Artech House,Inc., 2002
  6. L. Geyer and M. Becker, 'On the Influence of Variabilities on the Application-Engineering Process of a Product Family,' SPLC2 2002, LNCS 2379, 2002
  7. D'Souza, Wills, Objects, Components, and Frameworks whit UML, Addison Wesley, 1998
  8. Booch and Rumbaugh, The Unified Modeling Language User Guide, Addison Wesley, 1998
  9. Gamma, E, Helm, R, Design Patterns, Addison Wesley, 1995
  10. Carey, Carlson, $SanFrancisco^{TM}$ Design Patterns, Addison Wesley, 2000
  11. J. Chessman and J. Daniels, UML Components, Addison Wesley, 2001
  12. B. Spitznagel and D. Garlan , 'A Compositional Approach for Constructing Connectors,' WICSA'01, 2001 https://doi.org/10.1109/WICSA.2001.948424
  13. Helgo O. and George H, 'Composion and Interfaces within software architecture,' Proceedings of the 1998 conference of the Centre for Advanced Studies on Collaborative research, November 1998
  14. Sun Microsystems Inc., '$JavaBeans^{TM}$Specification Ver 1.01,' Sun Microsystems Inc., August, 1997
  15. N. R. Mehta, N. Medvidovic and S. Phadke, 'Towards a taxonomy of software connectors,' Proceedings of the 22nd international conference on Software engineering, June 2000 https://doi.org/10.1145/337180.337201