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.
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Christopher D Manning, Hinrich Schütze, and Prabhakar Raghavan. 2008. Introduction to information retrieval. Cambridge university press, Cambridge, England.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
Recommendations
Feature location benchmark with argoUML SPL
SPLC '18: Proceedings of the 22nd International Systems and Software Product Line Conference - Volume 1Feature location is a traceability recovery activity to identify the implementation elements associated to a characteristic of a system. Besides its relevance for software maintenance of a single system, feature location in a collection of systems ...
Comparison-Based Feature Location in ArgoUML Variants
SPLC '19: Proceedings of the 23rd International Systems and Software Product Line Conference - Volume AIdentifying and extracting parts of a system's implementation for reuse is an important task for re-engineering system variants into Software Product Lines (SPLs). An SPL is an approach that enables systematic reuse of existing assets across related ...
Identifying Issues and Concerns in Software Reuse in Software Product Lines
ICSR '09: Proceedings of the 11th International Conference on Software Reuse: Formal Foundations of Reuse and Domain EngineeringOne of the reasons for introducing software product lines (SPL) is the reduction of costs through reusing common assets for different products<em>. </em> Developing assets to be reused in different products is often not easy. Increasing complexity due ...
Comments