Automating feature model refactoring: A Model transformation approach

Display Omitted Context: Feature model is an appropriate and indispensable tool for modeling similarities and differences among products of the Software Product Line (SPL). It not only exposes the validity of the products' configurations in an SPL but also changes in the course of time to support new requirements of the SPL. Modifications made on the feature model in the course of time raise a number of issues. Useless enlargements of the feature model, the existence of dead features, and violated constraints in the feature model are some of the key problems that make its maintenance difficult.Objective: The initial approach to dealing with the above-mentioned problems and improving maintainability of the feature model is refactoring. Refactoring modifies software artifacts in a way that their externally visible behavior does not change.Method: We introduce a method for defining refactoring rules and executing them on the feature model. We use the ATL model transformation language to define the refactoring rules. Moreover, we provide an Alloy model to check the feature model and the safety of the refactorings that are performed on it.Results: In this research, we propose a safe framework for refactoring a feature model. This framework enables users to perform automatic and semi-automatic refactoring on the feature model.Conclusions: Automated tool support for refactoring is a key issue for adopting approaches such as utilizing feature models and integrating them into the software development process of companies. In this work, we define some of the important refactoring rules on the feature model and provide tools that enable users to add new rules using the ATL M2M language. Our framework assesses the correctness of the refactorings using the Alloy language.

[1]  Krzysztof Czarnecki,et al.  Cool features and tough decisions: a comparison of variability modeling approaches , 2012, VaMoS.

[2]  Thomas Leich,et al.  FeatureIDE: An extensible framework for feature-oriented software development , 2014, Sci. Comput. Program..

[3]  Jack Greenfield,et al.  Software factories: assembling applications with patterns, models, frameworks and tools , 2004, OOPSLA '03.

[4]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[5]  Daniela E. Damian,et al.  Selecting Empirical Methods for Software Engineering Research , 2008, Guide to Advanced Empirical Software Engineering.

[6]  R. Yin Case Study Research: Design and Methods , 1984 .

[7]  Heike Wehrheim,et al.  Alloy as a Refactoring Checker? , 2008, Refine@FM.

[8]  Krzysztof Czarnecki,et al.  Generative Programming: Methods, Techniques, and Applications , 2002, ICSR.

[9]  Pierre-Yves Schobbens,et al.  Feature Diagrams: A Survey and a Formal Semantics , 2006, 14th IEEE International Requirements Engineering Conference (RE'06).

[10]  Michal Antkiewicz,et al.  FeaturePlugin: feature modeling plug-in for Eclipse , 2004, eclipse '04.

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

[12]  Davide Brugali,et al.  An eclipse-based feature diagrams toolchain , 2011 .

[13]  Vytautas Štuikys,et al.  MEASURING COMPLEXITY OF DOMAIN MODELS REPRESENTED BY FEATURE DIAGRAMS , 2015 .

[14]  Thomas Thüm,et al.  Reasoning about edits to feature models , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[15]  Carlos José Pereira de Lucena,et al.  Refactoring product lines , 2006, GPCE '06.

[16]  Don S. Batory,et al.  Feature-oriented programming and the AHEAD tool suite , 2004, Proceedings. 26th International Conference on Software Engineering.

[17]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[18]  Paulo Borba,et al.  Automatically Checking Feature Model Refactorings , 2011, J. Univers. Comput. Sci..

[19]  Krzysztof Czarnecki,et al.  SAT-based analysis of feature models is easy , 2009, SPLC.

[20]  Robert L. Nord,et al.  Technical Debt: From Metaphor to Theory and Practice , 2012, IEEE Software.

[21]  Oscar Díaz,et al.  Feature Oriented Model Driven Development: A Case Study for Portlets , 2007, 29th International Conference on Software Engineering (ICSE'07).

[22]  Christian Wende,et al.  FeatureMapper: mapping features to models , 2008, ICSE Companion '08.

[23]  Stuart Kent,et al.  Model Driven Engineering , 2002, IFM.

[24]  Frank van der Linden,et al.  Software product lines in action , 2007 .

[25]  Frank Budinsky,et al.  Eclipse Modeling Framework , 2003 .

[26]  Frank Budinsky,et al.  EMF: Eclipse Modeling Framework 2.0 , 2009 .

[27]  Ricardo J. Machado,et al.  Automating Mappings between Use Case Diagrams and Feature Models for Software Product Lines , 2007 .

[28]  Daniel Jackson Automating first-order relational logic , 2000, SIGSOFT '00/FSE-8.

[29]  Tom Mens,et al.  A Taxonomy of Model Transformation , 2006, GRaMoT@GPCE.

[30]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[31]  Uwe Aßmann,et al.  Co-evolution of models and feature mapping in software product lines , 2012, SPLC '12.

[32]  Jean Bézivin,et al.  ATL: A model transformation tool , 2008, Sci. Comput. Program..

[33]  Hai H. Wang,et al.  Formal semantics and verification for feature modeling , 2005, 10th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'05).

[34]  Jafar Habibi,et al.  A Feature Model Based Framework for Refactoring Software Product Line Architecture , 2016, Journal of Computer Science and Technology.

[35]  JacksonDaniel Automating first-order relational logic , 2000 .

[36]  Jordi Cabot,et al.  Towards a general composition semantics for rule-based model transformation , 2011, MODELS'11.

[37]  Daniel Jackson,et al.  Alloy: a lightweight object modelling notation , 2002, TSEM.

[38]  Sergio Segura,et al.  BeTTy: benchmarking and testing on the automated analysis of feature models , 2012, VaMoS.

[39]  Paulo Borba,et al.  Algebraic Laws for Feature Models , 2008, J. Univers. Comput. Sci..

[40]  Brian Henderson-Sellers,et al.  Metamodelling for software engineering , 2008 .

[41]  Klaus Schmid,et al.  Software product lines in action - the best industrial practice in product line engineering , 2007 .

[42]  Paulo F. Pires,et al.  Architecting a Model-Driven Aspect-Oriented Product Line for a Digital TV Middleware: A Refactoring Experience , 2010, ECSA.