Advertisement

Language-Independent Quantification and Weaving for Feature Composition

  • Stefan Boxleitner
  • Sven Apel
  • Christian Kästner
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5634)

Abstract

Based on a general model of feature composition, we present a composition language that enables programmers by means of quantification and weaving to formulate extensions to programs written in different languages. We explore the design space of composition languages that rely on quantification and weaving and discuss our choices. We outline a tool that extends an existing infrastructure for feature composition and discuss results of three initial case studies. We found that, due to its language independence, our approach is less powerful than aspect-oriented languages but still usable for many implementation problems.

Keywords

Child Node Target Language Software Product Line Class Graph Feature Composition 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley, Reading (2002)Google Scholar
  2. 2.
    Apel, S., Lengauer, C.: Superimposition: A Language-Independent Approach to Software Composition. In: Pautasso, C., Tanter, É. (eds.) SC 2008. LNCS, vol. 4954, pp. 20–35. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  3. 3.
    Apel, S., Lengauer, C., Möller, B., Kästner, C.: An Algebra for Features and Feature Composition. In: Proc. Int. Conf. Algebraic Methodology and Software Technology, pp. 36–50. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  4. 4.
    Apel, S., Kästner, C., Lengauer, C.: FeatureHouse: Language-Independent, Automatic Software Composition. In: Proc. Int. Conf. Software Engineering. IEEE CS, Los Alamitos (2009)Google Scholar
  5. 5.
    Batory, D., Sarvela, J., Rauschmayer, A.: Scaling Step-Wise Refinement. IEEE Trans. Software Engineering 30(6), 355–371 (2004)CrossRefGoogle Scholar
  6. 6.
    Bergel, A., Ducasse, S., Nierstrasz, O.: Classbox/J: Controlling the Scope of Change in Java. In: Proc. Int. Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 177–189. ACM Press, New York (2005)Google Scholar
  7. 7.
    Apel, S., Leich, T., Rosenmüller, M., Saake, G.: FeatureC++: On the Symbiosis of Feature-Oriented and Aspect-Oriented Programming. In: Proc. Int. Conf. Generative Programming and Component Engineering, pp. 125–140. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  8. 8.
    Anfurrutia, F., Díaz, Ó., Trujillo, S.: On Refining XML Artifacts. In: Baresi, L., Fraternali, P., Houben, G.-J. (eds.) ICWE 2007. LNCS, vol. 4607, pp. 473–478. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  9. 9.
    Mezini, M., Ostermann, K.: Variability Management with Feature-Oriented Programming and Aspects. In: Proc. Int. Symp. Foundations of Software Eng., pp. 127–136. ACM Press, New York (2004)Google Scholar
  10. 10.
    Apel, S., Leich, T., Saake, G.: Aspectual Feature Modules. IEEE Trans. Software Engineering 34(2), 162–180 (2008)CrossRefGoogle Scholar
  11. 11.
    Lieberherr, K., Patt-Shamir, B., Orleans, D.: Traversals of Object Structures: Specification and Efficient Implementation. ACM Trans. Programming Languages and Systems 26(2), 370–412 (2004)CrossRefGoogle Scholar
  12. 12.
    Lämmel, R., Visser, E., Visser, J.: Strategic Programming Meets Adaptive Programming. In: Proc. Int. Conf. Aspect-Oriented Software Development, pp. 168–177. ACM Press, New York (2003)CrossRefGoogle Scholar
  13. 13.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.M., Irwin, J.: Aspect-Oriented Programming. In: Proc. Europ. Conf. Object-Oriented Programming, pp. 220–242. Springer, Heidelberg (1997)Google Scholar
  14. 14.
    Tarr, P., Ossher, H., Harrison, W., Sutton Jr., S.: N Degrees of Separation: Multi-Dimensional Separation of Concerns. In: Proc. Int. Conf. Software Engineering, pp. 107–119. IEEE CS, Los Alamitos (1999)Google Scholar
  15. 15.
    Visser, E., Benaissa, Z., Tolmach, A.: Building Program Optimizers with Rewriting Strategies. In: Proc. Int. Conf. Functional Programming, pp. 13–26. ACM Press, New York (1998)Google Scholar
  16. 16.
    Visser, J.: Visitor Combination and Traversal Control. In: Proc. Int. Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 270–282. ACM Press, New York (2001)Google Scholar
  17. 17.
    Kiczales, G., Des Rivieres, J.: The Art of the Metaobject Protocol. MIT Press, Cambridge (1991)Google Scholar
  18. 18.
    Apel, S., Janda, F., Trujillo, S., Kästner, C.: Model Superimposition in Software Product Lines. In: Proc. Int. Conf. Model Transformation. Springer, Heidelberg (2009)Google Scholar
  19. 19.
    Apel, S., Kästner, C., Größlinger, A., Lengauer, C.: Feature (De)composition in Functional Programming. In: Proc. Int. Symp. Software Composition. Springer, Heidelberg (2009)Google Scholar
  20. 20.
    Filman, R., Friedman, D.: Aspect-Oriented Programming Is Quantification and Obliviousness. In: Aspect-Oriented Software Development, pp. 21–35. Addison-Wesley, Reading (2005)Google Scholar
  21. 21.
    Lopez-Herrejon, R., Batory, D.: A Standard Problem for Evaluating Product-Line Methodologies. In: Proc. Int. Conf. Generative and Component-Based Software Engineering, pp. 10–24. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  22. 22.
    Apel, S., Batory, D.: How AspectJ is Used: An Analysis of Eleven AspectJ Programs. Technical Report MIP-0801, Dept. of Informatics and Mathematics, University of Passau (2008)Google Scholar
  23. 23.
    Lämmel, R.: Scrap Your Boilerplate with XPath-like Combinators. In: Proc. Int. Symp. Principles of Programming Languages, pp. 137–142. ACM Press, New York (2007)Google Scholar
  24. 24.
    Hilsdale, E., Hugunin, J.: Advice Weaving in AspectJ. In: Proc. Int. Conf. Aspect-Oriented Software Development, pp. 26–35. ACM Press, New York (2004)CrossRefGoogle Scholar
  25. 25.
    Gray, J., Roychoudhury, S.: A Technique for Constructing Aspect Weavers using a Program Transformation Engine. In: Proc. Int. Conf. Aspect-Oriented Software Development, pp. 36–45. ACM Press, New York (2004)CrossRefGoogle Scholar
  26. 26.
    Gybels, K., Brichau, J.: Arranging Language Features for More Robust Pattern-Based Crosscuts. In: Proc. Int. Conf. Aspect-Oriented Software Development, pp. 60–69. ACM Press, New York (2003)CrossRefGoogle Scholar
  27. 27.
    Ostermann, K., Mezini, M., Bockisch, C.: Expressive Pointcuts for Increased Modularity. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 214–240. Springer, Heidelberg (2005)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Stefan Boxleitner
    • 1
  • Sven Apel
    • 1
  • Christian Kästner
    • 2
  1. 1.Department of Informatics and MathematicsUniversity of PassauGermany
  2. 2.School of Computer ScienceUniversity of MagdeburgGermany

Personalised recommendations