Abstract
After reading the chapter, you should be able to explain the key concepts of collaboration-based design and feature-oriented programming, understand the key mechanisms of AspectJ and write simple aspects in this language, implement product lines with feature-oriented and aspect-oriented languages and their combination, discuss trade-offs between these and previous implementation techniques, contrast feature-oriented and aspect-oriented languages regarding their key mechanisms select a suitable implementation technique for a given product line, critically discuss the conflict between preplanning and obliviousness, and discuss strategies of developing feature-oriented extensions of other code and noncode languages.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
There is an ongoing discussion on the role and goals of modularity (Ostermann et al. 2011); we use a liberal interpretation to which modules are a code structuring mechanism; see Sect. 3.2.4.
- 2.
Jak’s keyword Super is similar to Java’s keyword super. While Super refers to the method that has been overridden by a class refinement, super refers to the method that has been overridden by a subclass. To avoid confusion, other feature-oriented languages use instead keywords such as original (Apel et al. 2009).
- 3.
- 4.
Note that AspectJ advice may bind to Java annotations, which makes it effectively a combination of an annotation-based and a composition-based approach.
- 5.
Note that the original aspect has been split into two pieces (a base aspect and a subsequent refinement), which is discussed elsewhere (Apel et al. 2007).
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Apel, S., Batory, D., Kästner, C., Saake, G. (2013). Advanced, Language-Based Variability Mechanisms. In: Feature-Oriented Software Product Lines. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-37521-7_6
Download citation
DOI: https://doi.org/10.1007/978-3-642-37521-7_6
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-37520-0
Online ISBN: 978-3-642-37521-7
eBook Packages: Computer ScienceComputer Science (R0)