RiPLE-HC: javascript systems meets spl composition

Context. Software Product Lines (SPL) engineering is increasingly being applied to handle variability in industrial software systems. Problem. The research community has pointed out a series of benefits which modularity brings to software composition, a key aspect in SPL engineering. However, in practice, the reuse in Javascript-based systems relies on the use of package managers (e.g., npm, jam, bower, requireJS), but these approaches do not allow the management of project features. Method. This paper presents the RiPLE-HC, a strategy aimed at blending compositional and annotative approaches to implement variability in Javascript-based systems. Results. We applied the approach in an industrial environment and conducted an academic case study with six open-source systems to evaluate its robustness and scalability. Additionally, we carried a controlled experiment to analyze the impact of the RiPLE-HC code organization on the feature location maintenance tasks. Conclusion. The empirical evaluations yielded evidence of reduced effort in feature location, and positive benefits when introducing systematic reuse aspects in Javascript-based systems.

[1]  Sven Apel,et al.  Measuring and modeling programming experience , 2013, Empirical Software Engineering.

[2]  Tom Van Cutsem,et al.  Robust trait composition for Javascript , 2015, Sci. Comput. Program..

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

[4]  Danny Weyns,et al.  Variability in Software Systems—A Systematic Literature Review , 2014, IEEE Transactions on Software Engineering.

[5]  Stan Jarzabek,et al.  Industrial experience with building a web portal product line using a lightweight, reactive approach , 2005, ESEC/FSE-13.

[6]  Hugo Minni,et al.  Identifier management and resolution: conforming the IEEE standard for learning object metadata , 2008 .

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

[8]  Sven Apel,et al.  The shape of feature code: an analysis of twenty C-preprocessor-based systems , 2017, Software & Systems Modeling.

[9]  Marcelo de Almeida Maia,et al.  On the use of feature-oriented programming for evolving software product lines - A comparative study , 2014, Sci. Comput. Program..

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

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

[12]  Márcio Ribeiro,et al.  The Love/Hate Relationship with the C Preprocessor: An Interview Study , 2015, ECOOP.

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

[14]  Henry Spencer,et al.  #ifdef Considered Harmful, or Portability Experience with C News , 1992, USENIX Summer.

[15]  Eduardo Santana de Almeida,et al.  Do #ifdef-based Variation Points Realize Feature Model Constraints? , 2015, SOEN.

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

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

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

[19]  Marco Tulio Valente,et al.  Does JavaScript software embrace classes? , 2015, 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

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

[21]  Sven Apel,et al.  Integrating Compositional and Annotative Approaches for Product Line Engineering , 2008 .

[22]  Jia Liu,et al.  Feature oriented refactoring of legacy applications , 2006, ICSE.

[23]  Sven Apel,et al.  Workshop on Modularization, Composition, and Generative Techniques for Product Line Engineering , 2008 .

[24]  Eduardo Santana de Almeida,et al.  Low-level variability support for web-based software product lines , 2014, VaMoS '14.

[25]  Thomas Leich,et al.  FeatureC++: on the symbiosis of feature-oriented and aspect-oriented programming , 2005, GPCE'05.

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

[27]  Rafael Capilla,et al.  Light-weight product-lines for evolution and maintenance of Web sites , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..