Abstract:
"Aspects may be considered unwanted exactly for what they are praised otherwise: quantification and obliviousness.
Consequently, we identified a need to use their advantages in software product lines, but also their undesirability in products. We
tackled and resolved this need by designing a novel approach to establishing aspect-oriented software product lines without aspects in
products. We used lightweight aspect-oriented method of software product line variability management enhanced with decorators with adaptation of design patterns by binding
their fragments belonging to the variability into code constructs. Bound fragments are automatically detached during product derivation.
Introduced restrictions only to bind elements of variable features to various code constructs in native programs with the use of annotations
are applied to easily remove aspects. Then we analyzed and discussed the consequences of the emerging complexity in the development
processes. The approach is presented in the study of a product family from the graphics domain written in Angular. Its complex application
showed how to easily support template manipulations, setting a selected list of features, and applying changes on a low granularity level.
Using aspects only for feature management plays a crucial role in achieving significant benefits, especially the preservation of development
processes and independence on aspects."