DOI QR코드

DOI QR Code

특성 지향의 제품계열공학을 위한 애스팩트 구현 패턴

Aspectual Implementation Patterns for Feature-Oriented Product Line Engineering

  • 이관우 (한성대학교 정보시스템공학과)
  • 발행 : 2009.02.28

초록

특성 지향 제품계열공학은 특성 관점에서 제품계열의 핵심자산을 개발하고 이를 활용하여 제품을 개발하는 접근방법으로서, 이를 위한 첫번째 단계는 하나의 특성을 하나의 모듈화된 단위로 구현하는 것이다. 관점 지향 프로그래밍은 특성 구현의 모듈화를 향상시키기 위한 효과적인 메커니즘을 제공한다. 하지만, 특성이 일반적으로 서로 독립적이지 않기 때문에 어떤 특성 구현 모듈의 변화는 다른 특성 구현 모듈에 변화를 일으키거나 원하지 않는 부작용을 야기시킬 수도 있다. 뿐만 아니라, 하나의 특성이 제품에 결합되는 시점이 컴파일 시점에서부터 로드 시점, 실행 시점에 이르기까지 다양할 수 있으므로, 특성이 언제 제품에 결합하느냐에 따라 다르게 구현되어야 할지도 모른다. 따라서, 본 논문에서는 각 특성 구현 모듈이 다른 모듈과 독립적이 되도록 하기 위해서, 특성 구현 모듈로부터 특성 의존성 및 특성 결합 시점을 효과적으로 분리시킬 수 있는 애스팩트 패턴을 제안한다. 이러한 패턴들은 특성 구현 모듈이 특성의 선택에 따라서 다른 모듈에 영향을 주지 않고 유연하게 합성될 수 있도록 한다. 이와 같은 접근 방법을 예시하고 평가하기 위해 공학용 계산기 제품계열을 사용한다.

Modular implementation of a feature is a first step toward feature-oriented product line engineering, which develops and then utilizes core assets to configure products in terms of features. Aspect-oriented programming provides effective mechanisms for improving the modularity of feature implementations. However, as features in general are not independent of each other, changes in the implementation of one feature may cause changes to or side effects in the implementation of other features. Moreover, since the time at which a feature is incorporated into products, called feature binding time, may be various from compile time through load time to run time, a feature may have to be implemented differently depending on when the feature is bound into a product. To make each feature implementation module as independent as possible, this paper proposes aspectual implementation patterns that can effectively separate feature dependencies as well as feature binding time from feature implementation modules. These patterns enable flexible composition of feature implementation modules without affecting other modules according to feature selection. The approaches are demonstrated and evaluated based on a product line of scientific calculator applications.

키워드

참고문헌

  1. V. Alves, P. Matos Jr., L. Cole, P. Borba, G. Ramalho, “Extracting and Evolving Mobile Games Product Lines,” SPLC 2005, pp.70-81 https://doi.org/10.1007/11554844_8
  2. AspectJ Team, “AspectJ Project,” http://www.eclipse.org/aspectj/
  3. D. Batory, “Feature-Oriented Programming and the AHEAD tool suite,” ICSE 2004, pp.702-703, 2004
  4. V. Chakravarthy, J. Regehr, E. Eide, “Edicts: Implementing Features with Flexible Binding Times”, AOSD'08, pp. 108-119, 2008 https://doi.org/10.1145/1353482.1353496
  5. P. Clements, L. Northrop, Software Product Lines: Practices and Patterns, Addison-Wesley, 2002
  6. K. Czarnecki, U. Eisenecker, Generative Programming: Methods, Tools, and Applications, Addison-Wesley, 2000
  7. I. Godil and H. A. Jacobsen, “Horizontal Decomposition of Prevalyer,” CASCON 2005, pp.83-100
  8. M. L. Griss, “Implementing Product-Line Features by Composing Aspects,” SPLC 2000, pp. 271-288
  9. M. Griss, J. Favaro, M. d'Alessandro, “Integrating Feature Modeling with the RSEB,” ICSR 2009, Victoria, Canada, 1998, pp.76-85
  10. K. C. Kang, S. Cohen, J. Hess, W. Nowak, S. Peterson, “Feature-Oriented Domain Analysis (FODA) Feasibility Study,” Technical Report CMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University, 1990
  11. K.C. Kang, S. Kim, J. Lee, K. Kim, E. Shin, M. Huh, M., “FORM: A Feature-Oriented Reuse Method with Domain-Specific Reference Architectures,” Annals of Software Engineering, 5, 1998, pp.143-168 https://doi.org/10.1023/A:1018980625587
  12. C. Kastner, S. Apel, and D. Batory, “A Case Study Implementing Features Using AspectJ,” SPLC 2007, pp. 223-232 https://doi.org/10.1109/SPLINE.2007.12
  13. G. Kiczales, J Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, “Aspect-Oriented Programming,” ECOOP 1997, 1997
  14. J. Lee and K. C. Kang, “Feature Binding Analysis for Product Line Component Development”, PFE-5, 2003
  15. K. Lee and K. C. Kang, “Feature Dependency Analysis for Product Line Component Design,” Lecture Notes in Computer Science, Vol. LNCS 3107, 2004, pp.69-85
  16. J. Liu, D. Batory, and C. Lengauer, “Feature-Oriented Refactoring of Legacy Applications,” ICSE 2006, pp.112-121 https://doi.org/10.1145/1134285.1134303
  17. Prose, http://prose.ethz.ch/