A 2-Dimensional Approach for Analyzing Variability of Domain Core Assets

도메인 핵심자산의 가변성 분석을 위한 2차원적 접근방법

  • 문미경 (부산대학교 컴퓨터및정보통신연구소) ;
  • 채흥석 (부산대학교 컴퓨터공학과) ;
  • 염근혁 (부산대학교 컴퓨터공학과)
  • Published : 2006.06.01

Abstract

Software product line engineering is a method that prepares for the future reuse and supports to seamless reuse in application development process. Commonality and variability play central roles in all product line development processes. Reusable assets will become core assets by explicitly representing C&V. Indeed, the variabilities that art identified at each phase of core assets development have different levels of abstraction. In the past, these variabilities have been handled in an implicit manner and without distinguishing the characteristics of each core assets. In addition, previous approaches have depended on the experience and intuition of a domain expert to recognize commonality and variability. In this paper, we suggest a 2-dimensional analyzing method that analyzes the variabilities of core assets in software product line. In horizontal analysis process, the variation types are analyzed in requirements, architecture, and component that are produced at each phase of development process. In vertical analysis process, variations are analyzed in different abstract levels, in which the region of commonality is identified and the variation points are refined. By this method, the traceability of variations between core assets will be possible and core assets can be reused seamlessly.

소프트웨어 재사용에 대한 활동들을 미리 계획하고 개발 프로세스의 연속적인 부분으로 이루어지도록 지원하는 방법이 소프트웨어 프로덕트 라인 공학이다. 이 방법에서 가장 중요한 것은 관련된 시스템들, 즉 도메인에서 공통성과 가변성(commonality and Variability: C&V)을 분석하는 일이다. 재사용 가능 항목들은 분석된 C&V를 명시적으로 나타냄으로써 프로덕트 라인의 핵심자산이 된다. 이러한 핵심 자산들은 소프트웨어 개발의 각기 다른 단계에서 생산되기 때문에 표현요소들의 추상화 수준이 다르며 이로 인해 각 핵심 자산이 가지고 있는 가변성 또한 각기 다른 수준에서 각기 다른 유형으로 나타나게 된다. 핵심자산의 C&V 분석에 대한 기존 연구들에서는 핵심자산의 구분 없이 일관되게 가변성을 분석하였으며, 공통성과 가변성 식별을 단지 개발자의 직관이나 도메인 전문가의 경험에 의존하고 있었다. 본 논문에서는 소프트웨어 프로덕트 라인에서 핵심자산의 가변성을 분석하기 위하여 수직적 측면과 수평적 측면으로 나누어 접근해가는 2차원적 분석방법을 제안한다. 수평적 접근 방법은 개발 프로세스의 각기 다른 단계에서 산출되는 요구사항, 아키텍처, 컴포넌트의 수준에서 가변성의 유형을 분석하는 것이고, 수직적 접근 방법은 가변성의 상세화 정도에 따라 공통성을 식별하는 수준과 가변점을 상세화하는 수준으로 나누어 분석하는 것이다. 이러한 2차원적 가변성 분석접근 방법은 핵심자산들의 가변성이 서로 연관관계를 가질 수 있도록 해주며, 핵심자산의 재사용 활동이 끊어짐 없이 이루어지도록 한다

Keywords

References

  1. Kang, K., Cohen, S., Hess, J., Novak, W., Peterson, S., 'Feature-Oriented Domain Analysis (FODA) Feasibility Study,' Technical Report CMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University, November 1990
  2. Griss, M., Favaro, J., d'Alessandro., M., 'Integrating Feature Modeling with the RSEB,' In Proceedings of the Fifth International Conference on Software Reuse, Canada, pp.76-85, 1998 https://doi.org/10.1109/ICSR.1998.685732
  3. Chastek, G., Donohoe, P., Kang, K., and Thiel, S., 'Product Line Analysis: A Practical Introdution,' (CMU/SEI-2001-TR-001), Pittsburgh, PA, Software Engineering Institute, Carnegie Mellon University, 2001
  4. Mannion, M., 'Using First-Order Logic for Product Line Model Validation,' In Proceedings of Second Product Line Conference (SPLC2), pp.176-187, 2002
  5. Trigaux, J.C., and Heymans, P., 'Modelling variability requirements in Software Product Lines: A Comparative Survey, Technical Report PLENTY project, Institute Information FUNDP, Namur, Belgium, Nov. 2003
  6. Kuusela, J. and Savolainen, J., 'Requirements Engineering for Product Families,' In Proceedings of the 22nd International Conference on Software Engineering (ICSE'00), Limeric, Ireland, pp.60-68, 2000 https://doi.org/10.1109/ICSE.2000.870397
  7. Thompson, J.M. and Heimdahl, M.P.E., 'Structuring Product Family Requirements for n-Dimensional and Hierarchical Product Lines,' Requirements Engineering, vol. 8 pp,42-54, 2003 https://doi.org/10.1007/s00766-003-0166-0
  8. Kang, K.C., Kim, S., Lee, J., and Kim, K., 'FORM: A Feature-Oriented Reuse Method with Domain Specific Reference Architectures,' Pohang University of Science and Technology (POSTECH), 1998
  9. Rob van Ommering, 'Building Product Populations with Software Components,' In Proceedings of the 24th International conference on Software Engineering (ICSE'02), 2002 https://doi.org/10.1145/581339.581373
  10. Keepence, B. and Mannion, M., 'Using Patterns to Model Variability in Product Families,' IEEE Software, vol. 16, no. 4, pp.102-108, 1999 https://doi.org/10.1109/52.776957
  11. ClauB, M., 'Generic Modeling using UML Extensions for Variability,' OOPSLA 2001, Workshop on Domain Specific Visual Languages, 2001
  12. Webber, D. and Gomaa, H., 'Modeling Variability with the Variation Point Model,' In Proceedings of the 7th International Conference on Software Reuse (ICSR7), pp.109-122, 2002
  13. Bosch, J., Design and Use of Software Architectures, Addison Wesley, 2000
  14. Svahnberg, M. and Bosch, J., 'Evolution in Software Product Lines: Two Cases,' Journal of Software Maintenance: Research and Practice, vol. 1 no. 6 pp.391-422, 1999 https://doi.org/10.1002/(SICI)1096-908X(199911/12)11:6<391::AID-SMR199>3.0.CO;2-8
  15. Atkinson, C., Bayer, J., Bunse, C., etc, Component-Based Product Line Engineering with UML, Addison Wesley, 2001
  16. Cheesman, J. and Daniels, J., UML Components A Simple Process for Specifying Component-Based Software, Addison Wesley, 2001
  17. david M. Weiss and Chi Tau Robert Lai, Software Product-Line Engineering: A Family-Based Software Development Process, Addison-Wesley, 1999
  18. Moon, M.K., Yeom, K.H. and Chae, H.S., 'An Approach to Developing Domain Requirements as a Core Asset Based on Commonality and Variability in a Product Line,' IEEE Transactions on Software Engineering, vol. 31, no. 7, pp.551-569, Jul. 2005 https://doi.org/10.1109/TSE.2005.76