skip to main content
10.1145/3233027.3233049acmotherconferencesArticle/Chapter ViewAbstractPublication PagessplcConference Proceedingsconference-collections
research-article

Integrating the common variability language with multilanguage annotations for web engineering

Published:10 September 2018Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. 2013. Feature-oriented software product lines. Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. Don S. Batory, Jacob Neal Sarvela, and Axel Rauschmayer. 2004. Scaling Step-Wise Refinement. IEEE Trans. Software Eng. 30, 6 (2004), 355--371. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle Scholar
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. Critina Gacek and Michalis Anastasopoules. 2001. Implementing Product Line Variabilities. SIGSOFT Softw. Eng. Notes 26, 3 (May 2001), 109--117. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Øystein Haugen. 2012. Common Variability Language (CVL) OMG Revised Submission. OMG Doc. ad/2012-08-05 (2012).Google ScholarGoogle Scholar
  20. Ø. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle Scholar
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle Scholar
  28. 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 ScholarGoogle Scholar
  29. 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 ScholarGoogle ScholarCross RefCross Ref
  30. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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 ScholarGoogle ScholarCross RefCross Ref
  33. 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 ScholarGoogle ScholarCross RefCross Ref
  34. 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 ScholarGoogle Scholar
  35. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  36. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  37. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  38. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  39. Á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 ScholarGoogle ScholarCross RefCross Ref
  40. 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 ScholarGoogle Scholar
  41. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  42. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  43. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  44. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  45. Henry Spencer and Zoology Computer. 1992. # ifdef Considered Harmful, or Portability Experience With C News. Usenix (1992), 185--198.Google ScholarGoogle Scholar
  46. Olaf Spinczyk, Daniel Lohmann, and Matthias Urban. 2005. AspectC++ : an AOP Extension for C++. Software Developer's Journal 5, 68--76 (2005).Google ScholarGoogle Scholar
  47. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  48. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  49. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  50. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Integrating the common variability language with multilanguage annotations for web engineering

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Other conferences
          SPLC '18: Proceedings of the 22nd International Systems and Software Product Line Conference - Volume 1
          September 2018
          324 pages
          ISBN:9781450364645
          DOI:10.1145/3233027

          Copyright © 2018 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 10 September 2018

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          Overall Acceptance Rate167of463submissions,36%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader