Software Product Line Engineering: A Practical Experience

The lack of mature tool support is one of the main reasons that make the industry to be reluctant to adopt Software Product Line (SPL) approaches. A number of systematic literature reviews exist that identify the main characteristics offered by existing tools and the SPL phases in which they can be applied. However, these reviews do not really help to understand if those tools are offering what is really needed to apply SPLs to complex projects. These studies are mainly based on information extracted from the tool documentation or published papers. In this paper, we follow a different approach, in which we firstly identify those characteristics that are currently essential for the development of an SPL, and secondly analyze whether the tools provide or not support for those characteristics. We focus on those tools that satisfy certain selection criteria (e.g., they can be downloaded and are ready to be used). The paper presents a state of practice with the availability and usability of the existing tools for SPL, and defines different roadmaps that allow carrying out a complete SPL process with the existing tool support.

[1]  Silvio Romero de Lemos Meira,et al.  Software product lines adoption in small organizations , 2017, J. Syst. Softw..

[2]  Antonio Ruiz Cortés,et al.  Article in Press G Model the Journal of Systems and Software an Overview of Dynamic Software Product Line Architectures and Techniques: Observations from Research and Industry , 2022 .

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

[4]  Charles W. Krueger,et al.  Point - Counterpoint: Being Proactive Pays Off - Eliminating the Adoption , 2002, IEEE Softw..

[5]  Sebastian Krieter,et al.  FeatureIDE: Empowering Third-Party Developers , 2017, SPLC.

[6]  Danilo Beuche Using pure::variants across the product line lifecycle , 2017, SPLC.

[7]  Charles W. Krueger,et al.  Feature-Based Systems and Software Product Line Engineering with Gears from BigLever , 2019, SPLC.

[8]  Birger Møller-Pedersen,et al.  CVL Tool - Modeling Variability in SPLs , 2010, SPLC Workshops.

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

[10]  Uwe Ryssel,et al.  Aligning Coevolving Artifacts Between Software Product Lines and Products , 2016, VaMoS.

[11]  Lidia Fuentes,et al.  An automatic process for weaving functional quality attributes using a software product line approach , 2016, J. Syst. Softw..

[12]  Umut Oztok,et al.  A Top-Down Compiler for Sentential Decision Diagrams , 2015, IJCAI.

[13]  Pierre-Yves Schobbens,et al.  Beyond Boolean product-line model checking: Dealing with feature attributes and multi-features , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[14]  André L. M. Santos,et al.  Special section on the Brazilian Symposium on Programming Languages , 2013, Sci. Comput. Program..

[15]  Eduardo Figueiredo,et al.  A Systematic Literature Review of Software Product Line Management Tools , 2015, ICSR.

[16]  Felicita Di Giandomenico,et al.  FMCAT: Supporting Dynamic Service-based Product Lines , 2017, SPLC.

[17]  Tomi Männistö,et al.  Software product lines and variability modeling: A tertiary study , 2019, J. Syst. Softw..

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

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

[20]  Yuqing Lin,et al.  Quality attribute modeling and quality aware product configuration in software product lines , 2013, Software Quality Journal.

[21]  Lidia Fuentes,et al.  Context-aware energy-efficient applications for cyber-physical systems , 2019, Ad Hoc Networks.

[22]  Donald D. Cowan,et al.  S.P.L.O.T.: software product lines online tools , 2009, OOPSLA Companion.

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

[24]  Gunter Saake,et al.  Feature-Oriented Software Product Lines , 2013, Springer Berlin Heidelberg.

[25]  Birger Møller-Pedersen,et al.  Adding Standardized Variability to Domain Specific Languages , 2008, 2008 12th International Software Product Line Conference.

[26]  Javad Ghofrani,et al.  ProductlinRE: online management tool for requirements engineering of software product lines , 2018, SPLC.

[27]  Charles W. Krueger,et al.  Feature-based systems and software product line engineering with gears from BigLever , 2018, SPLC.

[28]  Alexandr Murashkin,et al.  Clafer tools for product line engineering , 2013, SPLC '13 Workshops.

[29]  Sven Apel,et al.  Language-Independent and Automated Software Composition: The FeatureHouse Experience , 2013, IEEE Transactions on Software Engineering.

[30]  Gunter Saake,et al.  A survey on scalability and performance concerns in extended product lines configuration , 2017, VaMoS.

[31]  Sven Apel,et al.  Preprocessor-based variability in open-source and industrial software systems: An empirical study , 2016, Empirical Software Engineering.

[32]  Lidia Fuentes,et al.  Extending the Common Variability Language (CVL) Engine: A practical tool , 2017, SPLC.

[33]  Julio Cesar Sampaio do Prado Leite,et al.  On Non-Functional Requirements in Software Engineering , 2009, Conceptual Modeling: Foundations and Applications.

[34]  Don S. Batory,et al.  Scaling step-wise refinement , 2004, IEEE Transactions on Software Engineering.

[35]  Zibin Zheng,et al.  Configuring Software Product Lines by Combining Many-Objective Optimization and SAT Solvers , 2018, ACM Trans. Softw. Eng. Methodol..

[36]  Laurence Duchien,et al.  SALOON: a platform for selecting and configuring cloud environments , 2016, Softw. Pract. Exp..

[37]  Thomas Leich,et al.  Mastering Software Variability with FeatureIDE , 2017, Springer International Publishing.

[38]  Krzysztof Czarnecki,et al.  Feature Diagrams and Logics: There and Back Again , 2007, 11th International Software Product Line Conference (SPLC 2007).

[39]  Lidia Fuentes,et al.  Integrating the common variability language with multilanguage annotations for web engineering , 2018, SPLC.

[40]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[41]  Fatima Zahra Hammani Survey of Non-Functional Requirements modeling and verification of Software Product Lines , 2014, 2014 IEEE Eighth International Conference on Research Challenges in Information Science (RCIS).

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

[43]  Lianping Chen,et al.  A systematic review of evaluation of variability management approaches in software product lines , 2011, Inf. Softw. Technol..

[44]  Lidia Fuentes,et al.  Finding correlations of features affecting energy consumption and performance of web servers using the HADAS eco-assistant , 2018, Computing.

[45]  Jan Bosch,et al.  Trends in Systems and Software Variability , 2015, IEEE Softw..

[46]  Eduardo Figueiredo,et al.  An Empirical Study of Two Software Product Line Tools , 2016, ENASE.

[47]  Lidia Fuentes,et al.  Variability models for generating efficient configurations of functional quality attributes , 2017, Inf. Softw. Technol..

[48]  Jörg Kienzle,et al.  Modelling a family of systems for crisis management with concern‐oriented reuse , 2017, Softw. Pract. Exp..

[49]  T. M. J. Rakotomahefa,et al.  Analysis of a Small Company for Software Product Line Adoption — An Industrial Case Study , .

[50]  Krzysztof Czarnecki,et al.  A survey of variability modeling in industrial practice , 2013, VaMoS.

[51]  Lidia Fuentes,et al.  Product Line Architecture for Automatic Evolution of Multi-Tenant Applications , 2016, 2016 IEEE 20th International Enterprise Distributed Object Computing Conference (EDOC).

[52]  Danilo Beuche,et al.  Modeling and building software product lines with eclipse , 2004, OOPSLA '04.

[53]  Gunter Saake,et al.  Multi-dimensional variability modeling , 2011, VaMoS.

[54]  Christian Prehofer,et al.  Feature-Oriented Programming: A Fresh Look at Objects , 1997, ECOOP.

[55]  Gunter Saake,et al.  Feature-Oriented Software Product Lines , 2013, Springer Berlin Heidelberg.

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

[57]  Renata Pontin de Mattos Fortes,et al.  A systematic review of domain analysis tools , 2010, Inf. Softw. Technol..

[58]  Alejandra Cechich,et al.  Combining Automatic Variability Analysis Tools: An SPL Approach for Building a Framework for Composition , 2018, ICCSA.

[59]  Danny Weyns,et al.  A study and comparison of industrial vs. academic software product line research published at SPLC , 2018, SPLC.

[60]  Uwe Ryssel,et al.  Reverse engineering challenges of the feedback scenario in co-evolving product lines , 2017, SPLC.

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

[62]  Rabih Bashroush,et al.  CASE Tool Support for Variability Management in Software Product Lines , 2017 .

[63]  Øystein Haugen,et al.  The BVR tool bundle to support product line engineering , 2015, SPLC.

[64]  Walter Rudametkin,et al.  Extending feature models with relative cardinalities , 2016, SPLC.

[65]  Don S. Batory,et al.  Finding near-optimal configurations in product lines by random sampling , 2017, ESEC/SIGSOFT FSE.

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

[67]  Thomas Leich,et al.  Tool support for feature-oriented software development: featureIDE: an Eclipse-based approach , 2005, eclipse '05.

[68]  Ioannis Stamelos,et al.  Software Reuse for Dynamic Systems in the Cloud and Beyond , 2015, Lecture Notes in Computer Science.