Resumen:
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.