ABSTRACT
In this paper, we focus on the problem of feature location for families of related software products realized via code cloning. Locating code that corresponds to features in such families is an important task in many software development activities, such as support for sharing features between different products of the family or refactoring the code into product line representations that eliminate duplications and facilitate reuse. We suggest two heuristics for improving the accuracy of existing feature location techniques when locating distinguishing features – those that are present in one product variant while absent in another. Our heuristics are based on identifying code regions that have a high potential to implement a feature of interest. We refer to these regions as diff sets and compute them by comparing product variants to each other. We exemplify our approach on a small but realistic example and describe initial evaluation results.
- D. Beuche. Transforming Legacy Systems into Software Product Lines. In Proc. of SPLC’11 Tutorial, 2011. Google ScholarDigital Library
- P. C. Clements and L. Northrop. Software Product Lines: Practices and Patterns . SEI Series in Software Engineering. Addison-Wesley, 2001. Google ScholarDigital Library
- B. Dit, M. Revelle, M. Gethers, and D. Poshyvanyk. Feature Location in Source Code: A Taxonomy and Survey. J. of Soft. Maintenance and Evolution , 23(8), 2011.Google Scholar
- N. A. Ernst, S. M. Easterbrook, and J. Mylopoulos. Code Forking in Open-Source Software: a Requirements Perspective. CoRR, abs/1004.2889, 2010.Google Scholar
- B. Fluri, M. Wuersch, M. Pinzger, and H. Gall. Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction. IEEE TSE, 33:725–743, 2007. Google ScholarDigital Library
- P. Frenzel, R. Koschke, A. P. J. Breu, and K. Angstmann. Extending the Reflexion Method for Consolidating Software Variants into Product Lines. In Proc. of WCRE’07, pages 160–169, 2007. Google ScholarDigital Library
- E. Hill, L. Pollock, and K. Vijay-Shanker. Exploring the Neighborhood with Dora to Expedite Software Maintenance. In Proc. of ASE’07, pages 14–23, 2007. Google ScholarDigital Library
- C. Kästner and S. Apel. Integrating Compositional and Annotative Approaches for Product Line Engineering. In Proc. of GPCE Wrksp. on Modul., Comp. and Gen. Tech. for PLE (McGPLE) , pages 35–40, 2008.Google Scholar
- C. Kästner, A. Dreiling, and K. Ostermann. Variability Mining with LEADT. Technical report, Philipps University Marburg, 2011.Google Scholar
- C. W. Krueger. Easing the Transition to Software Mass Customization. In Proc. of 4th Wrksp. on Soft. Product-Family Eng. (PFE) , pages 282–293, 2002. Google ScholarDigital Library
- T. Mende, R. Koschke, and F. Beckwermert. An Evaluation of Code Similarity Identification for the Grow-and-Prune Model. Journal of Software Maintenance and Evolution: Research and Practice , 21(2):143–169, 2009. Google ScholarDigital Library
- V. Rajlich and P. Gosavi. Incremental Change in Object-Oriented Programming. IEEE Software, 21:62–69, 2004. Google ScholarDigital Library
- M. Revelle and D. Poshyvanyk. An Exploratory Study on Assessing Feature Location Techniques. In Proc. of IWPC’09 , pages 218–222, 2009.Google ScholarCross Ref
- M. P. Robillard. Automatic Generation of Suggestions for Program Investigation. In Proc. of ESEC/FSE-13, pages 11–20, 2005. Google ScholarDigital Library
- M. P. Robillard, D. Shepherd, E. Hill, K. Vijay-Shanker, and L. Pollock. An Empirical Study of the Concept Assignment Problem. Technical report, McGill University, 2007.Google Scholar
- J. Rubin and M. Chechik. A Survey of Feature Location Techniques. In I. Reinhartz-Berger et al., editor, Domain Engineering: Product Lines, Conceptual Models, and Languages. Springer, To appear.Google Scholar
- J. Rubin, A. Kirshin, G. Botterweck, and M. Chechik. Managing Forked Product Variants. In Proc. of SPLC’12, 2012. Google ScholarDigital Library
- A. Y. Yao. CVSSearch: Searching through Source Code using CVS Comments. In Proc. of ICSM’01, pages 364–373, 2001. Google ScholarDigital Library
- K. Yoshimura, F. Narisawa, K. Hashimoto, and T. Kikuno. FAVE: Factor Analysis Based Approach for Detecting Product Line Variability from Change History. In Proc. of MSR’08 , pages 11–18, 2008. Google ScholarDigital Library
- T. Zimmermann, P. Weisgerber, S. Diehl, and A. Zeller. Mining Version Histories to Guide Software Changes. In Proc. of ICSE’04 , pages 563–572, 2004. Google ScholarDigital Library
Index Terms
- Locating distinguishing features using diff sets
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 ...
Improving feature location in long-living model-based product families designed with sustainability goals
A feature location approach for long-living software systems is proposed.Feature location is guided by feature description, commonality and modifications.Feature commonality and modifications improve precision results. The benefits of Software Product ...
A Literature Review and Comparison of Three Feature Location Techniques using ArgoUML-SPL
VaMoS '19: Proceedings of the 13th International Workshop on Variability Modelling of Software-Intensive SystemsOver the last decades, the adoption of Software Product Line (SPL) engineering for supporting software reuse has increased. An SPL can be extracted from one single product or from a family of related software products, and feature location strategies ...
Comments