Advertisement

Empirical Software Engineering

, Volume 22, Issue 6, pp 2972–3016 | Cite as

Reengineering legacy applications into software product lines: a systematic mapping

  • Wesley K. G. AssunçãoEmail author
  • Roberto E. Lopez-Herrejon
  • Lukas Linsbauer
  • Silvia R. Vergilio
  • Alexander Egyed
Article

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.

Keywords

Systematic reuse Legacy systems Evolution Reengineering Product family 

Notes

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.

References

  1. 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 CrossRefGoogle Scholar
  2. 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–8Google Scholar
  3. Bachmann F, Clements P (2005) Variability in software product lines. Tech. Rep. CMU/SEI-2005-TR-012, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PAGoogle Scholar
  4. 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 CrossRefGoogle Scholar
  5. 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
  6. 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 CrossRefGoogle Scholar
  7. Chikofsky E, Cross J.HI (1990) Reverse engineering and design recovery: a taxonomy. IEEE Softw 7(1):13–17. doi: 10.1109/52.43044 CrossRefGoogle Scholar
  8. Clements P, Northrop L (2001) Software Product Lines: Practices and Patterns. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USAGoogle Scholar
  9. 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
  10. Demeyer S, Ducasse S, Nierstrasz O (2009) Object-oriented reengineering patterns. Square Bracket associates, Switzerland. Version of 2009-09-28zbMATHGoogle Scholar
  11. 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
  12. 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
  13. Faust D, Verhoef C (2003) Software product line migration and deployment. Software: Practice and Experience 33(10):933–955Google Scholar
  14. 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
  15. 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 CrossRefGoogle Scholar
  16. 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
  17. 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 LondonGoogle Scholar
  18. 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 CrossRefGoogle Scholar
  19. 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, CMUGoogle Scholar
  20. 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
  21. Krueger CW (1992) Software reuse. ACM Comput Surv (CSUR) 24(2):131–183. doi: 10.1145/130844.130856 CrossRefGoogle Scholar
  22. Krueger CW (2002) Easing the transition to software mass customization Software Product-Family Engineering, pp 282–293. SpringerGoogle Scholar
  23. 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 CrossRefGoogle Scholar
  24. 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, USAGoogle Scholar
  25. 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
  26. 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 CrossRefGoogle Scholar
  27. 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
  28. Manning CD, Raghavan P, Schütze H., et al. (2008) Introduction to information retrieval, vol 1, Cambridge University PressGoogle Scholar
  29. 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
  30. Petersen K, Feldt R, Mujtaba S, Mattsson M (2008) Systematic mapping studies in software engineering. British Computer Society, Swinton, UK, pp 68–77Google Scholar
  31. 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 CrossRefGoogle Scholar
  32. 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, USAGoogle Scholar
  33. 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
  34. 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
  35. 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
  36. 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 CrossRefGoogle Scholar
  37. Wagner C (2014) Model-Driven Software Migration: A Methodology Reengineering, Recovery and Modernization of Legacy Systems, Springer ViewegGoogle Scholar
  38. Wichmann BA, Canning AA, Clutterbuck DL, Winsborrow LA, Ward NJ, Marsh DWR (1995) Industrial perspective on static analysis. Softw Eng J 10 (2):69–75CrossRefGoogle Scholar
  39. 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

  1. 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–273Google Scholar
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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–26Google Scholar
  8. 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–162Google Scholar
  9. 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
  10. 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
  11. 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
  12. 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 CrossRefGoogle Scholar
  13. 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
  14. 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 CrossRefGoogle Scholar
  15. 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/EGoogle Scholar
  16. Bécan G. (2013) Reverse engineering feature models in the real. Tech. Rep. dumas-00855005 Centre National de la Recherche ScientifiqueGoogle Scholar
  17. 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 1Google Scholar
  18. 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
  19. 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
  20. 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
  21. 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–384Google Scholar
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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–22Google Scholar
  27. 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)Google Scholar
  28. 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–8Google Scholar
  29. 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
  30. 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
  31. 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
  32. 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
  33. Faust D, Verhoef C (2003) Software product line migration and deployment. Softw: Pract Experience 33(10):933–955Google Scholar
  34. 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
  35. 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
  36. 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
  37. 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
  38. 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
  39. 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 LinesCrossRefGoogle Scholar
  40. 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 169176Google Scholar
  41. 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
  42. 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 CrossRefGoogle Scholar
  43. 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
  44. 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
  45. 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
  46. 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
  47. 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–500Google Scholar
  48. 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–8Google Scholar
  49. 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
  50. 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
  51. 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 CrossRefGoogle Scholar
  52. 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
  53. 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
  54. 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
  55. 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
  56. 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–341Google Scholar
  57. 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
  58. 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, ICSMEGoogle Scholar
  59. 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
  60. 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
  61. 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
  62. 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 CrossRefGoogle Scholar
  63. 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
  64. 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–316Google Scholar
  65. 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)Google Scholar
  66. 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–10Google Scholar
  67. 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
  68. 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
  69. Mefteh M, Bouassida N, Ben-Abdallah H (2014) Feature model extraction from documented UML use case diagrams. Ada User J 35(2):107–116Google Scholar
  70. 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
  71. 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
  72. 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
  73. 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
  74. 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 CrossRefGoogle Scholar
  75. 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
  76. 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
  77. 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
  78. 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
  79. 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
  80. 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–2Google Scholar
  81. 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 CrossRefzbMATHGoogle Scholar
  82. 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
  83. 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
  84. 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 CrossRefGoogle Scholar
  85. 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 CrossRefGoogle Scholar
  86. Ramos MA, Penteado RA (2008) Embedded software revitalization through component mining and software product line techniques. J Universal Comput Sci 14 (8):1207–1227Google Scholar
  87. 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
  88. Rubin J (2014) Cloned product variants: From ad-hoc to well-managed software reuse. Ph.D. thesis, University of Toronto Graduate Department of Computer ScienceGoogle Scholar
  89. 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–8Google Scholar
  90. 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
  91. 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
  92. 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
  93. 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 CrossRefGoogle Scholar
  94. 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
  95. 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
  96. Sampath P (2013) An elementary theory of product-line variations. Formal Aspects of Computing pp 1–33. doi: 10.1007/s00165-013-0276-5
  97. 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
  98. 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
  99. 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 SevillaGoogle Scholar
  100. 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
  101. 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
  102. She S (2013) Feature model synthesis. Ph.D. thesis, University of Waterloo Electrical and Computer Engineering DepartmentGoogle Scholar
  103. 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
  104. 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
  105. 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
  106. 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–148Google Scholar
  107. 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
  108. Trifu M (2010) Tool-supported identification of functional concerns in object-oriented code. Ph.D. thesis, Karlsruhe Institute of TechnologyGoogle Scholar
  109. 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–65Google Scholar
  110. 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–80Google Scholar
  111. 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–220Google Scholar
  112. Xue Y (2012) Reengineering legacy software products into software product line. Ph.D. thesis, National University of Singapore Department of Computer ScienceGoogle Scholar
  113. 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–118Google Scholar
  114. 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
  115. 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
  116. 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
  117. 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
  118. 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
  119. 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–1071Google Scholar

Copyright information

© Springer Science+Business Media New York 2017

Authors and Affiliations

  • Wesley K. G. Assunção
    • 1
    • 2
    Email author
  • Roberto E. Lopez-Herrejon
    • 3
  • Lukas Linsbauer
    • 4
  • Silvia R. Vergilio
    • 1
  • Alexander Egyed
    • 4
  1. 1.DInfFederal University of Paraná (UFPR)CuritibaBrazil
  2. 2.COTSIFederal University of Technology - Paraná (UTFPR)ToledoBrazil
  3. 3.Department of Software Engineering and ITÉcole de Technologie Supérieure, (ÉTS)MontrealCanada
  4. 4.ISSEJohannes Kepler University Linz (JKU)LinzAustria

Personalised recommendations