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
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley, Reading (2002)
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)
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)
Apel, S., Kästner, C., Lengauer, C.: FeatureHouse: Language-Independent, Automatic Software Composition. In: Proc. Int. Conf. Software Engineering. IEEE CS, Los Alamitos (2009)
Batory, D., Sarvela, J., Rauschmayer, A.: Scaling Step-Wise Refinement. IEEE Trans. Software Engineering 30(6), 355–371 (2004)
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)
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)
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)
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)
Apel, S., Leich, T., Saake, G.: Aspectual Feature Modules. IEEE Trans. Software Engineering 34(2), 162–180 (2008)
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)
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)
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)
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)
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)
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)
Kiczales, G., Des Rivieres, J.: The Art of the Metaobject Protocol. MIT Press, Cambridge (1991)
Apel, S., Janda, F., Trujillo, S., Kästner, C.: Model Superimposition in Software Product Lines. In: Proc. Int. Conf. Model Transformation. Springer, Heidelberg (2009)
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)
Filman, R., Friedman, D.: Aspect-Oriented Programming Is Quantification and Obliviousness. In: Aspect-Oriented Software Development, pp. 21–35. Addison-Wesley, Reading (2005)
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)
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)
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)
Hilsdale, E., Hugunin, J.: Advice Weaving in AspectJ. In: Proc. Int. Conf. Aspect-Oriented Software Development, pp. 26–35. ACM Press, New York (2004)
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)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Boxleitner, S., Apel, S., Kästner, C. (2009). Language-Independent Quantification and Weaving for Feature Composition. In: Bergel, A., Fabry, J. (eds) Software Composition. SC 2009. Lecture Notes in Computer Science, vol 5634. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02655-3_5
Download citation
DOI: https://doi.org/10.1007/978-3-642-02655-3_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-02654-6
Online ISBN: 978-3-642-02655-3
eBook Packages: Computer ScienceComputer Science (R0)