Using similarity metrics for mining variability from software repositories

Much activity within software product line engineering has been concerned with explicitly representing and exploiting commonality and variability at the feature level for the purpose of a particular engineering task e.g. requirements specification, design, coding, verification, product derivation process, but not for comparing how similar products in the product line are with each other. In contrast, a case-based approach to software development is concerned with descriptions and models as a set of software cases stored in a repository for the purpose of searching at a product level, typically as a foundation for new product development. New products are derived by finding the most similar product descriptions in the repository using similarity metrics. The new idea is to use such similarity metrics for mining variability from software repositories. In this sense, software product line engineering could be informed by the case-based approach. This approach requires defining and implementing such similarity metrics based on the representations used for the software cases in such a repository. It provides complementary benefits to the ones given through feature-based representations of variability and may help mining such variability.

[1]  Birger Møller-Pedersen,et al.  Model Comparison to Synthesize a Model-Driven Software Product Line , 2011, 2011 15th International Software Product Line Conference.

[2]  Jane Cleland-Huang,et al.  Supporting Domain Analysis through Mining and Recommending Features from Online Product Listings , 2013, IEEE Transactions on Software Engineering.

[3]  Jane Cleland-Huang,et al.  On-demand feature recommendations derived from mining public product descriptions , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[4]  D. Gentner Structure‐Mapping: A Theoretical Framework for Analogy* , 1983 .

[5]  Hermann Kaindl,et al.  An Approach to Method-Tool Coupling for Software Development , 2010, 2010 Fifth International Conference on Software Engineering Advances.

[6]  Sergio Segura,et al.  Automated analysis of feature models 20 years later: A literature review , 2010, Inf. Syst..

[7]  Zhenchang Xing,et al.  Understanding Feature Evolution in a Family of Product Variants , 2010, 2010 17th Working Conference on Reverse Engineering.

[8]  Hermann Kaindl,et al.  Case-based Reuse with Partial Requirements Specifications , 2010, 2010 18th IEEE International Requirements Engineering Conference.

[9]  Peter E. Hart,et al.  Nearest neighbor pattern classification , 1967, IEEE Trans. Inf. Theory.

[10]  Hermann Kaindl,et al.  Using parameters and discriminants for product line requirements , 2008 .

[11]  Miguel A. Laguna,et al.  A systematic mapping study on software product line evolution: From legacy system reengineering to product line refactoring , 2013, Sci. Comput. Program..

[12]  Alexander Felfernig,et al.  Automated Analysis in Feature Modelling and Product Configuration , 2013, ICSR.

[13]  Yair Wand,et al.  External Variability of Software: Classification and Ontological Foundations , 2011, ER.

[14]  Hermann Kaindl,et al.  On confusion between requirements and their representations , 2010, Requirements Engineering.

[15]  Daniel Bildhauer,et al.  Similarity-driven software reuse , 2009, 2009 ICSE Workshop on Comparison and Versioning of Software Models.

[16]  Jörg Feldhusen,et al.  Enhancement of adaptable product development by computerised comparison of requirement lists , 2012 .

[17]  Alexander Egyed,et al.  Reverse Engineering Feature Models with Evolutionary Algorithms: An Exploratory Study , 2012, SSBSE.