Skip to main content
Log in

Reengineering legacy applications into software product lines: a systematic mapping

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

Abstract

Software Product Lines (SPLs) are families of systems that share common assets allowing a disciplined reuse. Rarely SPLs start from scratch, instead they usually start from a set of existing systems that undergo a reengineering process. Many approaches to conduct the reengineering process have been proposed and documented in research literature. This scenario is a clear testament to the interest in this research area. We conducted a systematic mapping study to provide an overview of the current research on reengineering of existing systems to SPLs, identify the community activity in regarding of venues and frequency of publications in this field, and point out trends and open issues that could serve as references for future research. This study identified 119 relevant publications. These primary sources were classified in six different dimensions related to reengineering phases, strategies applied, types of systems used in the evaluation, input artefacts, output artefacts, and tool support. The analysis of the results points out the existence of a consolidate community on this topic and a wide range of strategies to deal with different phases and tasks of the reengineering process, besides the availability of some tools. We identify some open issues and areas for future research such as the implementation of automation and tool support, the use of different sources of information, need for improvements in the feature management, the definition of ways to combine different strategies and methods, lack of sophisticated refactoring, need for new metrics and measures and more robust empirical evaluation. Reengineering of existing systems into SPLs is an active research topic with real benefits in practice. This mapping study motivates new research in this field as well as the adoption of systematic reuse in software companies.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11

Similar content being viewed by others

Notes

  1. 1 Alternative term spellings or upper/lower case are not shown in the table and were found not to be relevant for our searches.

  2. 2 Some databases have a limit of character for the search string. In these cases the search query used was: ("feature location" OR "concept location" OR "concern location" OR "feature mining") AND (reengineering OR refactoring OR reconstruction OR migration OR migrating ) AND ("product line" OR "product-line" OR "product family" OR "program family")

References

  • Alves V, Niu N, Alves C, Valença G. (2010) Requirements engineering for software product lines: A systematic literature review. Inf Softw Technol 52(8):806–820. doi:10.1016/j.infsof.2010.03.014

    Article  Google Scholar 

  • Assunção WKG, Vergilio SR (2014) Feature location for software product line migration: A mapping study 18th Software Product Line Conference - 2nd International Workshop on REverse Variability Engineering (REVE). doi:10.1145/2647908.2655967, pp 1–8

    Google Scholar 

  • Bachmann F, Clements P (2005) Variability in software product lines. Tech. Rep. CMU/SEI-2005-TR-012, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA

  • Bakar NH, Kasirun ZM, Salleh N (2015) Feature extraction approaches from natural language requirements for reuse in software product lines: A systematic literature review. J Syst Softw 106:132–149. doi:10.1016/j.jss.2015.05.006

    Article  Google Scholar 

  • Chen L, Babar MA (2010) 14th International Conference Software Product Lines: Going Beyond (SPLC 2010), chap. Variability Management in Software Product Lines: An Investigation of Contemporary Industrial Challenges. Springer Berlin Heidelberg, Berlin, pp 166–180. doi:10.1007/978-3-642-15579-6_12

    Google Scholar 

  • Chen L, Babar MA (2011) A systematic review of evaluation of variability management approaches in software product lines. Inf Softw Technol 53(4):344–362. doi:10.1016/j.infsof.2010.12.006

    Article  Google Scholar 

  • Chikofsky E, Cross J.HI (1990) Reverse engineering and design recovery: a taxonomy. IEEE Softw 7(1):13–17. doi:10.1109/52.43044

    Article  Google Scholar 

  • Clements P, Northrop L (2001) Software Product Lines: Practices and Patterns. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA

  • Cornelissen B, Zaidman A, van Deursen A, Moonen L, Koschke R (2009) A systematic survey of program comprehension through dynamic analysis. IEEE Trans Softw Eng 35(5):684–702. doi:10.1109/TSE.2009.28

  • Demeyer S, Ducasse S, Nierstrasz O (2009) Object-oriented reengineering patterns. Square Bracket associates, Switzerland. Version of 2009-09-28

    MATH  Google Scholar 

  • Dit B, Revelle M, Gethers M, Poshyvanyk D (2013) Feature location in source code: a taxonomy and survey. Journal of Software: Evolution and Process 25 (1):53–95. doi:10.1002/smr.567

    Google Scholar 

  • Dubinsky Y, Rubin J, Berger T, Duszynski S, Becker M, Czarnecki K (2013) An exploratory study of cloning in industrial software product lines 17th European Conference on Software Maintenance and Reengineering (CSMR), pp 25–34. doi:10.1109/CSMR.2013.13

    Google Scholar 

  • Faust D, Verhoef C (2003) Software product line migration and deployment. Software: Practice and Experience 33(10):933–955

    Google Scholar 

  • Fenske W, Thüm T, Saake G (2013) A taxonomy of software product line reengineering 8th International Workshop on Variability Modelling of Software-Intensive Systems, VaMoS 2014, pp 1–8. ACM, New York, NY, USA. doi:10.1145/2556624.2556643

    Google Scholar 

  • Galster M, Weyns D, Tofan D, Michalik B, Avgeriou P (2014) Variability in software systems - systematic literature review. IEEE Trans Softw Eng 40(3):282–306. doi:10.1109/TSE.2013.56

    Article  Google Scholar 

  • Harman M, Jia Y, Krinke J, Langdon WB, Petke J, Zhang Y (2014) Search based software engineering for software product line engineering: A survey and directions for future work 18th International Software Product Line Conference - Volume 1, SPLC 2014, pp 5–18. ACM, New York, NY, USA. doi:10.1145/2648511.2648513

    Google Scholar 

  • Harman M, Mansouri SA, Zhang Y (2009) Search based software engineering: A comprehensive analysis and review of trends techniques and applications. Tech. Rep. Technical Report TR-09-03, Department of Computer Science, King’s College London

  • Heradio R, Perez-Morago H, Fernandez-Amoros D, Cabrerizo FJ, Herrera-Viedma E (2016) A bibliometric analysis of 20 years of research on software product lines. Inf Softw Technol 72:1–15. doi:10.1016/j.infsof.2015.11.004

    Article  Google Scholar 

  • Kang K, Cohen S, Hess J, Novak W, Peterson A (1990) Feature-Oriented Domain Analysis (FODA) Feasibility Study. Tech. Rep. CMU/SEI-90-TR-21, SEI, CMU

  • Koziolek H, Goldschmidt T, Gooijer T, Domis D, Sehestedt S, Gamer T, Aleksy M (2015) Assessing software product line potential: an exploratory industrial case study. doi:10.1007/s10664-014-9358-0

  • Krueger CW (1992) Software reuse. ACM Comput Surv (CSUR) 24(2):131–183. doi:10.1145/130844.130856

    Article  Google Scholar 

  • Krueger CW (2002) Easing the transition to software mass customization Software Product-Family Engineering, pp 282–293. Springer

    Google Scholar 

  • Laguna MA, Crespo Y (2013) A systematic mapping study on software product line evolution: From legacy system reengineering to product line refactoring. Sci Comput Program 78(8):1010–1034. doi:10.1016/j.scico.2012.05.003

    Article  Google Scholar 

  • Linden FJVD, Schmid K, Rommes E (2007) Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering. Springer-Verlag New York, Inc., Secaucus, NJ, USA

  • Lopez-Herrejon R, Linsbauer L, Assunção W.K, Fischer S, Vergilio SR, Egyed A (2015) Genetic improvement for software product lines: An overview and a roadmap 2015 Annual Conference on Genetic and Evolutionary Computation, Genetic Improvement 2015 Workshop, GECCO, pp 823–830. ACM, New York, NY, USA. doi:10.1145/2739482.2768422

    Google Scholar 

  • Lopez-Herrejon R, Linsbauer L, Egyed A (2015) A systematic mapping study of search-based software engineering for software product lines. Inf Softw Technol 61 (0):33–51. doi:10.1016/j.infsof.2015.01.008

    Article  Google Scholar 

  • Lozano A (2011) An overview of techniques for detecting software variability concepts in source code Workshops - Advances in Conceptual Modeling: Recent Developments and New Directions, LNCS, vol. 6999, pp 141–150. Springer Berlin Heidelberg. doi:10.1007/978-3-642-24574-9_19

    Google Scholar 

  • Manning CD, Raghavan P, Schütze H., et al. (2008) Introduction to information retrieval, vol 1, Cambridge University Press

  • Metzger A, Pohl K (2014) Software product line engineering and variability management: Achievements and challenges Future of Software Engineering, FOSE 2014, pp 70–84. ACM, New York, NY, USA. doi:10.1145/2593882.2593888

    Google Scholar 

  • Petersen K, Feldt R, Mujtaba S, Mattsson M (2008) Systematic mapping studies in software engineering. British Computer Society, Swinton, UK, pp 68–77

    Google Scholar 

  • Petersen K, Vakkalanka S, Kuzniarz L (2015) Guidelines for conducting systematic mapping studies in software engineering: An update. Inf Softw Technol 64:1–18. doi:10.1016/j.infsof.2015.03.007

    Article  Google Scholar 

  • Pohl K, Böckle G. (2005) Linden, F.J.v.d.: Software Product Line Engineering: Foundations, Principles and Techniques. Springer-Verlag New York, Inc., Secaucus, NJ, USA

  • Riva C, Del Rosso C (2003) Experiences with software product family evolution Sixth International Workshop on Principles of Software Evolution (IWPSE), pp 161–169. doi:10.1109/IWPSE.2003.1231223

    Google Scholar 

  • Rubin J, Chechik M (2013) A survey of feature location techniques. In: Reinhartz-Berger I., Sturm A., Clark T., Cohen S., Bettin J. (eds) Domain Engineering, pp 29–58. Springer Berlin Heidelberg. doi:10.1007/978-3-642-36654-3_2

    Google Scholar 

  • Svahnberg M, van Gurp J, Bosch J (2005) A taxonomy of variability realization techniques: Research articles. Software - Practice and Experience 35(8):705–754. doi:10.1002/spe.v35:8

  • Tiarks R, Koschke R, Falke R (2011) An extended assessment of type-3 clones as detected by state-of-the-art tools. Softw Qual J 19(2):295–331. doi:10.1007/s11219-010-9115-6

    Article  Google Scholar 

  • Wagner C (2014) Model-Driven Software Migration: A Methodology Reengineering, Recovery and Modernization of Legacy Systems, Springer Vieweg

  • Wichmann BA, Canning AA, Clutterbuck DL, Winsborrow LA, Ward NJ, Marsh DWR (1995) Industrial perspective on static analysis. Softw Eng J 10 (2):69–75

    Article  Google Scholar 

  • Wohlin C (2014) Guidelines for snowballing in systematic literature studies and a replication in software engineering 18th International Conference on Evaluation and Assessment in Software Engineering, EASE’14, pp 38:1–38:10. ACM, New York, NY, USA. doi:10.1145/2601248.2601268

    Google Scholar 

Further Reading

  • Abbasi E, Acher M, Heymans P, Cleve A (2014) Reverse engineering web configurators IEEE Conference on software maintenance, reengineering and reverse engineering (CSMR-WCRE). doi:10.1109/CSMR-WCRE.2014.6747178, pp 264–273

    Google Scholar 

  • Acher M, Cleve A, Collet P, Merle P, Duchien L, Lahire P (2011) Reverse engineering architectural feature models. In: Crnkovic I, Gruhn V, Book M (eds) Software Architecture, Lecture Notes in Computer Science, vol. 6903, pp 220–235. Springer Berlin Heidelberg. doi:10.1007/978-3-642-23798-0_25

    Google Scholar 

  • Acher M, Cleve A, Collet P, Merle P, Duchien L, Lahire P (2013) Extraction and evolution of architectural variability models in plugin-based systems. doi:10.1007/s10270-013-0364-2

  • Acher M, Cleve A, Perrouin G, Heymans P, Vanbeneden C, Collet P, Lahire P (2012) On extracting feature models from product descriptions. In: 6th international workshop on variability modeling of software-intensive systems, vamos. ACM, New York, pp 45–54. doi:10.1145/2110147.2110153

  • AL-Msie’deen R, Seriai A, Huchard M, Urtado C, Vauttier S, Salman H (2013) Feature location in a collection of software product variants using formal concept analysis. In: Favaro J, Morisio M (eds) Safe and Secure Software Reuse, Lecture Notes in Computer Science, vol. 7925, pp 302–307. Springer Berlin Heidelberg. doi:10.1007/978-3-642-38977-1_22

  • Al-msie’deen R, Seriai A, Huchard M, Urtado C, Vauttier S (2013) Mining features from the object-oriented source code of software variants by combining lexical and structural similarity. In: IEEE 14th international conference on information reuse and integration (IRI), pp 586–593. doi:10.1109/IRI.2013.6642522

  • AL-Msie’deen R, Seriai A, Huchard M, Urtado C, Vauttier S, Salman H (2012) An approach to recover feature models from object-oriented source code. Journé,e Lignes de Produits pp 15–26

  • Ali N, Wu W, Antoniol G, Di Penta M, Guéhéneuc Y, Hayes J (2011) Moms: Multi-objective miniaturization of software. In: 27th IEEE international conference on software maintenance (ICSM), pp 153–162

  • Almeida E, Mascena J, Cavalcanti A, Alvaro A, Garcia V, Lemos Meira S, Lucrédio D (2006) The domain analysis concept revisited: A practical approach. In: Morisio M (ed) Reuse of Off-the-Shelf Components, Lecture Notes in Computer Science, vol. 4039, pp. 43–57. Springer Berlin Heidelberg. doi:10.1007/11763864_4

  • Alves V, Matos Pedro J, Cole L, Vasconcelos A, Borba P, Ramalho G (2007) Extracting and evolving code in product lines with aspect-oriented programming. In: Rashid A, Aksit M (eds) Transactions on Aspect-Oriented Software Development IV, Lecture Notes in Computer Science, vol. 4640, pp 117–142 Springer Berlin Heidelberg. doi:10.1007/978-3-540-77042-8_5

  • Alves V, Schwanninger C, Barbosa L, Rashid A, Sawyer P, Rayson P, Pohl C, Rummler A (2008) An exploratory study of information retrieval techniques in domain analysis. In: 12th international software product line conference, SPLC, pp 67–76. doi:10.1109/SPLC.2008.18

  • Anwikar V, Naik R, Contractor A, Makkapati H (2012) Domain-driven technique for functionality identification in source code. SIGSOFT Softw Eng Notes 37 (3):1–8. doi:10.1145/180921.2180923

    Article  Google Scholar 

  • Araújo JA, Goulão M, Moreira A, Simão I, Amaral V, Baniassad E (2013) Advanced modularity for building SPL feature models: a model-driven approach. In: 28th symposium on applied computing, SAC. ACM, New York, 1246–1253. doi:10.1145/2480362.2480596

  • Bagheri E, Ensan F, Gasevic D (2012) Decision support for the software product line domain engineering lifecycle. Int Conf Autom Softw Eng 19(3):335–377. doi:10.1007/s10515-011-0099-7

    Article  Google Scholar 

  • Bayer J, Forster T, Ganesan D, Girard JF, John I, Knodel J, Kolb R, Muthig D (2004) Definition of reference architectures based on existing systems. Tech. Rep. Report No. 034.04/E, Fraunhofer IESE-report No 034.04/E

  • Bécan G. (2013) Reverse engineering feature models in the real. Tech. Rep. dumas-00855005 Centre National de la Recherche Scientifique

  • Bécan G, Acher M, Baudry B, Ben Nasr S (2013) Breathing ontological knowledge into feature model management. Tech. Rep. RT-0441, INRIA - Institut National des Sciences Appliqué,es - Université de Rennes 1

  • Boutkova E, Houdek F (2011) Semi-automatic identification of features in requirement specifications. In: 19th IEEE international requirements engineering conference (RE), pp 313–318. doi:10.1109/RE.2011.6051627

  • Breivold H, Larsson S, Land R (2008) Migrating Industrial tab9 towards Software Product Lines: Experiences and Observations through Case Studies. In: 34th euromicro conference on software engineering and advanced applications (SEAA), pp 232–239. doi:10.1109/SEAA.2008.13

  • Chen K, Zhang W, Zhao H, Mei H (2005) An approach to constructing feature models based on requirements clustering. In: 13th IEEE international requirements engineering conference (RE), pp 31–40. doi:10.1109/RE.2005.9

  • Damaṡeviċius R, Paṡkeviċius P, Karċiauskas E, Marcinkeviċius R (2012) Automatic extraction of features and generation of feature models from java programs. Inform Technol Control 41(4): 376–384

    Google Scholar 

  • Davril JM, Delfosse E, Hariri N, Acher M, Cleland-Huang J, Heymans P (2013) Feature model extraction from large collections of informal product descriptions. In: 9th joint meeting on foundations of software engineering, ESEC/FSE. ACM, New York, pp 290–300. doi:10.1145/2491411.2491455

  • Duszynski S, Knodel J, Becker M (2011) Analyzing the source code of multiple software variants for reuse potential. In: 18th working conference on reverse engineering (WCRE), pp 303–307. doi:10.1109/WCRE.2011.44

  • Eisenbarth T, Koschke R, Simon D (2001) Derivation of feature component maps by means of concept analysis. In: European conference on software maintenance and reengineering (CSMR), pp 176–179. doi:10.1109/.2001.914982

  • Eriksson M, Morast H, Börstler J, Borg K (2005) The pluss toolkit?: Extending telelogic doors and ibm-rational rose to support product line use case modeling. In: 20th IEEE/ACM international conference on automated software engineering, ASE. ACM, New York, pp 300–304. doi:10.1145/1101908.1101955

  • Eyal Salman H, Djamel Seriai A, Dony C, Al-Msie’Deen R (2013) Identifying traceability links between product variants and their features. In: 1st international workshop on reverse variability engineering (REVE). Genova, Italie, pp 17–22

  • Eyal-Salman H, Seriai A, Dony C (2014) Feature location in a collection of product variants: Combining information retrieval and hierarchical clustering. In: 26th international conference on software engineering and knowledge engineering (SEKE)

  • Eyal-Salman H, Seriai A, Dony C (2013a) Feature-to-code traceability in a collection of product variants using formal concept analysis and information retrieval. In: 39th euromicro conference on software engineering and advanced applications (SEAA), pp 1–8

  • Eyal-Salman H, Seriai A, Dony C (2013b) Feature-to-code traceability in a collection of software variants: Combining formal concept analysis and information retrieval. In: IEEE 14th international conference on information reuse and integration (IRI), pp 209–216. doi:10.1109/IRI.2013.6642474

  • Eyal-Salman H, Seriai A, Dony C (2013c) Feature-to-code Traceability in Legacy Software Variants. In: 39th euromicro conference on software engineering and advanced applications (SEAA), pp 57–61. doi:10.1109/SEAA.2013.65

  • Eyal-Salman H, Seriai A, Dony C, Al-msie’deen R (2012) Recovering traceability links between feature models and source code of product variants. In: VARIability for you workshop: Variability modeling made useful for everyone, VARY. ACM, New York, pp 21–25. doi:10.1145/2425415.2425420

  • Falessi D, Cantone G, Canfora G (2010) A comprehensive characterization of NLP techniques for identifying equivalent requirements. In: 2010 ACM-IEEE International symposium on empirical software engineering and measurement, ESEM. ACM, New York, pp 1–10. doi:10.1145/1852786.1852810

  • Faust D, Verhoef C (2003) Software product line migration and deployment. Softw: Pract Experience 33(10):933–955

    Google Scholar 

  • Ferrari A, Spagnolo GO, Dell’Orletta F (2013) Mining commonalities and variabilities from natural language documents. In: 17th international software product line conference, SPLC. ACM, New York, pp 116–120. doi:10.1145/2491627.2491634

  • Fischer S, Linsbauer L, Lopez-Herrejon R, Egyed A (2015) The ECCO tool: Extraction and composition for clone-and-own. In: IEEE/ACM 37th IEEE international conference on software engineering (ICSE), vol. 2, pp 665–668. doi:10.1109/ICSE.2015.218

  • Fischer S, Linsbauer L, Lopez-Herrejon R, Egyed A (2014) Enhancing clone-and-own with systematic reuse for developing software variants. In: IEEE 30th international conference on software maintenance and evolution, ICSME. IEEE Computer Society, Washington, DC, pp 391–400. doi:10.1109/ICSME.2014.61 10.1109/ICSME.2014.61

  • Frenzel P, Koschke R, Breu A, Angstmann K (2007) Extending the reflexion method for consolidating software variants into product lines. In: 14th working conference on reverse engineering (WCRE), pp 160–169. doi:10.1109/WCRE.2007.28

  • Gamez N, Fuentes L (2011) Software product line evolution with cardinality-based feature models. In: Schmid K (ed) Top Productivity through Software Reuse, Lecture Notes in Computer Science, vol. 6727, pp 102–118. Springer Berlin Heidelberg. doi:10.1007/978-3-642-21347-2_9

  • Gamez N, Fuentes L (2013) Architectural evolution of famiware using cardinality-based feature models. Inf Softw Technol 55(3):563–580. doi:10.1016/j.infsof.2012.06.012. Special Issue on Software Reuse and Product Lines

    Article  Google Scholar 

  • Gharsellaoui H, Maazoun J, Bouassida N, Ben Ahmed S, Ben-Abdallah H (2015) A real-time scheduling of reconfigurable os tasks with a bottom-up spl design approach. In: 2015 International conference on evaluation of novel approaches to software engineering (ENASE), pp 169176

  • Guzman E, Maalej W (2014) How do users like this feature? a fine grained sentiment analysis of app reviews. In: 22nd IEEE international requirements engineering conference (RE), pp 153–162. doi:10.1109/RE.2014.6912257

  • Hariri N, Castro-Herrera C, Mirakhorli M, Cleland-Huang J, Mobasher B (2013) Supporting domain analysis through mining and recommending features from online product listings. IEEE Trans Softw Eng 39(12):1736–1752. doi:10.1109/TSE.2013.39

    Article  Google Scholar 

  • Haslinger E, Lopez-Herrejon R, Egyed A (2011) Reverse engineering feature models from programs’ feature sets. In: 18th working conference on reverse engineering (WCRE), pp 308–312. doi:10.1109/WCRE.2011.45

  • Heidenreich F, Kopcsek J, Wende C (2008) Featuremapper: Mapping features to models. Companion of the 30th international conference on software engineering, ICSE companion. ACM, New York, pp 943–944. doi:10.1145/1370175.1370199

  • Kang K, Kim M, Lee J, Kim B (2005) Feature-oriented re-engineering of legacy systems into product line assets - a case study. In: Obbink H, Pohl K (eds) Software Product Lines, Lecture Notes in Computer Science, vol. 3714, pp 45–56. Springer Berlin Heidelberg. doi:10.1007/11554844_6

  • Kelly M, Alexander J, Adams B, Hassan A (2011) Recovering a balanced overview of topics in a software domain. In: 11th IEEE international working conference on source code analysis and manipulation (SCAM), pp 135–144. doi:10.1109/SCAM.2011.23x

  • Klatt B, Krogmann K, Seidl C (2014) Program dependency analysis for consolidating customized product copies. In: 30th IEEE international conference on software maintenance and evolution (ICSME), pp 496–500

  • Klatt B, Küster M, Krogmann K (2013) A graph-based analysis concept to derive a variation point design from product copies. In: International workshop on reverse variability engineering (REVE), pp 1–8

  • Knodel J, Forster T, Girard JF (2005) Comparing design alternatives from field-tested systems to support product line architecture design. In: Ninth european conference on software maintenance and reengineering (CSMR), pp 344–353. 10.1109/CSMR.2005.18

  • Knodel J, John I, Ganesan D, Pinzger M, Usero F, Arciniegas J, Riva C (2005) Asset recovery and their incorporation into product lines. In: 12th working conference on reverse engineering (WCRE), pp 1–10. doi:10.1109/WCRE.2005.8

  • Kolb R, Muthig D, Patzke T, Yamauchi K (2006) Refactoring a legacy component for reuse in a software product line: A case study. J Softw Maint Evol Res Pract 18(2):109–132. doi:10.1002/smr.v18:2

    Article  Google Scholar 

  • Koziolek H, Goldschmidt T, de Gooijer T, Domis D, Sehestedt S (2013) Experiences from identifying software reuse opportunities by domain analysis. In: 17th international software product line conference, SPLC. ACM, New York, pp 208–217. doi:10.1145/2491627.2491641

  • Kulesza U, Alves V, Garcia A, Neto A, Cirilo E, Lucena C, Borba P (2007) Mapping features to aspects: A model-based generative approach. In: Moreira A, Grundy J (eds) Early Aspects: Current Challenges and Future Directions, Lecture Notes in Computer Science, vol. 4765, pp 155–174. Springer Berlin Heidelberg. doi:10.1007/978-3-540-76811-1_9

  • Kumaki K, Tsuchiya R, Washizaki H, Fukazawa Y (2012) Supporting commonality and variability analysis of requirements and structural models. In: 16th international software product line conference - volume 2, SPLC. ACM, New York, pp 115–118. doi:10.1145/2364412.2364431

  • Lago P, Vliet H (2004) Observations from the recovery of a software product family. In: Nord R (ed) Software Product Lines, Lecture Notes in Computer Science, vol. 3154, pp 214–227. Springer Berlin Heidelberg. doi:10.1007/978-3-540-28630-1_13

  • Li S, Chen F, Liang Z, Yang H (2005) Using feature-oriented analysis to recover legacy software design for software evolution. In: International conference on software engineering and knowledge engineering (SEKE), pp 336–341

  • Li Y, Yin J, Shi D, Li Y, Dong J (2007) Software product line oriented feature map. In: Shi Y, Albada G, Dongarra J, Sloot P (eds) International Conference on Computational Science (ICCS), Lecture Notes in Computer Science, vol. 4488, pp 1115–1122. Springer Berlin Heidelberg. doi:10.1007/978-3-540-72586-2_156

  • Linsbauer L, Angerer F, Grünbacher P, Lettner D, Prähofer H, Lopez-Herrejon R, Egyed A (2014) Recovering feature-to-code mappings in mixed-variability software systems. In: IEEE 30th international conference on software maintenance and evolution, ICSME

  • Linsbauer L, Lopez-Herrejon ER, Egyed A (2013) Recovering traceability between features and code in product variants. In: 17th international software product line conference, SPLC. ACM, New York, pp 131–140. doi:10.1145/2491627.2491630

  • Linsbauer L, Lopez-Herrejon R, Egyed A (2014) Feature model synthesis with genetic programming. In: Le Goues C, Yoo S (eds) 6th Symposium on Search-Based Software Engineering (SSBSE), Lecture Notes in Computer Science, vol. 8636, pp 153–167. Springer International Publishing. doi:10.1007/978-3-319-09940-8_11

  • Lohar S, Amornborvornwong S, Zisman A, Cleland-Huang J (2013) Improving trace accuracy through data-driven configuration and composition of tracing features. In: 9th joint meeting on foundations of software engineering, ESEC/FSE. ACM, New York, pp 378–388. doi:10.1145/2491411.2491432

  • Lopez-Herrejon R, Linsbauer L, Galindo JA, Parejo J, Benavides D, Segura S, Egyed A (2015) An assessment of search-based techniques for reverse engineering feature models. J Syst Softw 103:353–369. doi:10.1016/j.jss.2014.10.037

    Article  Google Scholar 

  • Losavio F, Ordaz O, Levy N, Baiotto A (2013) Graph modelling of a refactoring process for product line architecture design. In: 39th latin american computing conference (CLEI), pp 1–12. doi:10.1109/CLEI.2013.6670632

  • Maazoun J, Bouassida N, Ben-Abdallah H (2014) A bottom up spl design method. In: 2nd international conference on model-driven engineering and software development (MODELSWARD), pp 309–316

  • Maâzoun J, Bouassida N, Ben-Abdallah H (2014) Feature model recovery from product variants based on a cloning technique. In: 26th international conference on software engineering and knowledge engineering (SEKE)

  • Maia MDA, Sobreira V, Paixão KR, Amo S, Silva IR (2008) Using a sequence alignment algorithm to identify specific and common code from execution traces. In: 4th international workshop on program comprehension through dynamic analysis (PCODA), pp 6–10

  • Martinez J, Ziadi T, Bissyandé TF, Klein J, Le Traon Y (2015) Bottom-up adoption of software product lines: a generic and extensible approach. In: 19th international conference on software product line, SPLC ACM, New York, pp 101–110. doi:10.1145/2791060.2791086

  • Martinez J, Ziadi T, Klein J, le Traon Y (2014) Identifying and visualising commonality and variability in model variants. In: Cabot J, Rubin J (eds) Modelling Foundations and Applications, Lecture Notes in Computer Science, vol. 8569, pp 117–131. Springer International Publishing. doi:10.1007/978-3-319-09195-2_8

  • Mefteh M, Bouassida N, Ben-Abdallah H (2014) Feature model extraction from documented UML use case diagrams. Ada User J 35(2):107–116

    Google Scholar 

  • Merschen D, Polzer A, Botterweck G, Kowalewski S (2011) Experiences of applying model-based analysis to support the development of automotive software product lines. In: 5th international workshop on variability modelling of software-intensive systems, vamos. ACM, New York, pp 141–150. doi:10.1145/1944892.1944910

  • Mohamed F, Abu-Matar M, Mizouni R, Al-Qutayri M, Al Mahmoud Z (2014) Saas dynamic evolution based on model-driven software product lines. In: 6th international conference on cloud computing technology and science (cloudcom), pp 292–299. doi:10.1109/CloudCom.2014.131

  • Mu Y, Wang Y, Guo J (2009) Extracting software functional requirements from free text documents. In: International conference on information and multimedia technology (ICIMT), pp 194–198. doi:10.1109/ICIMT.2009.47

  • Nie K, Zhang L, Geng Z (2012) Product line variability modeling based on model difference and merge. In: IEEE 36th annual computer software and applications conference workshops (COMPSACW), pp 509–513. doi:10.1109/COMPSACW.2012.95

  • Niu N, Savolainen J, Niu Z, Jin M, Cheng JR (2014) A systems approach to product line requirements reuse. IEEE Syst J 8(3):827–836. doi:10.1109/JSYST.2013.2260092

    Article  Google Scholar 

  • Nöbauer M, Seyff N, Groher I (2014) Inferring variability from customized standard software products. In: 18th international software product line booktitle - volume 1, SPLC. ACM, New York, pp 284–293. doi:10.1145/2648511.2648544

  • Nöbauer M, Seyff N, Groher I (2014) Similarity analysis within product line scoping: An evaluation of a semi-automatic approach. In: Jarke M, Mylopoulos J, Quix C, Rolland C, Manolopoulos Y, Mouratidis H, Horkoff J(eds) Advanced Information Systems Engineering, Lecture Notes in Computer Science, vol. 8484, pp 165–179. Springer International Publishing. doi:10.1007/978-3-319-07881-6_12

  • Noor M, Grünbacher P, Hoyer C (2008) A collaborative method for reuse potential assessment in reengineering-based product line adoption. In: Meyer B, Nawrocki J, Walter B (eds) Balancing Agility and Formalism in Software Engineering, Lecture Notes in Computer Science, vol. 5082, pp 69–83. Springer Berlin Heidelberg. doi:10.1007/978-3-540-85279-7_6

  • Nunes C, Garcia A, Lucena C, Lee J (2012) History-sensitive heuristics for recovery of features in code of evolving program families. In: 16th international software product line conference - volume 1, SPLC. ACM, New York, pp 136–145. doi:10.1145/2362536.2362556

  • Nunes C, Garcia A, Lucena C, Lee J (2013) Heuristic expansion of feature mappings in evolving program families. Software: Practice and Experience pp 1–35. doi:10.1002/spe.2200

  • de Oliveira AL, Ferrari FC, Braga RT, Penteado RA, de Camargo VV (2012) Restructuring frameworks towards framework product lines. In: Latin american workshop on aspect-oriented software development (LA-WASP), pp 1–2

  • Olszak A, Jørgensen BN (2012) Remodularizing java programs for improved locality of feature implementations in source code. Sci Comput Program 77(3):131–151. doi:10.1016/j.scico.2010.10.007

    Article  MATH  Google Scholar 

  • Otsuka J, Kawarabata K, Iwasaki T, Uchiba M, Nakanishi T, Hisazumi K (2011) Small inexpensive core asset construction for large gainful product line development: Developing a communication system firmware product line. In: 15th international software product line conference, volume 2, SPLC. ACM, New York, pp 1–5. doi:10.1145/2019136.2019159

  • Passos L, Czarnecki K, Apel S, Wȧsowski A, Kästner C, Guo J (2013) Feature-oriented software evolution. In: 7th international workshop on variability modelling of software-intensive systems, vamos. ACM, New York, pp 1–8. doi:10.1145/2430502.2430526

  • Peng X, Xing Z, Tan X, Yu Y, Zhao W (2013) Improving feature location using structural similarity and iterative graph mapping. J Syst Softw 86(3):664–676. doi:10.1016/j.jss.2012.10.270

    Article  Google Scholar 

  • Polzer A, Merschen D, Botterweck G, Pleuss A, Thomas J, Hedenetz B, Kowalewski S (2012) Managing complexity and variability of a model-based embedded software product line. Innov Syst Softw Eng 8(1):35–49. doi:10.1007/s11334-011-0174-z

    Article  Google Scholar 

  • Ramos MA, Penteado RA (2008) Embedded software revitalization through component mining and software product line techniques. J Universal Comput Sci 14 (8):1207–1227

    Google Scholar 

  • Romero D, Urli S, Quinton C, Blay-Fornarino M, Collet P, Duchien L, Mosser S (2013) SPLEMMA: A generic framework for controlled-evolution of software product lines. In: 5th international workshop on model-driven approaches in software product line engineering; 4th workshop on scalable modeling techniques for software product lines, MAPLE/SCALE. New York, pp 59–66. doi:10.1145/2499777.2500709

  • Rubin J (2014) Cloned product variants: From ad-hoc to well-managed software reuse. Ph.D. thesis, University of Toronto Graduate Department of Computer Science

  • Rubin J, Chechik M (2010) From products to product lines using model matching and refactoring. In: 2nd international workshop on model-driven approaches in software product line engineering (MAPLE), collocated with the 14th international software product line conference, pp 1–8

  • Rubin J, Chechik M (2012) Combining related products into product lines. In: 15th International Conference on Fundamental Approaches to Software Engineering, FASE, pp 285–300. Springer-Verlag, Berlin, Heidelberg. doi:10.1007/978-3-642-28872-2_20

  • Rubin J, Chechik M (2012) Locating distinguishing features using diff sets. In: 27th IEEE/ACM international conference on automated software engineering, ASE. ACM, New York, pp 242–245. doi:10.1145/2351676.2351712

  • Rubin J, Czarnecki K, Chechik M (2013) Managing cloned variants: a framework and experience. In: 17th international software product line conference, SPLC. ACM, New York, pp 101–110. doi:10.1145/2491627.2491644

  • Rubin J, Czarnecki K, Chechik M (2015) Cloned product variants: from ad-hoc to managed software product lines. Int J Softw Tools Technol Trans 17(5):627–646. doi:10.1007/s10009-014-0347-9

    Article  Google Scholar 

  • Rubin J, Kirshin A, Botterweck G, Chechik M (2012) Managing forked product variants. In: 16th international software product line conference - volume 1, SPLC. ACM, New York, pp 156–160 10.1145/2362536.2362558

  • Ryssel U, Ploennigs J, Kabitzsch K (2011) Extraction of feature models from formal contexts. In: 15th international software product line conference - volume 2, SPLC. ACM, New York, pp 1–8. doi:10.1145/2019136.2019141

  • Sampath P (2013) An elementary theory of product-line variations. Formal Aspects of Computing pp 1–33. doi:10.1007/s00165-013-0276-5

  • Santos A, Gaia F, Figueiredo E, Neto PS, Araújo JA (2013) Test-based SPL extraction: An exploratory study. In: 28th symposium on applied computing, SAC. ACM, New York, pp 1031–1036. doi:10.1145/2480362.2480559

  • Schulze M, Mauersberger J, Beuche D (2013) Functional safety and variability: Can it be brought together? In: 17th international software product line conference, SPLC. ACM, New York, pp 236–243. doi:10.1145/2491627.2491654

  • Segura S, Parejo J, Hierons RM, Benavides D, Ruiz-Cortés A, De andalucía EDLJ (2012) ETHOM: An evolutionary algorithm for optimized feature models generation. Tech. Rep. ISA-2012-TR-01, Applied Software Engineering Research Group, Department of Computing Languages and tab9 University of Sevilla

  • Seidl C, Heidenreich F, Aßmann U (2012) Co-evolution of models and feature mapping in software product lines. In: 16th international software product line conference - volume 1, SPLC. ACM, New York, pp 76–85. doi:10.1145/2362536.2362550

  • Shao J, Wu W, Geng P (2013) An improved approach to the recovery of traceability links between requirement documents and source codes based on latent semantic indexing. In: Murgante B, Misra S, Carlini M, Torre C, Nguyen HQ, Taniar D, Apduhan B, Gervasi O (eds) Computational Science and Its Applications (ICCSA), Lecture Notes in Computer Science, vol. 7975, pp 547–557. Springer Berlin Heidelberg. doi:10.1007/978-3-642-39640-3_40

  • She S (2013) Feature model synthesis. Ph.D. thesis, University of Waterloo Electrical and Computer Engineering Department

  • She S, Lotufo R, Berger T, Wȧsowski A, Czarnecki K (2011) Reverse engineering feature models. 33rd international conference on software engineering, ICSE. ACM, New York, pp 461–470. doi:10.1145/1985793.1985856

  • She S, Ryssel U, Andersen N, Wȧsowski A, Czarnecki K (2014) Efficient synthesis of feature models. Inform Softw Technol 0(0):1–22. doi:10.1016/j.infsof.2014.01.012

    Google Scholar 

  • Stoermer C, O’Brien L (2001) MAP - Mining architectures for product line evaluations. In: Working IEEE/IFIP conference on software architecture (WICSA), pp 35–44. doi:10.1109/WICSA.2001.948405

  • Stuikys V, Valincius K (2011) A domain understanding through context-based feature modelling: a research framework. In: 17th international conference on information and software technologies (ICIST), pp 141–148

  • Tang Y, Leung H (2015) Top-down feature mining framework for software product line. In: 17th international conference on enterprise information systems, pp 71–81. doi:10.5220/0005370300710081

  • Trifu M (2010) Tool-supported identification of functional concerns in object-oriented code. Ph.D. thesis, Karlsruhe Institute of Technology

  • Valinċius K, Ṡtuikys V, Damaṡeviċius R (2013) Understanding of e-commerce is through feature models and their metrics to support re-modularization. International Journal on Computer Science and Information Systems (IADIS) 8(1):47–65

    Google Scholar 

  • Van Der Storm T (2007) Generic feature-based software composition. In: 6th international conference on software composition (SC), SC’07. Springer-Verlag, Berlin, Heidelberg, pp 66–80

  • Weston N, Chitchyan R, Rashid A (2009) A framework for constructing semantically composable feature models from natural language requirements. In: 13th international software product line conference, SPLC. Carnegie Mellon University, Pittsburgh, pp 211–220

  • Xue Y (2012) Reengineering legacy software products into software product line. Ph.D. thesis, National University of Singapore Department of Computer Science

  • Xue Y, Xing Z, Jarzabek S (2010) Understanding feature evolution in a family of product variants. In: 17th working conference on reverse engineering (WCRE), pp 109–118

  • Xue Y, Xing Z, Jarzabek S (2012) Feature location in a collection of product variants. In: 19th working conference on reverse engineering (WCRE), pp 145–154. doi:10.1109/WCRE.2012.24

  • Yang Y, Peng X, Zhao W (2009) Domain feature model recovery from multiple applications using data access semantics and formal concept analysis. In: 16th working conference on reverse engineering (WCRE), pp 215–224. doi:10.1109/WCRE.2009.15

  • Yu Y, Wang H, Yin G, Liu B (2013) Mining and recommending software features across multiple web repositories. ACM, New York, 10.1145/2532443.2532453

  • Zhang G, Shen L, Peng X, Xing Z, Zhao W (2011) Incremental and iterative reengineering towards software product line: an industrial case study. In: 27th IEEE international conference on software maintenance (ICSM), pp 418–427. doi:10.1109/ICSM.2011.6080809

  • Ziadi T, Frias L, da Silva M, Ziane M (2012) Feature identification from the source code of product variants. In: 16th european conference on software maintenance and reengineering (CSMR), pp 417–422. doi:10.1109/CSMR.2012.52

  • Ziadi T, Henard C, Papadakis M, Ziane M, Le Traon Y (2014) Towards a language-independent approach for reverse-engineering of software product lines. In: 29th Symposium On Applied Computing (SAC) pp 1064–1071

Download references

Acknowledgments

This work was supported by the Brazilian Agencies CAPES: 007126/2014-00 and CNPq: 453678/2014-9 and 305358/2012-0, and Austrian Science Fund (FWF): P 25289-N15.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Wesley K. G. Assunção.

Additional information

Communicated by: Per Runeson

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Assunção, W.K.G., Lopez-Herrejon, R.E., Linsbauer, L. et al. Reengineering legacy applications into software product lines: a systematic mapping. Empir Software Eng 22, 2972–3016 (2017). https://doi.org/10.1007/s10664-017-9499-z

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10664-017-9499-z

Keywords

Navigation