Integrating the common variability language with multilanguage annotations for web engineering

Web applications development involves managing a high diversity of files and resources like code, pages or style sheets, implemented in different languages. To deal with the automatic generation of custom-made configurations of web applications, industry usually adopts annotation-based approaches even though the majority of studies encourage the use of composition-based approaches to implement Software Product Lines. Recent work tries to combine both approaches to get the complementary benefits. However, technological companies are reticent to adopt new development paradigms such as feature-oriented programming or aspect-oriented programming. Moreover, it is extremely difficult, or even impossible, to apply these programming models to web applications, mainly because of their multilingual nature, since their development involves multiple types of source code (Java, Groovy, JavaScript), templates (HTML, Markdown, XML), style sheet files (CSS and its variants, such as SCSS), and other files (JSON, YML, shell scripts). We propose to use the Common Variability Language as a composition-based approach and integrate annotations to manage fine grained variability of a Software Product Line for web applications. In this paper, we (i) show that existing composition and annotation-based approaches, including some well-known combinations, are not appropriate to model and implement the variability of web applications; and (ii) present a combined approach that effectively integrates annotations into a composition-based approach for web applications. We implement our approach and show its applicability with an industrial real-world system.

[1]  Sven Apel,et al.  Virtual Separation of Concerns - A Second Chance for Preprocessors , 2009, J. Object Technol..

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

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

[4]  Olaf Spinczyk,et al.  AspectC++ – An AOP Extension for C++ , 2005 .

[5]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

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

[7]  Bernhard Möller,et al.  Structured Document Algebra in Action , 2015, Software, Services, and Systems.

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

[9]  SchelerFabian,et al.  A quantitative analysis of aspects in the eCos kernel , 2006 .

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

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

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

[13]  Ana Cerdeira-Pena,et al.  An Urban Planning Web Viewer Based on AJAX , 2009, WISE.

[14]  Antonio Vallecillo,et al.  Proceedings of the 16th International Conference on Model-Driven Engineering Languages and Systems - Volume 8107 , 2013 .

[15]  Yvonne Coady,et al.  C-CLR: a tool for navigating highly configurable system software , 2007, ACP4IS.

[16]  Jennifer Pérez,et al.  Web-based Geographic Information Systems SPLE: Domain Analysis and Experience Report , 2017, SPLC.

[17]  Thomas Leich,et al.  Migration from Annotation-Based to Composition-Based Product Lines: Towards a Tool-Driven Process , 2016 .

[18]  Cristina Gacek,et al.  Implementing product line variabilities , 2001, SSR '01.

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

[20]  Jörg Kienzle,et al.  Concern-Oriented Software Design , 2013, MoDELS.

[21]  KiczalesGregor,et al.  Using aspectC to improve the modularity of path-specific customization in operating system code , 2001 .

[22]  ApelSven,et al.  Language-Independent and Automated Software Composition , 2013 .

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

[24]  Jacob Krüger,et al.  FeatureCoPP: compositional annotations , 2016, FOSD.

[25]  Weishan Zhang,et al.  XVCL: XML-based variant configuration language , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[26]  Eric Walkingshaw,et al.  Projectional editing of variational software , 2015, GPCE 2014.

[27]  Bernhard Möller,et al.  Features, modularity, and variation points , 2013, FOSD '13.

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

[29]  Maria Istela Cagnin,et al.  A Generation Environment for Front-End Layer in e-Government Content Management Systems , 2014, 2014 9th Latin American Web Congress.

[30]  Sven Apel,et al.  A model of refactoring physically and virtually separated features , 2009, GPCE '09.

[31]  José R. Paramá,et al.  The Galician virtual library , 2007, Online Inf. Rev..

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

[33]  Matthias Schöttle,et al.  On the modularization provided by concern-oriented reuse , 2016, MODULARITY.

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

[35]  Benjamin Behringer Integrating approaches for feature implementation , 2014, FSE 2014.

[36]  Sandro Schulze,et al.  DeltaJ 1.5: delta-oriented programming for Java 1.5 , 2014, PPPJ.

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

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

[39]  Ramon Abilio,et al.  Criteria and Guidelines to Improve Software Maintainability in Software Product Lines , 2015, 2015 12th International Conference on Information Technology - New Generations.

[40]  Ángeles Saavedra Places,et al.  Scaffolding and in-browser generation of web-based GIS applications in a SPL tool , 2017, SPLC.

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

[42]  GacekCritina,et al.  Implementing product line variabilities , 2001 .

[43]  Viviana Bono,et al.  Delta-Oriented Programming of Software Product Lines , 2010, SPLC.

[44]  Wolfgang Schröder-Preikschat,et al.  A quantitative analysis of aspects in the eCos kernel , 2006, EuroSys.

[45]  Renaud Pawlak Spoon: annotation-driven program transformation --- the AOP case , 2005, AOMD '05.

[46]  Sven Apel,et al.  Superimposition: A Language-Independent Approach to Software Composition , 2008, SC@ETAPS.

[47]  Sven Apel,et al.  Granularity in software product lines , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[48]  Jacob Krüger,et al.  Composing annotations without regret? Practical experiences using FeatureC , 2018, Softw. Pract. Exp..

[49]  Gregor Kiczales,et al.  Using aspectC to improve the modularity of path-specific customization in operating system code , 2001, ESEC/FSE-9.

[50]  Steffen Rothkugel,et al.  Integrating feature-based implementation approaches using a common graph-based representation , 2016, SAC.

[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]  Martin Erwig,et al.  A calculus for modeling and implementing variation , 2012, GPCE '12.

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

[54]  Sven Apel,et al.  Does the discipline of preprocessor annotations matter?: a controlled experiment , 2014, GPCE '13.

[55]  José R. Paramá,et al.  Collecting and publishing large multiscale geographic datasets , 2007, Softw. Pract. Exp..

[56]  José R. Paramá,et al.  Collecting and publishing large multiscale geographic datasets , 2007 .