Documenting the Mined Feature Implementations from the Object-oriented Source Code of a Collection of Software Product Variants

Companies often develop a set of software variants that share some features and differ in other ones to meet specific requirements. To exploit existing software variants and build a Software Product Line (SPL), a Feature Model (FM) of this SPL must be built as a first step. To do so, it is necessary to mine optional and mandatory features in addition to associating the FM with its documentation. In our previous work, we mined a set of feature implementations as identified sets of source code elements. In this paper, we propose a complementary approach, which aims to document the mined feature implementations by giving them names and descriptions, based on the source code elements that form feature implementations and use-case diagrams of software variants. The novelty of our approach is that it exploits commonality and variability across software variants, at feature implementations and use-cases levels, to run Information Retrieval methods in an efficient way. To validate our approach, we applied it on Mobile media and ArgoUML-SPL case studies. The results of this evaluation showed that most of the features have been documented correctly.

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

[2]  Cecília M. F. Rubira,et al.  Components meet aspects: Assessing design stability of a software product line , 2011, Inf. Softw. Technol..

[3]  Marianne Huchard,et al.  Relational concept discovery in structured datasets , 2007, Annals of Mathematics and Artificial Intelligence.

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

[5]  Marco Tulio Valente,et al.  Extracting Software Product Lines: A Case Study Using Conditional Compilation , 2011, 2011 15th European Conference on Software Maintenance and Reengineering.

[6]  Ricardo J. Machado,et al.  Automating Mappings between Use Case Diagrams and Feature Models for Software Product Lines , 2007, 11th International Software Product Line Conference (SPLC 2007).

[7]  Adrian Kuhn,et al.  Automatic labeling of software components and their evolution using log-likelihood ratio of word frequencies in source code , 2009, 2009 6th IEEE International Working Conference on Mining Software Repositories.

[8]  Zhenchang Xing,et al.  Feature Location in a Collection of Product Variants , 2012, 2012 19th Working Conference on Reverse Engineering.

[9]  Dewayne E. Perry,et al.  Recovering and using use-case-diagram-to-source-code traceability links , 2007, ESEC-FSE '07.

[10]  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.