Evaluating the influence of scope on feature location

Abstract Context: Feature Location (FL) is a widespread technique that is used to maintain and evolve a software product. FL is also helpful in reengineering a family of software products into a Software Product Line (SPL). Despite the popularity of FL, there is no study that evaluates the influence of scope (single product or product family) when engineers perform FL. Objective: The goal of this paper is to compare the performance, productivity, and perceived difficulty of manual FL when scope changes from a single product to a product family. Method: We conducted a crossover experiment to compare the performance, productivity, and perceived difficulty of manual FL when scope changes. The experimental objects are extracted from a real-world SPL that uses a Domain-Specific Language to generate the firmware of its products. Results: Performance and productivity decrease significantly when engineers locate features in a product family regardless of their experience. For these variables the impact of the FL Scope is medium–large. On contrast, for perceived difficulty, the magnitude of the difference is moderate and is not significant. Conclusions: While performance and productivity decrease significantly when engineers locate features in a product family, the difficulty they perceive does not predict the significant worsening of the results. Our work also identifies strengths and weaknesses in FL. This can help in developing better FL approaches and test cases for evaluation.

[1]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2012, Springer Berlin Heidelberg.

[2]  Jacob Krüger,et al.  Features and How to Find Them , 2019, Software Engineering for Variability Intensive Systems.

[3]  Roberto Erick Lopez-Herrejon,et al.  Automatic extraction of product line architecture and feature models from UML class diagram variants , 2020, Inf. Softw. Technol..

[4]  Zhenchang Xing,et al.  How developers perform feature location tasks: a human‐centric and process‐oriented exploratory study , 2013, J. Softw. Evol. Process..

[5]  Oscar Pastor,et al.  In search of evidence for model-driven development claims: An experiment on quality, effort, productivity and satisfaction , 2015, Inf. Softw. Technol..

[6]  Jonathan Sillito,et al.  Searching and skimming: An exploratory study , 2009, 2009 IEEE International Conference on Software Maintenance.

[7]  Jaime Font,et al.  Improving feature location in long-living model-based product families designed with sustainability goals , 2017, J. Syst. Softw..

[8]  Gail C. Murphy,et al.  The Structure of Features in Java Code: An Exploratory Investigation , 1999 .

[9]  Oscar Pastor,et al.  Model-driven architecture in practice - a software production environment based on conceptual modeling , 2007 .

[10]  Krzysztof Czarnecki,et al.  A survey of variability modeling in industrial practice , 2013, VaMoS.

[11]  Marsha Chechik,et al.  A Survey of Feature Location Techniques , 2013, Domain Engineering, Product Lines, Languages, and Conceptual Models.

[12]  Jaime Font,et al.  Collaborative feature location in models through automatic query expansion , 2019, Automated Software Engineering.

[13]  Jaime Font,et al.  Feature location in models through a genetic algorithm driven by information retrieval techniques , 2016, MoDELS.

[14]  Brady T. West,et al.  Linear Mixed Models: A Practical Guide Using Statistical Software , 2006 .

[15]  Don S. Batory,et al.  Feature interactions, products, and composition , 2011, GPCE '11.

[16]  Shari Lawrence Pfleeger,et al.  Preliminary Guidelines for Empirical Research in Software Engineering , 2002, IEEE Trans. Software Eng..

[17]  Sebastian Herold,et al.  Manually Locating Features in Industrial Source Code: The Search Actions of Software Nomads , 2015, 2015 IEEE 23rd International Conference on Program Comprehension.

[18]  Lori L. Pollock,et al.  A field study of how developers locate features in source code , 2016, Empirical Software Engineering.

[19]  Norman Wilde,et al.  A comparison of methods for locating features in legacy software , 2003, J. Syst. Softw..

[20]  Dov Dori,et al.  OPM vs. UML--Experimenting with Comprehension and Construction of Web Application Models , 2004, Empirical Software Engineering.

[21]  Vicente Pelechano,et al.  Measures to report the Location Problem of Model Fragment Location , 2018, MoDELS.

[22]  Jose Ignacio Panach,et al.  An empirical study of performance using Clone & Own and Software Product Lines in an industrial context , 2021, Inf. Softw. Technol..

[23]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[24]  Carlos Cetina,et al.  Comparing manual and automated feature location in conceptual models: A Controlled experiment , 2020, Inf. Softw. Technol..

[25]  Jaime Font,et al.  Leveraging Models at Run-Time to Retrieve Information for Feature Location , 2015, Models@run.time.

[26]  Mario Kolberg,et al.  Feature interaction: a critical review and considered forecast , 2003, Comput. Networks.

[27]  Oscar Pastor,et al.  Towards Feature Location in Models through a Learning to Rank Approach , 2017, SPLC.

[28]  Brad A. Myers,et al.  An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks , 2006, IEEE Transactions on Software Engineering.

[29]  Zhenchang Xing,et al.  An exploratory study of feature location process: Distinct phases, recurring patterns, and elementary actions , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).

[30]  Jacob Krüger,et al.  Towards a Better Understanding of Software Features and Their Characteristics: A Case Study of Marlin , 2018, VaMoS.

[31]  Jaime Font,et al.  Achieving Feature Location in Families of Models Through the Use of Search-Based Software Engineering , 2018, IEEE Transactions on Evolutionary Computation.

[32]  Gunter Saake,et al.  Predicting performance via automated feature-interaction detection , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[33]  Daniel Blasco,et al.  An evolutionary approach for generating software models: The case of Kromaia in Game Software Engineering , 2021, J. Syst. Softw..

[34]  Jaime Font,et al.  Fragment retrieval on models for model maintenance: Applying a multi-objective perspective to an industrial case study , 2018, Inf. Softw. Technol..

[35]  Natalia Juristo Juzgado,et al.  Crossover Designs in Software Engineering Experiments: Benefits and Perils , 2016, IEEE Transactions on Software Engineering.

[36]  Stephen V. Stehman,et al.  Selecting and interpreting measures of thematic classification accuracy , 1997 .

[37]  Yann-Gaël Guéhéneuc,et al.  Feature Location Using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval , 2007, IEEE Transactions on Software Engineering.

[38]  Jacques Klein,et al.  Automating the Extraction of Model-Based Software Product Lines from Model Variants (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[39]  Michal Antkiewicz,et al.  Maintaining feature traceability with embedded annotations , 2015, SPLC.

[40]  David Coppit,et al.  Understanding concerns in software: insights gained from two case studies , 2005, 13th International Workshop on Program Comprehension (IWPC'05).