Browse > Article
http://dx.doi.org/10.3745/KTSDE.2017.6.7.337

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

Lee, Hyesun (한국전자통신연구원 초연결통신연구소 IoT연구본부)
Lee, Kang Bok (한국전자통신연구원 초연결통신연구소 IoT연구본부)
Publication Information
KIPS Transactions on Software and Data Engineering / v.6, no.7, 2017 , pp. 337-352 More about this Journal
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.
Keywords
Extractive Approach to Software Product Line Engineering; Feature-Orientation; Legacy Applications; Copy-and-Own Reuse;
Citations & Related Records
연도 인용수 순위
  • Reference
1 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.
2 S. She et al., "Reverse engineering feature models," in Proceedings of the 33rd ICSE, Honolulu, HI, USA, May 21-28, 2011.
3 International Organization for Standardization, "ISO/IEC 9899-1999: Programming Languages-C," 1999.
4 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.
5 D. Beuche, "Modeling and building software product lines with pure: variants," in Proceedings of the 16th SPLC, Vol.2, pp.255-255. ACM, 2012.
6 BigLevel Software, Inc., Austin, TX, USA, "BigLever Software Gears: User's Guide," version 5.5.2 edition, 2008.
7 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.
8 Eclipse C/C++ Development Tooling (CDT) [Internet], http://eclipse.org/cdt/.
9 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.
10 Understand - source code analysis and metrics [Internet], http://www.scitools.com/.
11 J. Kerievsky, "Refactoring to patterns," Addison-Wesley, 2004.
12 M. Antkiewicz et al., "Fast extraction of high-quality framework-specific models from application code," Autom. Softw. Eng., Vol.16, pp.101-144, 2009.   DOI
13 M. Antkiewicz, "Framework-specific modeling languages," PhD Thesis, Electrical and Computer Engineering, University of Waterloo, 2008.
14 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).
15 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.
16 K. C. Kang et al., "Feature oriented product line engineering," IEEE Software, Vol.19, No.4, pp.58-65, 2002.   DOI
17 J. Liu et al., "Feature oriented refactoring of legacy applications," in Proceedings of the 28th ICSE, Shanghai, China, May, 20-28, 2006.
18 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).
19 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.
20 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.
21 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.
22 S. Nadi et al., "Mining configuration constraints: Static analyses and empirical results," in Proceedings of the 36th ICSE, pp.140-151, 2014.
23 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.
24 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.
25 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.
26 Lattix, Inc, Andover, MA, USA. "The Lattix$^{TM}$ Approach - DSM for Software Architecture," 2004.
27 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.
28 D. Faust and C. Verhoef, "Software product line migration and deployment," Softw. Pract. Exper, Vol.33, No.10 pp.933-955, 2003.   DOI
29 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.
30 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.
31 Notepad++ Forum [Internet], http://sourceforge.net/projects/notepad-plus/forums/.
32 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.
33 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.
34 Notepad++ [Internet], http://notepad-plus-plus.org/.
35 K. C. Kang et al., "Feature-oriented domain analysis (FODA) feasibility study," Technical Report. CMU/SEI-90-TR-21, 1990.
36 J. Lee et al., "A holistic approach to feature modeling for product line requirements engineering," Requirements Engineering Journal (REJ), Sept., 2013.
37 R. N. Charette, "This car runs on code," IEEE Spectrum, Feb., 2009.
38 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.
39 J. Bosch, "Design & Use of Software Architectures," Addison-Wesley, 2000.
40 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.
41 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.   DOI
42 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.
43 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.
44 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.
45 V. Alves et al., "Extracting and evolving mobile games product lines," in Proceedings of the 9th SPLC, Rennes, France, Sep., 26-29, 2005.
46 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.