skip to main content
10.1145/3442391.3442403acmotherconferencesArticle/Chapter ViewAbstractPublication PagesvamosConference Proceedingsconference-collections
research-article

A Hybrid Feature Location Technique for Re-engineeringSingle Systems into Software Product Lines

Published:09 February 2021Publication History

ABSTRACT

Software product lines (SPLs) are known for improving productivity and reducing time-to-market through the systematic reuse of assets. SPLs are adopted mainly by re-engineering existing system variants. Feature location techniques (FLTs) support the re-engineering process by mapping the variants’ features to their implementation. However, such FLTs do not perform well when applied to single systems. In this way, there is a lack of FLTs to aid the re-engineering process of a single system into an SPL. In this work, we present a hybrid technique that consists of two complementary types of analysis: i) a dynamic analysis by runtime monitoring traces of scenarios in which features of the system are exercised individually, and ii) a static analysis for refining overlapping traces. We evaluate our technique on three subject systems by computing the common metrics used in FL research. We thus computed Precision, Recall, and F-Score at the line- and method-level of source code. In addition to that, one of the systems has a ground truth available, which we also used for comparing results. Results show that our FLT reached an average of 68-78% precision and 72-81% recall on two systems at the line-level, and 67-65% precision and 68-48% recall at the method-level. In these systems, most of the implementation can be covered by the exercise of the features. For the largest system, our technique reached a precision of up to 99% at the line-level, 94% at the method-level, and 44% when comparing to traces. However, due to its size, it was difficult to reach high code coverage during execution, and thus the recall obtained was on average of 28% at the line-level, 25% at the method-level, and 30% when comparing to traces. The main contribution of this work is a hybrid FLT, its publicly available implementation, and a replication package for comparisons and future studies.

References

  1. Ra’Fat AL-Msie’deen, Abdelhak Seriai, Marianne Huchard, Christelle Urtado, Sylvain Vauttier, and Hamzeh Eyal Salman. 2013. Feature Location in a Collection of Software Product Variants Using Formal Concept Analysis. In Safe and Secure Software Reuse, John Favaro and Maurizio Morisio (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 302–307.Google ScholarGoogle Scholar
  2. Giuliano Antoniol and Yann-Gael Gueheneuc. 2006. Feature Identification: An Epidemiological Metaphor. IEEE Transactions on Software Engineering 32, 9 (2006), 627–641. https://doi.org/10.1109/TSE.2006.88Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Wesley K. G. Assunção, Roberto E. Lopez-Herrejon, Lukas Linsbauer, Silvia R. Vergilio, and Alexander Egyed. 2017. Reengineering legacy applications into software product lines: a systematic mapping. Empirical Software Engineering 22, 6 (feb 2017), 2972–3016. https://doi.org/10.1007/s10664-017-9499-zGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  4. Wesley Klewerton Guez Assunçãoand Silvia Regina Vergilio. 2014. Feature Location for Software Product Line Migration: A Mapping Study. In Proceedings of the 18th International Software Product Line Conference: Companion Volume for Workshops, Demonstrations and Tools - Volume 2 (Florence, Italy) (SPLC ’14). Association for Computing Machinery, New York, NY, USA, 52–59. https://doi.org/10.1145/2647908.2655967Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Brendan Cleary, Chris Exton, Jim Buckley, and Michael English. 2009. An Empirical Analysis of Information Retrieval Based Concept Location Techniques in Software Comprehension. Empirical Software Engineering 14, 1 (Feb. 2009), 93–130. https://doi.org/10.1007/s10664-008-9095-3Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. B. Cornelissen, A. Zaidman, A. van Deursen, L. Moonen, and R. Koschke. 2009. A Systematic Survey of Program Comprehension through Dynamic Analysis. IEEE Transactions on Software Engineering 35, 5 (2009), 684–702.Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Marcus Vinicius Couto, Marco Tulio Valente, and Eduardo Figueiredo. 2011. Extracting Software Product Lines: A Case Study Using Conditional Compilation. In 15th European Conference on Software Maintenance and Reengineering, CSMR 2011, 1-4 March 2011, Oldenburg, Germany. IEEE Computer Society, USA, 191–200.Google ScholarGoogle Scholar
  8. Marcus Vinicius Couto, Marco Tulio Valente, and Eduardo Figueiredo. 2011. Extracting Software Product Lines: A Case Study Using Conditional Compilation. In 15th European Conference on Software Maintenance and Reengineering. IEEE Computer Society, USA, 191–200. https://doi.org/10.1109/csmr.2011.25Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Daniel Cruz, Eduardo Figueiredo, and Jabier Martinez. 2019. A Literature Review and Comparison of Three Feature Location Techniques Using ArgoUML-SPL. In Proceedings of the 13th International Workshop on Variability Modelling of Software-Intensive Systems (Leuven, Belgium) (VAMOS ’19). Association for Computing Machinery, New York, NY, USA, Article 16, 10 pages. https://doi.org/10.1145/3302333.3302343Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Sebastian Deorowicz, Agnieszka Debudaj-Grabysz, and Adam Gudyś. 2014. Kalign-LCS — A More Accurate and Faster Variant of Kalign2 Algorithm for the Multiple Sequence Alignment Problem. In Man-Machine Interactions 3, Dr. Aleksandra Gruca, Tadeusz Czachórski, and Stanisław Kozielski (Eds.). Springer International Publishing, Cham, 495–502.Google ScholarGoogle Scholar
  11. Bogdan Dit, Meghan Revelle, Malcom Gethers, and Denys Poshyvanyk. 2013. Feature location in source code: a taxonomy and survey. Journal of Software: Evolution and Process 25, 1 (2013), 53–95. https://doi.org/10.1002/smr.567Google ScholarGoogle ScholarCross RefCross Ref
  12. A.D. Eisenberg and K. De Volder. 2005. Dynamic feature traces: finding features in unfamiliar code. In 21st IEEE International Conference on Software Maintenance (ICSM'05). IEEE, USA, 1–10. https://doi.org/10.1109/icsm.2005.42Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Wolfram Fenske, Thomas Thüm, and Gunter Saake. 2014. A Taxonomy of Software Product Line Reengineering. In Proceedings of the Eighth International Workshop on Variability Modelling of Software-Intensive Systems (Sophia Antipolis, France) (VaMoS ’14). Association for Computing Machinery, New York, NY, USA, Article 4, 8 pages. https://doi.org/10.1145/2556624.2556643Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Stefan Fischer, Lukas Linsbauer, Roberto Erick Lopez-Herrejon, and Alexander Egyed. 2014. Enhancing Clone-and-Own with Systematic Reuse for Developing Software Variants. In 30th IEEE International Conference on Software Maintenance and Evolution, Victoria, BC, Canada, September 29 - October 3, 2014. IEEE Computer Society, USA, 391–400. https://doi.org/10.1109/ICSME.2014.61Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Stefan Fischer, Roberto Erick Lopez-Herrejon, and Alexander Egyed. 2018. Towards a Fault-Detection Benchmark for Evaluating Software Product Line Testing Approaches. In Proceedings of the 33rd Annual ACM Symposium on Applied Computing (Pau, France) (SAC ’18). Association for Computing Machinery, New York, NY, USA, 2034–2041. https://doi.org/10.1145/3167132.3167350Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. E. Hill, L. Pollock, and K. Vijay-Shanker. 2009. Automatically capturing source code context of NL-queries for software maintenance and reuse. In 31st International Conference on Software Engineering (Vancouver, Canada). IEEE Computer Society, USA, 232–242. https://doi.org/10.1109/ICSE.2009.5070524Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Kyo Kang, Sholom Cohen, James Hess, William Novak, and A. Peterson. 1990. Feature-Oriented Domain Analysis (FODA) feasibility study. Technical Report. CMU/SEI-90-TR-21, SEI, CMU. 148pages.Google ScholarGoogle Scholar
  18. Chang Hwan Peter Kim, Eric Bodden, Don Batory, and Sarfraz Khurshid. 2010. Reducing Configurations to Monitor in a Software Product Line. In Runtime Verification, Howard Barringer, Ylies Falcone, Bernd Finkbeiner, Klaus Havelund, Insup Lee, Gordon Pace, Grigore Roşu, Oleg Sokolsky, and Nikolai Tillmann (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 285–299.Google ScholarGoogle Scholar
  19. Jongwook Kim, Don Batory, and Danny Dig. 2017. Refactoring Java Software Product Lines. In Proceedings of the 21st International Systems and Software Product Line Conference - Volume A (Sevilla, Spain) (SPLC ’17). Association for Computing Machinery, New York, NY, USA, 59–68. https://doi.org/10.1145/3106195.3106201Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Rainer Koschke and Jochen Quante. 2005. On Dynamic Feature Location. In Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering (Long Beach, CA, USA) (ASE ’05). Association for Computing Machinery, New York, NY, USA, 86–95. https://doi.org/10.1145/1101908.1101923Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Lukas Linsbauer, Roberto Erick Lopez-Herrejon, and Alexander Egyed. 2017. Variability extraction and modeling for product variants. Softw. Syst. Model. 16, 4 (2017), 1179–1199. https://doi.org/10.1007/s10270-015-0512-yGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  22. Dapeng Liu, Andrian Marcus, Denys Poshyvanyk, and Vaclav Rajlich. 2007. Feature Location via Information Retrieval Based Filtering of a Single Scenario Execution Trace. In Proceedings of the Twenty-Second IEEE/ACM International Conference on Automated Software Engineering (Atlanta, Georgia, USA) (ASE ’07). Association for Computing Machinery, New York, NY, USA, 234–243. https://doi.org/10.1145/1321631.1321667Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Christopher D Manning, Hinrich Schütze, and Prabhakar Raghavan. 2008. Introduction to information retrieval. Cambridge university press, Cambridge, England.Google ScholarGoogle Scholar
  24. Jabier Martinez, Nicolas Ordoñez, Xhevahire Tërnava, Tewfik Ziadi, Jairo Aponte, Eduardo Figueiredo, and Marco Tulio Valente. 2018. Feature Location Benchmark with ArgoUML SPL. In Proceedings of the 22nd International Systems and Software Product Line Conference - Volume 1 (Gothenburg, Sweden) (SPLC ’18). Association for Computing Machinery, New York, NY, USA, 257–263. https://doi.org/10.1145/3233027.3236402Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Jabier Martinez, Daniele Wolfart, Wesley K. G. Assunção, and Eduardo Figueiredo. 2020. Insights on Software Product Line Extraction Processes: ArgoUML to ArgoUML-SPL Revisited. In Proceedings of the 24th ACM Conference on Systems and Software Product Line: Volume A - Volume A (Montreal, Quebec, Canada) (SPLC ’20). Association for Computing Machinery, New York, NY, USA, Article 6, 6 pages. https://doi.org/10.1145/3382025.3414971Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Jabier Martinez, Tewfik Ziadi, Mike Papadakis, Tegawendé F. Bissyandé, Jacques Klein, and Yves le Traon. 2018. Feature location benchmark for extractive software product line adoption research using realistic and synthetic Eclipse variants. Information and Software Technology 104 (2018), 46 – 59. https://doi.org/10.1016/j.infsof.2018.07.005Google ScholarGoogle ScholarCross RefCross Ref
  27. Gabriela Karoline Michelon, Lukas Linsbauer, Wesley K. G. Assunção, and Alexander Egyed. 2019. Comparison-Based Feature Location in ArgoUML Variants. In 23rd International Systems and Software Product Line Conference - Volume A (Paris, France) (SPLC ’19). Association for Computing Machinery, New York, NY, USA, 93–97. https://doi.org/10.1145/3336294.3342360Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Richard Müller and Ulrich Eisenecker. 2019. A Graph-Based Feature Location Approach Using Set Theory. In 23rd International Systems and Software Product Line Conference - Volume A (Paris, France) (SPLC ’19). Association for Computing Machinery, New York, NY, USA, 88–92. https://doi.org/10.1145/3336294.3342358Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Maksym Petrenko, Václav Rajlich, and Radu Vanciu. 2008. Partial Domain Comprehension in Software Evolution and Maintenance. In 16th IEEE International Conference on Program Comprehension(ICPC ’08). IEEE Computer Society, USA, 13–22. https://doi.org/10.1109/ICPC.2008.14Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Denys Poshyvanyk, Yann-Gael Gueheneuc, Andrian Marcus, Giuliano Antoniol, and Vaclav Rajlich. 2007. Feature Location Using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval. IEEE Transactions on Software Engineering 33, 6 (June 2007), 420–432. https://doi.org/10.1109/TSE.2007.1016Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Abdul Razzaq, Asanka Wasala, Chris Exton, and Jim Buckley. 2019. The State of Empirical Evaluation in Static Feature Location. ACM Transactions on Software Engineering and Methodology 28, 1 (Feb. 2019), 1–58. https://doi.org/10.1145/3280988Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. David Shepherd, Zachary P. Fry, Emily Hill, Lori Pollock, and K. Vijay-Shanker. 2007. Using Natural Language Program Analysis to Locate and Understand Action-Oriented Concerns. In Proceedings of the 6th International Conference on Aspect-Oriented Software Development (Vancouver, British Columbia, Canada) (AOSD ’07). Association for Computing Machinery, New York, NY, USA, 212–224. https://doi.org/10.1145/1218563.1218587Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Neil Walkinshaw, Marc Roper, and Murray Wood. 2007. Feature Location and Extraction using Landmarks and Barriers. In 2007 IEEE International Conference on Software Maintenance. IEEE, USA, 54–63. https://doi.org/10.1109/icsm.2007.4362618Google ScholarGoogle ScholarCross RefCross Ref
  34. Norman Wilde and Michael C. Scully. 1995. Software reconnaissance: Mapping program features to code. Journal of Software Maintenance: Research and Practice 7, 1 (Jan. 1995), 49–62. https://doi.org/10.1002/smr.4360070105Google ScholarGoogle ScholarDigital LibraryDigital Library

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Other conferences
    VaMoS '21: Proceedings of the 15th International Working Conference on Variability Modelling of Software-Intensive Systems
    February 2021
    150 pages
    ISBN:9781450388245
    DOI:10.1145/3442391

    Copyright © 2021 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 9 February 2021

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article
    • Research
    • Refereed limited

    Acceptance Rates

    Overall Acceptance Rate66of147submissions,45%

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format .

View HTML Format