Software Variability Management: An Exploratory Study with Two Feature Modeling Tools

Software Product Line (SPL) is becoming widely adopted in industry due to its capability of minimizing costs and improving quality of software systems through systematic reuse of software artifacts. An SPL is a set of software systems sharing a common, managed set of features that satisfies the specific needs of a particular market segment. A feature represents an increment in functionality relevant to some stakeholders. There are several tools to support variability management by modeling features in SPL. However, it is hard for a developer to choose the most appropriate feature modeling tool due to the several options available. This paper presents the results of an exploratory study aiming to support SPL engineers choosing the feature modeling tool that best fits their needs. This exploratory study compares and analyzes two feature modeling tools, namely FeatureIDE and SPLOT, based on data from 56 participants that used the analyzed tools. In this study, we performed a four-dimension qualitative analysis with respect to common functionalities provided by feature modeling tools: (i) Feature Model Editor, (ii) Automated Analysis of Feature Models, (iii) Product Configuration, and (iv) Tool Notation. The main issues we observed in SPLOT are related to its interface. FeatureIDE, on the other hand, revealed some constraints when creating feature models.

[1]  Don S. Batory,et al.  Feature Models, Grammars, and Propositional Formulas , 2005, SPLC.

[2]  Krzysztof Czarnecki,et al.  Feature and Meta-Models in Clafer: Mixed, Specialized, and Coupled , 2010, SLE.

[3]  RunesonPer,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009 .

[4]  Øystein Haugen,et al.  Product line tool-chain: Variability in critical systems , 2012, 2012 Third International Workshop on Product LinE Approaches in Software Engineering (PLEASE).

[5]  Jocelyn Simmonds,et al.  Analyzing Methodologies and Tools for Specifying Variability in Software Processes , 2011 .

[6]  Valentino Vranic,et al.  Integrating Feature Modeling into UML , 2006, NODe/GSEM.

[7]  Antonio Ruiz Cortés,et al.  Automated Reasoning on Feature Models , 2005, Seminal Contributions to Information Systems Engineering.

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

[9]  Pierre-Yves Schobbens,et al.  Semantics of FODA Feature Diagrams , 2004 .

[10]  Thomas Leich,et al.  FeatureIDE: A tool framework for feature-oriented software development , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[11]  Jocelyn Simmonds,et al.  Modeling Variability in Software Process Models , 2012 .

[12]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[13]  Timothy L. Hinrichs,et al.  SMARTFORM: A Web-based Feature Configuration Tool , 2010, VaMoS.

[14]  Sebastian Erdweg,et al.  Abstract Features in Feature Modeling , 2011, 2011 15th International Software Product Line Conference.

[15]  Krzysztof Czarnecki,et al.  Formalizing cardinality-based feature models and their specialization , 2005, Softw. Process. Improv. Pract..

[16]  Jan Bosch,et al.  On the notion of variability in software product lines , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[17]  Forrest Shull,et al.  Building Knowledge through Families of Experiments , 1999, IEEE Trans. Software Eng..

[18]  Jürgen Börstler,et al.  The PLUSS Approach - Domain Modeling with Features, Use Cases and Use Case Realizations , 2005, SPLC.

[19]  Dragan Gasevic,et al.  Configuring Software Product Line Feature Models Based on Stakeholders' Soft and Hard Requirements , 2010, SPLC.

[20]  Andreas Classen,et al.  Introducing TVL, a Text-based Feature Modelling Language , 2010, VaMoS' 2010.

[21]  João Araújo,et al.  Multi-view Composition Language for Software Product Line Requirements , 2009, SLE.

[22]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[23]  Peter Dolog,et al.  Using UML-based Feature Models and UML Collaboration Diagrams to Information Modelling for Web-Based Applications , 2004, UML.

[24]  Ralf Lämmel,et al.  Techniques for Developing a Product Line of Product Line Tools: A Comparative Study , 2011, 2011 Fifth Brazilian Symposium on Software Components, Architectures and Reuse.

[25]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

[26]  Shari Lawrence Pfleeger,et al.  Preliminary Guidelines for Empirical Research in Software Engineering , 2002, IEEE Trans. Software Eng..

[27]  Cláudio Sant'Anna,et al.  Evolving software product lines with aspects , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[28]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[29]  Jaejoon Lee,et al.  FORM: A feature-;oriented reuse method with domain-;specific reference architectures , 1998, Ann. Softw. Eng..

[30]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[31]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

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

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

[34]  Mikolás Janota Do SAT Solvers Make Good Configurators? , 2008, SPLC.

[35]  Claes Wohlin,et al.  Evaluation of Usage-Based Reading—Conclusions after Three Experiments , 2004, Empirical Software Engineering.

[36]  Martin L. Griss,et al.  Integrating feature modeling with the RSEB , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).