Abstract
Aspect orientation has been used to improve the modularization of crosscutting concerns that emerge at different levels of software abstraction. Although initial research was focused on imparting aspect-oriented (AO) capabilities to programming languages, the paradigm was later on extended to software artifacts that appear at higher levels of abstraction (e.g., models). In particular, the Model-Driven Engineering (MDE) paradigm has largely benefitted from the inclusion of aspect-oriented techniques. In a converse way, we believe it may also be productive to investigate how MDE techniques can be adopted to benefit the development of aspect-oriented tools. The main objective of this paper is to show how MDE techniques can be used to improve the construction of aspect weavers for General-Purpose Languages (GPLs) through reusable models and transformations. The approach described in the paper uses models to capture the concepts of various Aspect-Oriented Programming (AOP) language constructs at a metamodeling level. These models are then mapped to concrete weavers for GPLs through a combination of higher-order model transformation and program transformation rules. A generic extension to the framework further supports reusability of artifacts among weavers during the construction process. Aspect weavers for FORTRAN and Object Pascal have been constructed using the framework, and their features evaluated against several case study applications.
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
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., Irwin, J.: Aspect-Oriented Programming. In: Liu, Y., Auletta, V. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Clarke, S., Harrison, W., Ossher, H., Tarr, P.: Subject-Oriented Design: Towards Improved Alignment of Requirements, Design, and Code. In: Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Denver, CO, October 1999, pp. 325–339 (1999)
Jacobson, I., Ng, P.: Aspect-Oriented Software Development with Use Cases. Addison-Wesley, Reading (2005)
France, R., Ray, I., Georg, G., Ghosh, S.: Aspect-Oriented Approach to Design Modeling. IEE Proceedings - Software (Special Issue on Early Aspects: Aspect-Oriented Requirements Engineering and Architecture Design) 151(4), 173–185 (2004)
Schmidt, D.: Guest Editor’s Introduction: Model-Driven Engineering. IEEE Computer 39(2), 25–31 (2006)
Lämmel, R., Verhoef, C.: Cracking the 500 Language Problem. IEEE Software, 78–88 (November/December 2001)
Ulrich, W.: Legacy Systems: Transformation Strategies. Prentice-Hall, Englewood Cliffs (2002)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.: Getting Started with AspectJ. Communications of the ACM, 59–65 (October 2001)
Baxter, I., Pidgeon, C., Mehlich, M.: DMS: Program Transformation for Practical Scalable Software Evolution. In: International Conference on Software Engineering (ICSE), Edinburgh, Scotland, May 2004, pp. 625–634 (2004)
Fradet, P., Südholt, M.: Towards a Generic Framework for Aspect-Oriented Programming. In: Demeyer, S., Dannenberg, R.B. (eds.) ECOOP 1998 Workshops. LNCS, vol. 1543, pp. 394–397. Springer, Heidelberg (1998)
Aßmann, U., Ludwig, A.: Aspect Weaving with Graph Rewriting. In: International Symposium on Generative and Component-Based Software Engineering, Erfurt, Germany, September 1999, pp. 24–36 (1999)
Gray, J., Roychoudhury, S.: A Technique for Constructing Aspect Weavers using a Program Transformation Engine. In: International Conference on Aspect-Oriented Software Development (AOSD), Lancaster, UK, March 2004, pp. 36–45 (2004)
van den Brand, M., Heering, J., Klint, P., Olivier, P.: Compiling Rewrite Systems: The ASF+SDF Compiler. ACM Transactions on Programming Languages and Systems, 334–368 (July 2002)
Cordy, J.: The TXL Source Transformation Language. Science of Computer Programming 61(3), 190–210 (2006)
Akers, R., Baxter, I., Mehlich, M., Ellis, B., Luecke, K.: Case Study: Re-engineering C++ Component Models via Automatic Program Transformation. Information & Software Technology 49(3), 275–291 (2007)
Adams, B.: Language-independent Aspect Weaving. Summer School on Generative and Transformational Techniques in Software Engineering, Braga, Portugal (July 2005)
Jackson, A., Clarke, S.: SourceWeave. In: Karsai, G., Visser, E. (eds.) GPCE 2004. LNCS, vol. 3286, pp. 115–135. Springer, Heidelberg (2004)
Lafferty, D., Cahill, V.: Language-Independent Aspect-Oriented Programming. In: Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Anaheim, CA, October 2003, pp. 1–12 (2003)
Lämmel, R.: Declarative Aspect-Oriented Programming. In: ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, San Antonio, TX, January 1999, pp. 131–146 (1999)
Jouault, F., Bézivin, J.: KM3: a DSL for Metamodel Specification. In: Gorrieri, R., Wehrheim, H. (eds.) FMOODS 2006. LNCS, vol. 4037, pp. 171–185. Springer, Heidelberg (2006)
Kurtev, I., Bézivin, J., Jouault, F., Valduriez, P.: Model-based DSL Frameworks. In: Object-Oriented Programming, Systems, Languages and Applications, Portland, OR, October 2006, pp. 602–616 (2006)
Barbero, M., Jouault, F., Gray, J., Bézivin, J.: A Practical Approach to Model Extension. In: European Conference on Model Driven Architecture Foundations and Applications (ECMDA), Haifa, Israel, June 2007, pp. 32–42 (2007)
Jouault, F., Bézivin, J., Kurtev, I.: TCS: A DSL for the Specification of Textual Concrete Syntaxes in Model Engineering. In: Generative Programming and Component Engineering (GPCE), Portland, OR, October 2006, pp. 249–254 (2006)
Jouault, F., Allilaire, F., Bézivin, J., Kurtev, I.: ATL: A Model Transformation Tool. Science of Computer Programming 72(1-2), 31–39 (2008)
Harbulot, B., Gurd, J.: Using AspectJ to Separate Concerns in Parallel Scientific Java Code. In: International Conference on Aspect-Oriented Software Development (AOSD), Lancaster, UK, March 2004, pp. 122–131 (2004)
Heidenreich, F., Johannes, J., Zschaler, S.: Aspect Orientation for Your Language of Choice. In: 11th International Workshop on Aspect-Oriented Modeling, Nashville, TN (September 2007)
Morin, B., Barais, O., Jézéquel, J., Ramos, R.: Towards a Generic Aspect-Oriented Modeling Framework. In: Workshop on Models and Aspects (ECOOP), Berlin, Germany (July 2007)
Klint, P., Lämmel, R., Verhoef, C.: Toward an Engineering Discipline for Grammarware. ACM Transactions on Software Engineering and Methodology 14(3), 331–380 (2005)
Gropp, W., Lusk, E., Doss, N., Skjellum, A.: A High-Performance, Portable Implementation of the MPI Message Passing Interface Standard. Parallel Computing 22(6), 789–828 (1996)
GenAWeave project website, http://www.cis.uab.edu/softcom/genaweave
Lämmel, R., De Schutter, K.: What Does Aspect-Oriented Programming Mean to Cobol? In: International Conference on Aspect-Oriented Software Development (AOSD), Chicago, IL, March 2005, pp. 99–110 (2005)
Germon, R.: Using XML as an Intermediate Form for Compiler Development. In: XML Conference and Exposition, Orlando, FL (December 2001)
Bravenboer, M., Visser, E.: Concrete Syntax for Objects: Domain-specific Language Embedding and Assimilation without Restrictions. In: Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Vancouver, Canada, October 2004, pp. 365–383 (2004)
De Roover, C., Brichau, J., Noguera, C., D’Hondt, T., Duchiena, L.: Behavioural Similarity Matching using Concrete Source Code Templates in Logic Queries. In: ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM 2007), Nice, France, January 2007, pp. 92–101 (2007)
Ramos, R., Barais, O., Jézéquel, J.: Matching Model-Snippets. In: Engels, G., Opdyke, B., Schmidt, D.C., Weil, F. (eds.) MODELS 2007. LNCS, vol. 4735, pp. 121–135. Springer, Heidelberg (2007)
Steel, J., Jézéquel, J.: On Model Typing. Journal of Software and Systems Modeling (SoSyM) 6(4), 452–468 (2007)
Eclipse Model to Text (M2T) project, http://www.eclipse.org/modeling/m2t/
Lopes, C.: D: A Language Framework for Distributed Programming. Ph.D. Dissertation, College of Computer Science, Northeastern University, December 1997 (1998)
Jossic, A., Del Fabro, M., Lerat, J., Bézivin, J., Jouault, F.: Model Integration with Model Weaving: A Case Study in System Architecture. In: International Conference on Systems Engineering and Modeling, Haifa, Israel, March 2007, pp. 79–84 (2007)
Hilsdale, E., Hugunin, J.: Advice Weaving in AspectJ. In: International Conference on Aspect-Oriented Software Development (AOSD), Lancaster, UK, March 2004, pp. 26–35 (2004)
Schult, W., Tröger, P.: Loom.NET - An Aspect Weaving Tool. In: Cardelli, L. (ed.) ECOOP 2003. Schult, W., Tröger, P, vol. 2743. Springer, Heidelberg (2003)
Brichau, J., Mezini, M., Noyé, J., Havinga, W., Bergmans, L., Gasiunas, V., Bockisch, C., Fabry, J., D’Hondt, T.: An Initial Metamodel for Aspect-Oriented Programming Languages, Deliverable D39. In: AOSD-Europe (2006)
Tanter, E.: An Extensible Kernel Language for AOP. In: AOSD Workshop on Open and Dynamic Aspect Languages, Bonn, Germany (2006)
de Roo, A., Hendriks, M., Havinga, W., Durr, P., Bergmans, L.: Compose*: A Language- and Platform-Independent Aspect Compiler for Composition Filters. In: Workshop on Advanced Software Development Tools and Techniques, Pahpos, Cyprus (July 2008)
Chalabine, M., Kessler, C.W.: Parallelisation of Sequential Programs by Invasive Composition and Aspect Weaving. In: Cao, J., Nejdl, W., Xu, M. (eds.) APPT 2005. LNCS, vol. 3756, pp. 131–140. Springer, Heidelberg (2005)
Irwin, J., Loingtier, J., Gilbert, J., Kiczales, G., Lamping, J., Mendhekar, A., Shpeisman, T.: Aspect-Oriented Programming of Sparse Matrix Code. In: Sun, Z., Reynders, J.V.W., Tholburn, M. (eds.) ISCOPE 1997. LNCS, vol. 1343, pp. 249–256. Springer, Heidelberg (1997)
Herrmann, C., Lengauer, C.: Using Metaprogramming to Parallelize Functional Specifications. Parallel Processing Letter 12(2), 193–210 (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Roychoudhury, S., Gray, J., Jouault, F. (2011). A Model-Driven Framework for Aspect Weaver Construction. In: Katz, S., Mezini, M., Schwanninger, C., Joosen, W. (eds) Transactions on Aspect-Oriented Software Development VIII. Lecture Notes in Computer Science, vol 6580. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-22031-9_1
Download citation
DOI: https://doi.org/10.1007/978-3-642-22031-9_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-22030-2
Online ISBN: 978-3-642-22031-9
eBook Packages: Computer ScienceComputer Science (R0)