Mining features from the object-oriented source code of software variants by combining lexical and structural similarity

Migrating software product variants which are deemed similar into a product line is a challenging task with main impact in software reengineering. To exploit existing software variants to build a software product line (SPL), the first step is to mine the feature model of this SPL which involves extracting common and optional features. Thus, we propose, in this paper, a new approach to mine features from the object-oriented source code of software variants by using lexical and structural similarity. To validate our approach, we applied it on ArgoUML, Health Watcher and Mobile Media software. The results of this evaluation showed that most of the features were identified1.

[1]  Bernhard Ganter,et al.  Formal Concept Analysis: Mathematical Foundations , 1998 .

[2]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[3]  Andrian Marcus,et al.  Recovering documentation-to-source-code traceability links using latent semantic indexing , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[4]  Yiming Yang,et al.  Domain Feature Model Recovery from Multiple Applications Using Data Access Semantics and Formal Concept Analysis , 2009, 2009 16th Working Conference on Reverse Engineering.

[5]  Collin McMillan,et al.  Combining textual and structural analysis of software artifacts for traceability link recovery , 2009, 2009 ICSE Workshop on Traceability in Emerging Forms of Software Engineering.

[6]  Abdelhak-Djamel Seriai,et al.  Component-Based Architecture Recovery from Object Oriented Systems via Relational Concept Analysis , 2010, CLA.

[7]  Jens Knodel,et al.  Analyzing the Source Code of Multiple Software Variants for Reuse Potential , 2011, 2011 18th Working Conference on Reverse Engineering.

[8]  Zhenchang Xing,et al.  Concern Localization using Information Retrieval: An Empirical Study on Linux Kernel , 2011, 2011 18th Working Conference on Reverse Engineering.

[9]  Marsha Chechik,et al.  Locating distinguishing features using diff sets , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[10]  Tewfik Ziadi,et al.  Feature Identification from the Source Code of Product Variants , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.

[11]  A. Gopal COMPONENT-BASED ARCHITECTURE RECOVERY FROM OBJECT ORIENTED SYSTEMS USING EXISTING DEPENDENCIES AMONG CLASSES , 2012 .

[12]  David Lo,et al.  Empirical Evaluation of Bug Linking , 2013, 2013 17th European Conference on Software Maintenance and Reengineering.

[13]  Abdelhak-Djamel Seriai,et al.  Mining Features from the Object-Oriented Source Code of a Collection of Software Variants Using Formal Concept Analysis and Latent Semantic Indexing , 2013, SEKE.

[14]  Abdelhak-Djamel Seriai,et al.  Feature Location in a Collection of Software Product Variants Using Formal Concept Analysis , 2013, ICSR.