Skip to main content

Advanced, Language-Based Variability Mechanisms

  • Chapter
  • First Online:
Feature-Oriented Software Product Lines

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 54.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 69.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 99.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 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. 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. 3.

    http://www.eclipse.org/aspectj/

  4. 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. 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. 6.

    http://www.aspectc.org/

  7. 7.

    http://www.dsg.cs.tcd.ie/dynamic/?category_id=169

  8. 8.

    http://www.cs.utexas.edu/users/schwartz/ATS.html

  9. 9.

    http://fosd.net/fh

  10. 10.

    http://www.cs.utexas.edu/users/dsb/cs392f/Videos/FeatureIDE/

  11. 11.

    http://www.eclipse.org/aspectj/

  12. 12.

    http://www.aspectc.org/

  13. 13.

    http://research.msrg.utoronto.ca/ACC

  14. 14.

    http://www.eclipse.org/ajdt/

  15. 15.

    http://acdt.aspectc.org/

  16. 16.

    http://www.jboss.org/jbossaop

  17. 17.

    http://www.springsource.org/

  18. 18.

    http://wwwiti.cs.uni-magdeburg.de/iti_db/fcc/

  19. 19.

    http://spl2go.cs.ovgu.de/

  20. 20.

    http://sourceforge.net/projects/ajhotdraw/

  21. 21.

    http://www.comp.lancs.ac.uk/~greenwop/tao/

  22. 22.

    http://mobilemedia.sourceforge.net/

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gunter Saake .

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics