A Systematic Process for Designing Core Asset in Product Line Engineering

프로덕트라인 공학에서의 체계적인 핵심 자산 설계 프로세스

  • Published : 2006.10.15

Abstract

Product line engineering (PLE) is one of the most recent and emerging reuse approaches in software engineering. Core asset, which is a reusable unit of PLE, is shared by several members in a product line (PL). So, developing a well-defined core asset is a prerequisite to increase productivity and time-to-market. Existing PLE methodologies emphasize the importance of core asset but mainly focus on analyzing core asset. And, several processes for designing core asset do not fully cover all elements of core asset which is from product line architecture (PLA) to decision model and need to augment systematic process, detailed instructions, and templates of artifacts. These problems result in difficulty with designing core asset and applying PLE. In this paper, we present an overall process and templates of artifacts to design core assets. And, we apply proposed process to a case study in order to show its applicability. With the proposed process, detailed instructions, and templates of artifacts, we believe that we can more systematically and more easily design high-quality core assets and we fully cover product line architecture, component, and decision model when designing a core asset.

프로덕트라인 공학은 한 프로덕트라인에 속하는 여러 어플리케이션들이 공유할 수 있는 핵심 자산을 재사용하는 새로운 패러다임으로, 대표적인 소프트웨어 재사용 방법으로 넓게 수용되고 있다. 핵심자산은 프로덕트라인의 여러 멤버에서 재사용될 수 있기 때문에, 공통성과 가변성을 잘 정의하여 높은 재사용성을 가진 핵심 자산을 개발하는 것은 생산성을 향상시켜 고품질의 어플리케이션을 빠른 시간 내에 개발하는데 필수 요소이다. 프로덕트라인 공학을 적용한 기존 방법론에서도 핵심 자산의 중요성을 강조하였지만, 대개 공통성과 가변성을 분석하는데 초점이 맞추어져 있었다. 그리고, 일부 방법론에서는 핵심 자산을 개발하는 프로세스를 제안하고 있지만, 핵심 자산의 모든 구성 요소를 개발하는 체계적인 프로세스, 지침, 산출물 양식이 다소 부족하며, 이는 핵심 자산을 설계하는데 많은 어려움을 초래한다. 본 논문에서는 핵심 자산 설계를 위한 체계적인 프로세스와 기법, 산출물의 템플릿을 제안한다. 그리고, 제안된 프로세스가 실제로 어떻게 적용되는지 검증하기 위한 사례연구를 수행한다. 제안된 프로세스, 지침, 산출물 템플릿을 사용함으로써 보다 재사용성의 이점을 최대한 활용할 수 있는 동시에 고품질 핵심 자산을 체계적이며 효율적으로 개발할 수 있을 것으로 기대된다.

Keywords

References

  1. Clements, P. and Northrop, L., Software Product Lines: Practices and Patterns, Addison Wesley, 2001
  2. Weiss, D. and Lai, C., Software Product-Line Engineering, Addison-Wesley, 1999
  3. Kyo C. Kang, Jaejoon Lee, and Donohoe, P., 'Feature-Oriented Product Line Engineering,' IEEE Software, Vol. 9, No.4, pp. 58-65, Jul./Aug. 2002 https://doi.org/10.1109/MS.2002.1020288
  4. Bayer, J. Flege, O., Knauber, P., Laqua, R., Muthig, D., Schmid, K., Widen, T., and DeBaud, J., 'PuLSE: A Methodology to Develop Software Product Lines,' Proceeding of symposium for Software Reusability '99, ACM, pp. 122-131, 1999 https://doi.org/10.1145/303008.303063
  5. Atkinson, C., et al., Component-based Product Line Engineering with UML, Addison Wesley, 2001
  6. Bass, L., Klein, M., Bachmann, F., 'Quality Attribute Design Primitives and the Attribute Driven Design Method,' Lecture Notes in Computer Science 2290, Proceedings of the PFE-4, pp. 169-186,2002
  7. Bosch, J. Design and Use of Software Architectures, Addison-Wesley, 2000
  8. Matinlassi, M., Niemela, E., and Dobrica, L., Quality-driven architecture design and quality analysis method: A revolutionary initiation approach to a product line architecture, VTT Technical Research Center of Finland, 2002
  9. Sinnema, M, Deelstra, S., Nijhuis, J., Bosch, J., 'COVAMOF: A Framework for Modeling Variability in Software Product Families,' Lecture Notes in Computer Science 3154, Proceedings of the 3rd Software Product Line Conference, pp. 197-213, 2004
  10. Clements, P., et al., Documenting Software Architectures Views and Beyond, Addison-Wesley, 2003
  11. Bass, L., Clements, P., Kazman, R, Software Architecture in Practice, Addison-Wesley, 2003
  12. Clements, P., Kazman, R., and Klein, M., Evaluating Software Architectures, Addison Wesley, 2002
  13. Kim, S., Her, J., and Chang, S., 'A theoretical foundation of variability, in component-based development,' Information and Software Technology, Vol. 47, p.663-673, July, 2005 https://doi.org/10.1016/j.infsof.2004.11.007
  14. Choi, S., Chang, S, and Kim, S., 'A Systematic Methodology for Developing Component Frameworks,' Lecture Notes in Computer Science 2984, Proceedings of the 7th Fundamental Approaches to Software Engineering Conference, pp. 359-373, 2004 https://doi.org/10.1007/978-3-540-24721-0_27
  15. Gomma, H., Designing Software Product Lines with UML from Use Cass to Pattern-Based Software Architectures, Addison-Wesley, 2004