DOI QR코드

DOI QR Code

A Feature-Oriented Method for Extracting a Product Line Asset from a Family of Legacy Applications

레거시 어플리케이션 제품군으로부터 제품라인 자산을 추출하는 휘처 기반의 방법

  • 이혜선 (한국전자통신연구원 초연결통신연구소 IoT연구본부) ;
  • 이강복 (한국전자통신연구원 초연결통신연구소 IoT연구본부)
  • Received : 2017.04.11
  • Accepted : 2017.04.29
  • Published : 2017.07.31

Abstract

Clone-and-own reuse is an approach to creating new software variants by copying and modifying existing software products. A family of legacy software products developed by clone-and-own reuse often requires high maintenance cost and tends to be error-prone due to patch-ups without refactoring and structural degradation. To overcome these problems, many organizations that have used clone-and-own reuse now want to migrate their legacy products to software product line (SPL) for more systematic reuse and management of software asset. However, with most of existing methods, variation points are embedded directly into design and code rather than modeled and managed separately; variation points are not created ("engineered") systematically based on a variability model. This approach causes the following problems: it is difficult to understand the relationships between variation points, thus it is hard to maintain such code and the asset tends to become error-prone as it evolves. Also, when SPL evolves, design/code assets tend to be modified directly in an ad-hoc manner rather than engineered systematically with appropriate refactoring. To address these problems, we propose a feature-oriented method for extracting a SPL asset from a family of legacy applications. With the approach, we identify and model variation points and their relationships in a feature model separate from implementation, and then extract and manage a SPL asset from legacy applications based on the feature model. We have applied the method to a family of legacy Notepad++ products and demonstrated the feasibility of the method.

복제 및 소유(Clone-and-own) 재사용은 기존의 소프트웨어 제품을 복사하고 수정하여 새로운 소프트웨어를 개발하는 방법이다. 복제 및 소유 재사용으로 개발된 레거시 소프트웨어 제품군은 일반적으로 리팩토링 없이 패치 업 되고 구조적으로 저하되기 때문에 높은 유지보수 비용을 필요로 하고 오류가 발생하기 쉬운 경향이 있다. 기존에 복제 및 소유 재사용 방법을 사용했던 많은 회사들이 이러한 문제를 해결하고 소프트웨어 자산을 더 체계적으로 재사용하고 관리하기 위하여 레거시 제품들을 소프트웨어 제품라인으로 전환하려고 하고 있다. 하지만 대부분의 기존 방법들은 가변점(Variation points)을 디자인과 코드로부터 분리해서 모델링하고 관리하지 않고 디자인과 코드에 바로 임베드시킨다. 즉, 가변점이 가변성 모델을 기반으로 체계적으로 생성되고 관리되지 않는다. 이러한 기존 방법들은 다음의 문제를 야기한다. 기존 방법에서는 가변점 간 관계를 이해하기가 어렵기 때문에 가변점이 임베드 된 코드를 유지보수하기가 어렵고 코드가 변경 및 진화될 때 오류가 생기기 쉽다. 또한 소프트웨어 제품라인이 진화할 때 디자인/코드 자산이 적합한 리팩토링을 적용하여 체계적으로 변경되는 것이 아니라, 애드 혹(Ad-hoc) 방식으로 직접적으로 변경되는 경향이 있다. 본 논문에서는 이러한 문제를 해결하기 위하여 레거시 어플리케이션 제품군으로부터 소프트웨어 제품라인 자산을 구축하는 휘처 기반의 방법을 제안한다. 제안하는 방법에서는 가변점과 가변점 간 관계를 식별하고 이들을 구현으로부터 분리하여 휘처 모델로 모델링한다. 그리고 휘처 모델을 기반으로 레거시 어플리케이션으로부터 소프트웨어 제품라인 자산을 추출하고 관리한다. 제안하는 방법을 레거시 Notepad++ 제품군에 적용을 하여 방법의 실행가능성을 검증하였다.

Keywords

References

  1. J. Bosch, "Design & Use of Software Architectures," Addison-Wesley, 2000.
  2. A. Maccari, "Experiences in assessing product family software architecture for evolution," in Proceedings of the 24th International Conference on Software Engineering (ICSE), pp.585-592. ACM, 2002.
  3. H. P. Jepsen et al., "Minimally invasive migration to software product lines," in Proceedings of the 11th International Software Product Line Conference (SPLC), pp.203-211, 2007.
  4. K. Yoshimura et al., "Defining a strategy to introduce a software product line using existing embedded systems," in Proceedings of the 6th ACM & IEEE International Conference on Embedded Software, Seoul, Korea, Oct., 22-25, 2006.
  5. K. Yoshimura, "Model-based design of product line components in the automotive domain," in Proceedings of the 12th SPLC, Limerick, Ireland, Sep., 8-12, 2008.
  6. J. Bayer et al., "Transiting legacy assets to a product line architecture," in Proceedings of the 7th European Software Engineering Conference, Held Jointly with the 7th ACM SIGSOFT Symposium on the Foundations of Software Engineering, Toulouse, France, Sep., 1999.
  7. R. Kolb et al., "Refactoring a legacy component for reuse in software product lines: a case study," J. Softw. Maint. Evol.: Res. Pract, Vol.18, No.2, pp.109-132, 2006. https://doi.org/10.1002/smr.329
  8. V. Alves et al., "Extracting and evolving mobile games product lines," in Proceedings of the 9th SPLC, Rennes, France, Sep., 26-29, 2005.
  9. V. Alves et al., "Extracting and evolving code in product lines with aspect-oriented programming," Transactions on AOSD IV (LNCS 4640), pp.117-142, 2007.
  10. V. Alves et al., "From conditional compilation to aspects: a case study in software product lines migration," in Proceedings of the 1st Workshop on Aspect-oriented Product Line Engineering, Portland, Oregon, USA, Oct., 22, 2006.
  11. D. Faust and C. Verhoef, "Software product line migration and deployment," Softw. Pract. Exper, Vol.33, No.10 pp.933-955, 2003. https://doi.org/10.1002/spe.530
  12. A. Mehta and G. T. Heineman, "Evolving legacy system features into fine-grained components," in Proceedings of the 24th ICSE, Orlando, Florida, USA, May, 19-25, 2002.
  13. P. Frenzel et al., "Extending the reflexion method for consolidating software variants into product lines," in Proceedings of the 14th Working Conference on Reverse Engineering (WCRE), Vancouver, BC, Oct., 28-31, 2007.
  14. H. P. Breivold et al., "Migrating industrial systems towards software product lines: experiences and observations through case studies," in Proceedings of the 34th Euromicro Conference on Software Engineering and Advanced Applications, Parma, Italy, Sep., 3-5, 2008.
  15. M. V. Couto et al., "Extracting software product lines: a case study using conditional compilation," in Proceedings of the 15th European Conference on Software Maintenance and Reengineering, Oldenburg, Germany, Mar., 1-4, 2011.
  16. Notepad++ [Internet], http://notepad-plus-plus.org/.
  17. Notepad++ Forum [Internet], http://sourceforge.net/projects/notepad-plus/forums/.
  18. K. C. Kang et al., "Feature-oriented domain analysis (FODA) feasibility study," Technical Report. CMU/SEI-90-TR-21, 1990.
  19. J. Lee et al., "A holistic approach to feature modeling for product line requirements engineering," Requirements Engineering Journal (REJ), Sept., 2013.
  20. R. N. Charette, "This car runs on code," IEEE Spectrum, Feb., 2009.
  21. Eclipse C/C++ Development Tooling (CDT) [Internet], http://eclipse.org/cdt/.
  22. J.-L. Chen et al., "An object-oriented dependency graph for program slicing," in Proceedings of the Technology of Object-Oriented Languages, pp.121-130. IEEE, 1997.
  23. S. She et al., "Reverse engineering feature models," in Proceedings of the 33rd ICSE, Honolulu, HI, USA, May 21-28, 2011.
  24. International Organization for Standardization, "ISO/IEC 9899-1999: Programming Languages-C," 1999.
  25. E. Figueiredo et al., "Evolving software product lines with aspects: An empirical study on design stability," in Proceedings of the 30th ICSE, pp.261-270. ACM Press, 2008.
  26. D. Beuche, "Modeling and building software product lines with pure: variants," in Proceedings of the 16th SPLC, Vol.2, pp.255-255. ACM, 2012.
  27. BigLevel Software, Inc., Austin, TX, USA, "BigLever Software Gears: User's Guide," version 5.5.2 edition, 2008.
  28. K. C. Kang et al., "Re-engineering a credit card authorization system for maintainability and reusability of components - a case study," in Proceedings of the 9th ICSR, Torino, Italy, June, 11-15, 2006.
  29. K. C. Kang et al., "Feature-oriented re-engineering of legacy systems into product line assets - a case study," in Proceedings of the 9th SPLC, Rennes, France, Sept., 26-29, 2005.
  30. Understand - source code analysis and metrics [Internet], http://www.scitools.com/.
  31. J. Kerievsky, "Refactoring to patterns," Addison-Wesley, 2004.
  32. M. Antkiewicz et al., "Fast extraction of high-quality framework-specific models from application code," Autom. Softw. Eng., Vol.16, pp.101-144, 2009. https://doi.org/10.1007/s10515-008-0040-x
  33. M. Antkiewicz, "Framework-specific modeling languages," PhD Thesis, Electrical and Computer Engineering, University of Waterloo, 2008.
  34. Y. Yang et al., "Domain feature model recovery from multiple applications using data access semantics and formal concept analysis," in Proceedings of the 16th WCRE, Lille, France, Oct., 13-16, 2009).
  35. R. Rauf et al., "Logical structure extraction from software requirements documents," in Proceedings of the 19th International Requirements Engineering Conference, pp.101-110, IEEE, 2011.
  36. K. C. Kang et al., "Feature oriented product line engineering," IEEE Software, Vol.19, No.4, pp.58-65, 2002. https://doi.org/10.1109/MS.2002.1020288
  37. J. Liu et al., "Feature oriented refactoring of legacy applications," in Proceedings of the 28th ICSE, Shanghai, China, May, 20-28, 2006.
  38. S. Trujillo et al., "Feature refactoring a multi-representation program into a product line," in Proceedings of the 5th International Conference on Generative Programming and Component Engineering, Portland, Oregon, Oct., 22-26, 2006).
  39. T. K. Satyananda et al., "Identifying traceability between feature model and software architecture in software product line using formal concept analysis," in Proceedings of the International Conference on Computational Science and Its Applications, Kuala Lumpur, Malaysia, Aug., 26-29, 2007.
  40. M. Acher et al., "On extracting feature models from product descriptions," in Proceedings of the 6th International Workshop on Variability Modeling of Software-Intensive Systems, pp.45-54, 2012.
  41. D. M. Le et al., "Validating consistency between a feature model and its implementation," in Proceedings of the International Conference on Software Reuse, pp.1-16, 2013.
  42. S. Nadi et al., "Mining configuration constraints: Static analyses and empirical results," in Proceedings of the 36th ICSE, pp.140-151, 2014.
  43. A. R. Santos et al., "Strategies for consistency checking on software product lines: a mapping study," in Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering, p.5, 2015.
  44. A. Loh and M. Kim, "LSdiff: a program differencing tool to identify systematic structural differences," in Proceedings of the 32nd ICSE, Cape Town, South Africa, May, 2-8, 2010.
  45. M. Kim et al., "Ref-Finder: a refactoring reconstruction tool based on logic query templates," in Proceedings of the 18th ACM SIGSOFT Symposium on the Foundations of Software Engineering, Santa Fe, New Mexico, USA, Nov., 7-11, 2010.
  46. Lattix, Inc, Andover, MA, USA. "The Lattix$^{TM}$ Approach - DSM for Software Architecture," 2004.