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 despite 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.

READ FULL TEXT

page 6

page 8

research
03/06/2022

Managing Service Level Agreements in Service Oriented Product Lines

Service Oriented Architecture (SOA) and Software Product Line (SPL) have...
research
02/14/2018

pyfml - a textual language for feature modeling

The Feature model is a typical approach to capture variability in a soft...
research
07/09/2017

Refinable Function : An Object-oriented Approach to Procedure Modularity

Modularity is the fundamental aspect of modern software engineering, how...
research
09/15/2017

LoIDE: a web-based IDE for Logic Programming - Preliminary Technical Report

Logic-based paradigms are nowadays widely used in many different fields,...
research
06/14/2021

CodeLabeller: A Web-based Code Annotation Tool for Java Design Patterns and Summaries

The appropriate use of design patterns in code is a vital measurement of...
research
07/01/2021

IsiSPL: Toward an Automated Reactive Approach to build Software Product Lines

Over the past decades, Software Product Lines (SPLs) have demonstrated t...

Please sign up or login with your details

Forgot password? Click here to reset