ABSTRACT
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.
- Omar Alam, Jörg Kienzle, and Gunter Mussbacher. 2013. Concern-Oriented Software Design. In Proceedings of the 16th International Conference on Model-Driven Engineering Languages and Systems - Volume 8107. Springer-Verlag New York, Inc., New York, NY, USA, 604--621. Google ScholarDigital Library
- Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. 2013. Feature-oriented software product lines. Springer. Google ScholarDigital Library
- S. Apel, C. Kästner, and C. Lengauer. 2013. Language-Independent and Automated Software Composition: The FeatureHouse Experience. IEEE Transactions on Software Engineering 39, 1 (Jan 2013), 63--79. Google ScholarDigital Library
- Sven Apel, Thomas Leich, Marko Rosenmüller, and Gunter Saake. 2005. FeatureC++: on the symbiosis of feature-oriented and aspect-oriented programming. In International Conference on Generative Programming and Component Engineering. Springer, 125--140. Google ScholarDigital Library
- Sven Apel and Christian Lengauer. 2008. Superimposition: A Language-Independent Approach to Software Composition. In Software Composition, Cesare Pautasso and Éric Tanter (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 20--35. Google ScholarDigital Library
- Don Batory, Peter Höfner, Dominik Köppl, Bernhard Möller, and Andreas Zelend. 2015. Structured document algebra in action. In Software, Services, and Systems. Springer, 291--311.Google Scholar
- Don Batory, Peter Höfner, Bernhard Möller, and Andreas Zelend. 2013. Features, Modularity, and Variation Points. In Proceedings of the 5th International Workshop on Feature-Oriented Software Development (FOSD '13). ACM, New York, NY, USA, 9--16. Google ScholarDigital Library
- Don S. Batory, Jacob Neal Sarvela, and Axel Rauschmayer. 2004. Scaling Step-Wise Refinement. IEEE Trans. Software Eng. 30, 6 (2004), 355--371. Google ScholarDigital Library
- Benjamin Behringer. 2014. Integrating Approaches for Feature Implementation. In Proceedings of the 22Nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2014). ACM, New York, NY, USA, 775--778. Google ScholarDigital Library
- Benjamin Behringer and Steffen Rothkugel. 2016. Integrating Feature-based Implementation Approaches Using a Common Graph-based Representation. In Proceedings of the 31st Annual ACM Symposium on Applied Computing (SAC '16). ACM, New York, NY, USA, 1504--1511. Google ScholarDigital Library
- F Benduhn, R SCHRöTER, A Kenner, C Kruczek, T Leich, and G ANDSAAKE. 2016. Migration from annotation-based to composition-based product lines: towards a tool-driven process. In Proc. Conf. Advances and Trends in Software Engineering (SOFTENG). IARIA. 102--109.Google Scholar
- Thorsten Berger, Ralf Rublack, Divya Nair, Joanne M. Atlee, Martin Becker, Krzysztof Czarnecki, and Andrzej Wasowski. 2013. A survey of variability modeling in industrial practice. Proceedings of the Seventh International Workshop on Variability Modelling of Software-intensive Systems - VaMoS '13 (2013), 1. Google ScholarDigital Library
- N R Brisaboa, J A Cotelo-Lema, A Fariña, M R Luaces, J R Parama, and J R R Viqueira. 2007. Collecting and publishing large multiscale geographic datasets. Software: Practice and Experience 37, 12 (oct 2007), 1319--1348. Google ScholarDigital Library
- Yvonne Coady, Gregor Kiczales, Mike Feeley, and Greg Smolyn. 2001. Using AspectC to improve the modularity of path-specific customization in operating system code. In ACM SIGSOFT Software Engineering Notes, Vol. 26. ACM, 88--98. Google ScholarDigital Library
- A. Cortiñas, M.R. Luaces, O. Pedreira, and Á.S. Places. 2017. Scaffolding and in-browser generation of web-based GIS applications in a SPL tool. Proceedings of the 21st International Systems and Software Product Line Conference - Volume B 2 (2017), 46--49. Google ScholarDigital Library
- A. Cortiñas, M.R. Luaces, O. Pedreira, Á.S. Places, and J. Pérez. 2017. Web-based geographic information systems SPLE: Domain analysis and experience report. In Proceedings of the 21st International Systems and Software Product Line Conference - Volume A, Vol. 1. ACM, Sevilla, Spain, 190--194. Google ScholarDigital Library
- V. M. A. d. Lima, R. M. Marcacini, M. H. P. Lima, M. I. Cagnin, and M. A. S. Turine. 2014. A Generation Environment for Front-End Layer in e-Government Content Management Systems. In 2014 9th Latin American Web Congress. 119--123. Google ScholarDigital Library
- Critina Gacek and Michalis Anastasopoules. 2001. Implementing Product Line Variabilities. SIGSOFT Softw. Eng. Notes 26, 3 (May 2001), 109--117. Google ScholarDigital Library
- Øystein Haugen. 2012. Common Variability Language (CVL) OMG Revised Submission. OMG Doc. ad/2012-08-05 (2012).Google Scholar
- Ø. Haugen, B. MØller-Pedersen, J. Oldevik, G. K. Olsen, and A. Svendsen. 2008. Adding Standardized Variability to Domain Specific Languages. In 2008 12th International Software Product Line Conference. 139--148. Google ScholarDigital Library
- Florian Heidenreich, Jan Kopcsek, and Christian Wende. 2008. FeatureMapper: Mapping Features to Models. In Companion of the 30th International Conference on Software Engineering (ICSE Companion '08). ACM, New York, NY, USA, 943--944. Google ScholarDigital Library
- Jose Miguel Horcas, Mónica Pinto, and Lidia Fuentes. 2016. An automatic process for weaving functional quality attributes using a software product line approach. Journal of Systems and Software 112 (2016), 78--95. Google ScholarDigital Library
- Jose Miguel Horcas, Mónica Pinto, and Lidia Fuentes. 2016. Product Line Architecture for Automatic Evolution of Multi-Tenant Applications. In 20th IEEE International Enterprise Distributed Object Computing Conference, EDOC 2016, Vienna, Austria, September 5--9, 2016. 1--10.Google Scholar
- Jose Miguel Horcas, Mónica Pinto, and Lidia Fuentes. 2017. Extending the Common Variability Language (CVL) Engine: A practical tool. In Proceedings of the 21st International Systems and Software Product Line Conference, SPLC 2017, Volume B, Sevilla, Spain, September 25--29, 2017. 32--37. Google ScholarDigital Library
- Claus Hunsen, Bo Zhang, Janet Siegmund, Christian Kästner, Olaf Leßenich, Martin Becker, and Sven Apel. 2016. Preprocessor-based variability in open-source and industrial software systems: An empirical study. Empirical Software Engineering 21, 2 (01 Apr 2016), 449--482. Google ScholarDigital Library
- S. Jarzabek, P. Bassett, Hongyu Zhang, and Weishan Zhang. 2003. XVCL: XML-based variant configuration language. In 25th International Conference on Software Engineering, 2003. Proceedings. 810--811. Google ScholarDigital Library
- Kyo C Kang, Sholom G Cohen, James A Hess, William E Novak, and A Spencer Peterson. 1990. Feature-oriented domain analysis (FODA) feasibility study. Technical Report. Carnegie-Mellon Univ Pittsburgh Pa Software Engineering Inst.Google Scholar
- Christian Kästner and Sven Apel. 2008. Integrating compositional and annotative approaches for product line engineering. In Proc. GPCE Workshop on Modularization, Composition and Generative Techniques for Product Line Engineering. 35--40.Google Scholar
- Christian Kästner and Sven Apel. 2009. Virtual separation of concerns-a second chance for preprocessors. Journal of Object Technology 8, 6 (2009), 59--78.Google ScholarCross Ref
- Christian Kästner, Sven Apel, and Martin Kuhlemann. 2008. Granularity in Software Product Lines. In Proceedings of the 30th International Conference on Software Engineering (ICSE '08). ACM, New York, NY, USA, 311--320. Google ScholarDigital Library
- Christian Kästner, Sven Apel, and Martin Kuhlemann. 2009. A Model of Refactoring Physically and Virtually Separated Features. In Proceedings of the Eighth International Conference on Generative Programming and Component Engineering (GPCE '09). ACM, New York, NY, USA, 157--166. Google ScholarDigital Library
- Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. 1997. Aspect-oriented programming. In European conference on object-oriented programming. Springer, 220--242.Google ScholarCross Ref
- Jonathan Koscielny, Sönke Holthusen, Ina Schaefer, Sandro Schulze, Lorenzo Bettini, and Ferruccio Damiani. 2014. DeltaJ 1.5: Delta-oriented Programming for Java 1.5. In Proceedings of the 2014 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools (PPPJ '14). ACM, New York, NY, USA, 63--74. Google ScholarCross Ref
- Jacob Krüger, Marcus Pinnecke, Andy Kenner, Christopher Kruczek, Fabian Benduhn, Thomas Leich, and Gunter Saake. 2017. Composing Annotations Without Regret? Practical Experiences Using FeatureC. Software Prac. Experience (2017).Google Scholar
- Jacob Krüger, Ivonne Schröter, Andy Kenner, Christopher Kruczek, and Thomas Leich. 2016. FeatureCoPP: Compositional Annotations. In Proceedings of the 7th International Workshop on Feature-Oriented Software Development (FOSD 2016). ACM, New York, NY, USA, 74--84. Google ScholarDigital Library
- Daniel Lohmann, Fabian Scheler, Reinhard Tartler, Olaf Spinczyk, and Wolfgang Schröder-Preikschat. 2006. A quantitative analysis of aspects in the eCos kernel. ACM SIGOPS Operating Systems Review 40, 4 (2006), 191. Google ScholarDigital Library
- Miguel R Luaces, David Trillo Pérez, J Ignacio Lamas Fonte, and Ana Cerdeira-Pena. 2009. An Urban Planning Web Viewer Based on AJAX. In Web Information Systems Engineering - WISE 2009 (Lecture {Notes} in {Computer} {Science}), Gottfried Vossen, Darrell D E Long, and Jeffrey Xu Yu (Eds.). Springer Berlin Heidelberg, 443--453. http://link.springer.com/chapter/10.1007/978-3-642-04409-0{_}43 Google ScholarDigital Library
- Renaud Pawlak. 2005. Spoon: Annotation-driven Program Transformation --- the AOP Case. In Proceedings of the 1st Workshop on Aspect Oriented Middleware Development (AOMD '05). ACM, New York, NY, USA. Google ScholarDigital Library
- Ángeles S. Places, Nieves R. Brisaboa, Antonio Fariña, Miguel R. Luaces, José R. Paramá, and Miguel R. Penabad. 2007. The Galician virtual library. Online Information Review 31, 3 (jun 2007), 333--352.Google ScholarCross Ref
- Christian Prehofer. 1997. Feature-oriented programming: A fresh look at objects. In ECOOP'97 --- Object-Oriented Programming, Mehmet Akşit and Satoshi Matsuoka (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 419--443.Google Scholar
- Ina Schaefer, Lorenzo Bettini, Ferruccio Damiani, and Nico Tanzarella. 2010. Delta-oriented Programming of Software Product Lines. In Proceedings of the 14th International Conference on Software Product Lines: Going Beyond (SPLC'10). Springer-Verlag, Berlin, Heidelberg, 77--91. http://dl.acm.org/citation.cfm?id=1885639.1885647 Google ScholarDigital Library
- Matthias Schöttle, Omar Alam, Jörg Kienzle, and Gunter Mussbacher. 2016. On the Modularization Provided by Concern-oriented Reuse. In Companion Proceedings of the 15th International Conference on Modularity (MODULARITY Companion 2016). ACM, New York, NY, USA, 184--189. Google ScholarDigital Library
- Sandro Schulze, Jörg Liebig, Janet Siegmund, and Sven Apel. 2013. Does the Discipline of Preprocessor Annotations Matter?: A Controlled Experiment. In Proceedings of the 12th International Conference on Generative Programming: Concepts and Experiences. 65--74. Google ScholarDigital Library
- Nieraj Singh, Celina Gibbs, and Yvonne Coady. 2007. C-CLR: A Tool for Navigating Highly Configurable System Software. In Proceedings of the 6th Workshop on Aspects, Components, and Patterns for Infrastructure Software (ACP4IS '07). ACM, New York, NY, USA, Article 9. Google ScholarDigital Library
- Henry Spencer and Zoology Computer. 1992. # ifdef Considered Harmful, or Portability Experience With C News. Usenix (1992), 185--198.Google Scholar
- Olaf Spinczyk, Daniel Lohmann, and Matthias Urban. 2005. AspectC++ : an AOP Extension for C++. Software Developer's Journal 5, 68--76 (2005).Google Scholar
- Thomas Thüm, Christian Kästner, Fabian Benduhn, Jens Meinicke, Gunter Saake, and Thomas Leich. 2014. FeatureIDE: An extensible framework for feature-oriented software development. Science of Computer Programming 79 (2014), 70 -- 85. Experimental Software and Toolk-its (EST 4): A special issue of the Workshop on Academic Software Development Tools and Techniques (WASDeTT-3 2010). Google ScholarDigital Library
- G. Vale, R. Abílio, A. Freire, and H. Costa. 2015. Criteria and Guidelines to Improve Software Maintainability in Software Product Lines. In 2015 12th International Conference on Information Technology - New Generations. 427--432. Google ScholarDigital Library
- Eric Walkingshaw and Martin Erwig. 2012. A Calculus for Modeling and Implementing Variation. In Proceedings of the 11th International Conference on Generative Programming and Component Engineering (GPCE '12). ACM, New York, NY, USA, 132--140. Google ScholarDigital Library
- Eric Walkingshaw and Klaus Ostermann. 2014. Projectional Editing of Variational Software. In Proceedings of the 2014 International Conference on Generative Programming: Concepts and Experiences (GPCE 2014). ACM, New York, NY, USA, 29--38. Google ScholarDigital Library
Index Terms
- Integrating the common variability language with multilanguage annotations for web engineering
Recommendations
Extending the Common Variability Language (CVL) Engine: A practical tool
SPLC '17: Proceedings of the 21st International Systems and Software Product Line Conference - Volume BThe Common Variability Language (CVL) has become a reference in the specification and resolution of variability in the last few years. Despite the multiple advantages of CVL (orthogonal variability, architecture variability resolution, MOF-compliant, ...
Injecting quality attributes into software architectures with the common variability language
CBSE '14: Proceedings of the 17th international ACM Sigsoft symposium on Component-based software engineeringQuality attributes that add new behavior to the functional software architecture are known as functional quality attributes (FQAs). These FQAs are applied to pieces of software from small components to entire systems, usually crosscutting some of them. ...
A variability-aware module system
OOPSLA '12: Proceedings of the ACM international conference on Object oriented programming systems languages and applicationsModule systems enable a divide and conquer strategy to software development. To implement compile-time variability in software product lines, modules can be composed in different combinations. However, this way, variability dictates a dominant ...
Comments