Techniques for Designing Logic and Workflow Variability in Software Component Development

소프트웨어 컴포넌트 개발을 위한 논리 및 워크플로우 가변성 설계 기법

  • Published : 2004.08.01

Abstract

A Software Component is a module that is reused among a lot of projects, systems, and companies rather than a single application. Components can be reused in various systems if they provide not only the common functionalities required in many applications but also the diverse aspects to be customized for being suitable for customers' demands. From the development phase, components should be designed and developed considering the variable aspects they have for convenient customization. Easily customized components can be frequently reused in lots of applications. In the literature, there are some modeling and customizing techniques. But they suggested only conceptual or basic methods based on Object-Oriented. And the practical instructions for reusing component were not provided sufficiently. Moreover, there are few techniques that consider the proper variability types components have. Thus, those techniques are not appropriate for applying to black box component completely developed and released. In this paper, we classify variabilities that components have in functional aspect into two categories. The one is logic variability, and the other is workflow variability. For each classified variability, we propose the three kind of modeling techniques, which are selection, plug in and externalization. Also detailed instructions for practical design and application are provided.

소프트웨어 컴포넌트는 단일 시스템에서 사용하기보다는 다수의 시스템 혹은 기업, 프로젝트간에 재사용하기 위한 소프트웨어 모듈이다. 컴포넌트가 다양한 시스템에서 재사용되기 위해서는 여러 시스템에서 요구되는 공통적인 기능을 제공하는 것뿐만이 아니라 업무상에서 나타나는 다양한 가변적 측면들이 고려되어 고객의 요구에 맞도록 커스터마이즈 될 수 있어야 한다. 사용자가 컴포넌트를 쉽게 사용하기 위해서는 개발 단계에서부터 가변적인 측면이 고려된 컴포넌트가 설계되어 구현되어야 한다. 가변성을 고려하여 쉽게 커스터마이즈 될 수 있는 컴포넌트는 여러 어플리케이션에서 높은 재사용성을 가지게 될 것이다. 기존에 제시된 커스터마이즈 기법들은 소프트웨어가 가지는 가변적인 요소를 어떻게 설계할지에 대해 객체 지향에 기반하여 개념적인 방법만을 제시하고 있으며, 컴포넌트에 적합한 가변성을 고려하고 있는 기법은 드문 실정이다. 따라서 개발이 완료되어 배포된 블랙 박스 형태의 컴포넌트를 커스터마이즈 하기에는 적합하지 않다. 본 논문에서는 컴포넌트가 가지는 기능적인 측면에서의 가변성을 논리와 워크플로우 두 가지로 분류하여 각각의 가변성을 설계하기 위한 선택형, 플러그인, 외부화 세 가지 기법들을 제시한다. 또한 실용적으로 기법들을 적용하기 위해 상세한 설계 지침과 적용 지침들도 제시한다.

Keywords

References

  1. Heineman, G. T. and Council, W. T., Component-based Software Engineering, Addison Wesley, 2001
  2. Atkinson, C., Bayer, J., Bunse, C., Kamsties, E., Laitenberger, O., Laqua, R., Muthig, D., Paech, B., Wust, J., Zettel, J., Component-based Product Line Engineering with UML, Addison Wesley, 2001
  3. D'Souza D. and Wills A., Objects, Components, and Frameworks with UML, Addison Wesley, 1999
  4. Keepence, B. jand Mannion, M., 'Using patterns to model variability in product families,' IEEE Software, Volume: 16 Issue: 4, pp.102-108, July-Aag. 1999 https://doi.org/10.1109/52.776957
  5. 유영란, 박동혁, 김수동, 'COM 컴포넌트의 다양성(Variability) 구현 기법', 한국정보과학회 소프트웨어 공학지, Vol. 27, No. 3, pp.227-240, 2000년3월
  6. OMG, 'CORBA Components,' Version 3.0, Object Management Group, June, 2002, http://www.omg.org
  7. Van Ommering, R., 'The Koala Component Model,' Building Reliable Component-Based Software Systems, Artech House, pp. 223-236, 2002
  8. Geyer, L., Becker, M., 'On the Influence of Variabilities on the Application Engineering Process of a Product Family,' SPLC 2, San Diego, CA, USA, August 19-22, 2002
  9. Becker, M., Geyer, L.,Gilbert, A., and Becker, K., 'Comprehensive Variability Modelling to Facilitate Efficient Variability Treatment,' PFE-4 2001, LNCS 2290, pp. 294-303, 2002
  10. Gacek, C. and Anastasopoules, M., 'Implementing Product Line Variabilities,' ACM SIGSOFT Software Engineering Notes, Proceedings of the 2001 symposium on Software reusability: putting software reuse in context, Volume 26 Issue 3, May 2001 https://doi.org/10.1145/379377.375269
  11. Sharp, D.C., 'Exploiting object technology to support product variability,' IEEE Proceedings, Oct. 1999 https://doi.org/10.1109/DASC.1999.863671
  12. Bachmann, F. and Bass L., 'Managing variability in software architectures,' ACM SIGSOFT Software Engineering Notes, Proceedings of the 2001 symposium on Software reusability: putting software reuse in context, Volume 26 Issue 3, May, 2001 https://doi.org/10.1145/379377.375274
  13. 소동섭, 신석규, 김수동, '컴포넌트 가변성 유형 및 Scope에 대한 정형적 모델', 한국정보과학회논문지 소프트웨어 및 응용, Vol 30, No. 05, pp. 414-429, 2003년 6월
  14. Takeshi Inoue, 'From Class Libraries to Component-Based Development,' ICSE Workshop on Component-Based Software Engineering, Apr. 1998
  15. Sun Microsystems, Enterprise JavaBeans Specification Version 2.1, http://java.sun.com/products/ejb/docs.html, Sun, Jun. 2002
  16. Heineman, G. t., 'An Evaluation of Component Adaptation Techniques,' 2nd Annual Workshop on Component-Based Software Engineering, May 17-18 1999