[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
article

Reengineering legacy applications into software product lines: a systematic mapping

Published: 01 December 2017 Publication History

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.

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.
[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), pp 1-8.
[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, PA.
[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.
[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.
[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.
[7]
Chikofsky E, Cross J.HI (1990) Reverse engineering and design recovery: a taxonomy. IEEE Softw 7(1):13- 17.
[8]
Clements P, Northrop L (2001) Software Product Lines: Practices and Patterns. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.
[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.
[10]
Demeyer S, Ducasse S, Nierstrasz O (2009) Object-oriented reengineering patterns. Square Bracket associates, Switzerland. Version of 2009-09-28.
[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.
[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.
[13]
Faust D, Verhoef C (2003) Software product line migration and deployment. Software: Practice and Experience 33(10):933-955.
[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.
[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.
[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.
[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 London.
[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.
[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, CMU.
[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.
[21]
Krueger CW (1992) Software reuse. ACM Comput Surv (CSUR) 24(2):131-183.
[22]
Krueger CW (2002) Easing the transition to software mass customization Software Product-Family Engineering, pp 282-293. Springer.
[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.
[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, USA.
[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.
[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.
[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.
[28]
Manning CD, Raghavan P, Schütze H., et al. (2008) Introduction to information retrieval, vol 1, Cambridge University Press.
[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.
[30]
Petersen K, Feldt R, Mujtaba S, Mattsson M (2008) Systematic mapping studies in software engineering. British Computer Society, Swinton, UK, pp 68-77.
[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.
[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, USA.
[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.
[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.
[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.
[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.
[37]
Wagner C (2014) Model-Driven Software Migration: A Methodology Reengineering, Recovery and Modernization of Legacy Systems, Springer Vieweg.
[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-75.
[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.

Cited By

View all
  • (2024)Towards a Flexible Approach for Variability MiningProceedings of the 28th ACM International Systems and Software Product Line Conference10.1145/3646548.3676543(75-81)Online publication date: 2-Sep-2024
  • (2024)Tracing and Fixing Inconsistencies in Clone-and-Own Tabular Data ModelsProceedings of the 28th ACM International Systems and Software Product Line Conference10.1145/3646548.3672595(191-202)Online publication date: 2-Sep-2024
  • (2024)Not Quite There Yet: Remaining Challenges in Systems and Software Product Line Engineering as Perceived by Industry PractitionersProceedings of the 28th ACM International Systems and Software Product Line Conference10.1145/3646548.3672587(179-190)Online publication date: 2-Sep-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Empirical Software Engineering
Empirical Software Engineering  Volume 22, Issue 6
December 2017
535 pages

Publisher

Kluwer Academic Publishers

United States

Publication History

Published: 01 December 2017

Author Tags

  1. Evolution
  2. Legacy systems
  3. Product family
  4. Reengineering
  5. Systematic reuse

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 21 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Towards a Flexible Approach for Variability MiningProceedings of the 28th ACM International Systems and Software Product Line Conference10.1145/3646548.3676543(75-81)Online publication date: 2-Sep-2024
  • (2024)Tracing and Fixing Inconsistencies in Clone-and-Own Tabular Data ModelsProceedings of the 28th ACM International Systems and Software Product Line Conference10.1145/3646548.3672595(191-202)Online publication date: 2-Sep-2024
  • (2024)Not Quite There Yet: Remaining Challenges in Systems and Software Product Line Engineering as Perceived by Industry PractitionersProceedings of the 28th ACM International Systems and Software Product Line Conference10.1145/3646548.3672587(179-190)Online publication date: 2-Sep-2024
  • (2024)Towards Feature-based ML-enabled Behaviour LocationProceedings of the 18th International Working Conference on Variability Modelling of Software-Intensive Systems10.1145/3634713.3634734(152-154)Online publication date: 7-Feb-2024
  • (2024)Variability debt in opportunistic reuseJournal of Systems and Software10.1016/j.jss.2024.111969210:COnline publication date: 1-Apr-2024
  • (2024)Software product lines and features from the perspective of set theory with an application to feature locationJournal of Systems and Software10.1016/j.jss.2023.111938210:COnline publication date: 1-Apr-2024
  • (2024)Visualization of object-oriented software in a city metaphorJournal of Systems and Software10.1016/j.jss.2023.111876208:COnline publication date: 1-Feb-2024
  • (2024)Leveraging a combination of machine learning and formal concept analysis to locate the implementation of features in software variantsInformation and Software Technology10.1016/j.infsof.2023.107320164:COnline publication date: 10-Jan-2024
  • (2024)VaryMinions: leveraging RNNs to identify variants in variability-intensive systems’ logsEmpirical Software Engineering10.1007/s10664-024-10473-529:4Online publication date: 15-Jun-2024
  • (2024)Towards a More Sustainable Re-engineering of Heterogeneous Distributed Systems Using Cooperating Run-Time MonitorsLeveraging Applications of Formal Methods, Verification and Validation. Software Engineering Methodologies10.1007/978-3-031-75387-9_9(132-152)Online publication date: 27-Oct-2024
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media