Abstract
Jointly deployed aspects may interact with each other. While some interactions might be intended, unintended interactions (interferences) can break a program. Detecting and resolving interferences is particularly hard if aspects are developed independently, without knowledge of each other.
Work on interference detection has focused so far on the correctness of weaved programs. In this paper, we focus on the correctness and completeness of aspect weaving. We show that a large class of interferences result from incorrect or incomplete weaving and present a language-independent analysis of correctness and completeness of weaving.
For certain types of interactions automatic resolution is possible. In this case, our algorithm computes a “weaving schedule” that ensures correctness and completeness of the weaving process. This is possible without special purpose program annotations or formal specifications of aspect semantics. Our technique can check weaving interferences independently of any base program and is applicable to aspects that contain implicit mutual dependencies in their implementation.
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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Filman, R.E., Friedman, D.P.: Aspect-oriented programming is quantification and obliviousness. In: Workshop on Advanced Separation of Concerns (OOPSLA 2000) (2000)
McEachen, N., Alexander, R.: Distributing classes with woven concerns – an exploration of potential fault scenarios. In: Tarr, P. (ed.) AOSD 2005 – 4th International Conference on Aspect-Oriented Software Development, Chicago, USA. ACM Press, New York (2005)
Kniesel, G., Costanza, P., Austermann, M.: JMangler - a framework for load-time transformation of Java class files. In: First IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2001), pp. 100–110. IEEE Computer Society Press, Los Alamitos (2001)
Ostermann, K., Kniesel, G.: Independent extensibility—An open challange for AspectJ and Hyper/J. In: Workshop on Aspects and Dimensions of Concerns (ECOOP 2000) (2000)
Szyperski, C.: Independently extensible systems – software engineering potential and challenges. In: Proceedings of the 19th Australasian Computer Science Conference, Melbourne, Australia, Computer Science Association (1996)
Bergmans, L.M.: Towards detection of semantic conflicts between crosscutting concerns. In: [70], http://www.st.informatik.tu-darmstadt.de:8080/ecoop/workshops/16.phtml
Douence, R., Fradet, P., Südholt, M.: Composition, reuse and interaction analysis of stateful aspects. In: Lieberherr, K. (ed.) AOSD 2004 – 3rd International Conference on Aspect-Oriented Software Development, Lancaster, UK, University of Lancaster, pp. 141–150. ACM Press, New York (2004)
Tessier, F., Badri, M., Badri, L.: A model-based detection of conflicts between crosscutting concerns: Towards a formal approach. In: Huang, M., Mei, H., Zhao, J. (eds.) International Workshop on Aspect-Oriented Software Development (WAOSD 2004), Beijing University, China (2004)
Blair, L., Monga, M.: Reasoning on AspectJ programmes. In: [71], pp. 45–49
Prehofer, C.: Feature interactions in statechart diagrams or graphical composition of components. In: Kandé, M., Aldawud, O., Booch, G., Harrison, B. (eds.) Second International Workshop on Aspect-Oriented Modeling with UML (< <UML> >2002) (2002)
Pang, J., Blair, L.: An adaptive run time manager for the dynamic integration and interaction resolution of features. In: Akşit, M., Choukair, Z. (eds.) Proc. 2nd Int’l Workshop on Aspect Oriented Programming for Distributed Computing Systems (ICDCS 2002), vol. 2 (2002)
Clifton, C., Leavens, G.T.: Observers and assistants: A proposal for modular aspect-oriented reasoning. In: [72], pp. 33–44
Douence, R., Fradet, P., Südholt, M.: Detection and resolution of aspect interactions. In: Batory, D., Consel, C., Taha, W. (eds.) GPCE 2002. LNCS, vol. 2487, pp. 173–188. Springer, Heidelberg (2002)
Kienzle, J., Yu, Y., Xiong, J.: On composition and reuse of aspects. In: [73]
Skotiniotis, T., Lieberherr, K., Lorenz, D.: Aspect instances and their interactions. In: [73]
Sihman, M., Katz, S.: Model checking applications of aspects and superimpositions. In: [74]
Sihman, M., Katz, S.: A calculus of superimpositions for distributed systems. In: Kiczales, G. (ed.) Proc. 1st Int’ Conf. on Aspect-Oriented Software Development (AOSD 2002), pp. 28–40. ACM Press, New York (2002)
Störzer, M., Krinke, J.: Interference analysis for AspectJ. In: [74]
Störzer, M.: Analysis of AspectJ programs. In: [71], pp. 39–44
Störzer, M., Krinke, J., Breu, S.: Trace analysis for aspect application. In: [70], pp. 39–44, http://www.st.informatik.tu-darmstadt.de:8080/ecoop/workshops/16.phtml
Alexander, R.T., Bieman, J.M.: Challenges of aspect-oriented technology. In: Workshop on Software Quality, 24th Int’l Conf. Software Engineering (2002)
Clifton, C., Leavens, G.T.: Obliviousness, modular reasoning, and the behavioral subtyping analogy. In: [73]
Kienzle, J., Yu, Y., Xiong, J.: On composition and reuse of aspects. In: [74]
Krishnamurthi, S., Fisler, K., Greenberg, M.: Verifying aspect advice modularly. In: ACM SIGSOFT International Symposium on the Foundations of Software Engineering (2004)
Zhao, J.: Towards formal verification of aspectj programs. In: Proc. 14th Conference of Japan Society for Software Science and Technology (JSSST 2003), Aichi, Japan (2004)
Zhao, J., Rinard, M.: Pipa: A behavioral interface specification language for AspectJ. In: Pezzé, M. (ed.) FASE 2003. LNCS, vol. 2621, pp. 150–165. Springer, Heidelberg (2003)
Günter Kniesel, T.R.: A definition, overview and taxonomy of generic aspect languages. L’Objet, Special issue ’ Développement de logiciels par aspects 12(2-3) (2006)
Kniesel, G., Koch, H.: Static composition of refactorings. Science of Computer Programming (Special issue on Program Transformation) 52(1-3), 9–51 (2004), http://dx.doi.org/10.1016/j.scico.2004.03.002
Kniesel, G.: A Logic Foundation for Conditional Program Transformations. Technical report IAI-TR-2006-01, ISSN 0944-8535, CS Dept. III, University of Bonn, Germany (2006)
JTransformer homepage (2006), http://roots.iai.uni-bonn.de/research/jtransformer/
CTC project homepage (2006), http://roots.iai.uni-bonn.de/research/ctc/
Günter Kniesel, T.R.: Generic aspect languages - needs, options and challenges. In: Seinturier, L. (ed.) Journée Francophone sur le Développement de Logiciels par Aspects (2005)
Rho, T., Kniesel, G.: Uniform Genericity for Aspect Languages. Technical report IAI-TR-2004-4, ISSN 0944-8535, CS Dept. III, University of Bonn, Germany (2004)
Kniesel, G., Rho, T., Hanenberg, S.: Reusable Pattern Implementations Need Generic Aspects (2004), http://www.disi.unige.it/person/CazzolaW/RAM-SE04.html
Kniesel, G., Bardey, U.: An analysis of the correctness and completeness of aspect weaving. In: Proceedings of Working Conference on Reverse Engineering 2006 (WCRE 2006). IEEE, Los Alamitos (2006)
Hanenberg, S., Unland, R.: Parametric introductions. In: Akşit, M. (ed.) Proc. 2nd Int’ Conf. on Aspect-Oriented Software Development (AOSD 2003), pp. 80–89. ACM Press, New York (2003)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: Getting started with AspectJ. Comm. ACM 44(10), 59–65 (2001)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)
Bergmans, L., Aksit, M.: Principles and design rationale of composition filters. In: Filman, R., Elrad, T., Clarke, S., Aksit, M. (eds.) Aspect-Oriented Software Development. Addison-Wesley, Reading (2004)
Bergmans, L., Akşit, M.: Composing crosscutting concerns using composition filters. Comm. ACM 44(10), 51–57 (2001)
Aksit, M., Bergmans, L., Vural, S.: An object-oriented language-database integration model: The composition-filters approach. In: Lehrmann Madsen, O. (ed.) ECOOP 1992. LNCS, vol. 615, pp. 372–395. Springer, Heidelberg (1992)
Ossher, H., Tarr, P.: The shape of things to come: Using multi-dimensional separation of concerns with Hyper/J to (re)shape evolving software. Comm. ACM 44(10), 43–50 (2001)
Ossher, H., Tarr, P.: Multi-dimensional separation of concerns using hyperspaces. Technical Report 21452, IBM Research Report (1999)
Rajan, H., Sullivan, K.J.: Classpects: unifying aspect- and object-oriented language design. In: Inverardi, P., Jazayeri, M. (eds.) ICSE 2005. LNCS, vol. 4309, pp. 59–68. Springer, Heidelberg (2006)
Wand, M., Kiczales, G., Dutchyn, C.: A semantics for advice and dynamic join points in aspect-oriented programming. In: [72], pp. 1–8
Windeln, T.: LogicAJ - Eine Erweiterung von AspectJ um logische Meta-Programmierung. Diploma thesis, CS Dept. III, University of Bonn, Germany (2003)
Bardey, U.: Abhängigkeitsanalyse für Programm-Transformationen. Diploma thesis, CS Dept. III, University of Bonn, Germany (2003)
Pawlak, R., Noguera, C., Petitprez, N.: Spoon: Program analysis and transformation in java. Research Report 5901, INRIA (2006)
Douence, R., Fradet, P., Südholt, M.: Detection and resolution of aspect interactions. Technical report RR-4435, INRIA (2002)
Condor homepage (2006), http://roots.iai.uni-bonn.de/research/condor/
Mens, T., Kniesel, G., Runge, O.: Transformation dependency analysis - a comparison of two approaches. L’Objet, Special issue ’Langages et Modèls à Objets 2006 12(HS), 167–182 (2006)
Katz, S.: A survey of verification and static analysis for aspects. Technical Report AOSD-Europe Milestone M8.1, AOSD-Europe-Technion-1, Technion Israel (2005), http://www.aosd-europe.net/deliverables/m8-1ver.pdf
Lamping, J.: The interaction of components and aspects. In: Workshop on Aspect Oriented Programming (ECOOP 1997) (1997)
Ossher, H., Tarr, P.: Some micro-reuse challenges. In: Workshop on Advanced Separation of Concerns (ECOOP 2001) (2001)
Vollmann, D.: Visibility of join-points in AOP and implementation languages. In: Costanza, P., Kniesel, G., Mehner, K., Pulvermüller, E., Speck, A. (eds.) Second Workshop on Aspect-Oriented Software Development of the German Information Society, Institut für Informatik III, Universität Bonn (2002); Technical report IAI-TR-2002-1, ISSN 0944-8535
Havinga, W., Nagy, I., Bergmans, L., Aksit, M.: Detecting and resolving ambiguities caused by inter-dependent introductions. In: Proceedings of 5th International Conference on Aspect-Oriented Software Development, AOSD 2006. ACM, New York (2006)
Havinga, W., Nagy, I., Bergmans, L.: An analysis of aspect composition problems. In: Kniesel, G. (ed.) EWAS 2006 – Third European Workshop on Aspects in Software – Proceedings, University of Twente, Enschede, NL, August 31, 2006, pp. 1–8. Technical Report IAI-TR-2006-6, Computer Science Department III, University of Bonn (2006) ISSN 0944-8535
Kastenberg, H., Rensink, A.: Model checking dynamic states in groove. In: Valmari, A. (ed.) SPIN 2006. LNCS, vol. 3925, pp. 299–305. Springer, Heidelberg (2006)
Rensink, A.: The GROOVE simulator: A tool for state space generation. In: Pfalz, J., Nagl, M., Böhlen, B. (eds.) AGTIVE 2003. LNCS, vol. 3062, pp. 479–485. Springer, Heidelberg (2004)
Durr, P., Bergmans, L., Aksit, M.: Reasoning about behavoural conflicts between aspects. TOASD special issue on Aspect Dependencies and Interactions (submitted) (2006)
Durr, P., Bergmans, L., Aksit, M.: Reasoning about semantic conflicts between aspects. In: Chitchyan, R., Fabry, J., Bergmans, L., Nedos, A., Rensink, A. (eds.) Proceedings of ADI 2006 Aspect, Dependencies, and Interactions Workshop, pp. 10–18. Lancaster University (2006)
Nagy, I., Aksit, M., Bergmans, L.: Composition graphs, a foundation for reasoning about aspect-oriented composition. In: [74]
Nagy, I., Bergmans, L., Aksit, M.: Declarative aspect composition (2004)
Durr, P.: Detecting semantic conflicts between aspects. Master’s thesis, University of Twente (2004)
Goldman, M., Katz, S.: Modular generic verification of LTL properties for aspects. In: Mezini, M., Leavens, G.T., Lämmel, R., Clifton, C. (eds.) Foundations of Aspect-Oriented Languages (2006), http://www.cs.iastate.edu/~leavens/FOAL/index-2006.shtml
Katz, S.: Aspect categories and classes of temporal properties. In: Rashid, A., Aksit, M. (eds.) Transactions on Aspect-Oriented Software Development I. LNCS, vol. 3880, pp. 106–134. Springer, Heidelberg (2006)
Taentzer, G.: AGG: A graph transformation environment for modeling and validation of software. In: Pfaltz, J.L., Nagl, M., Böhlen, B. (eds.) AGTIVE 2003. LNCS, vol. 3062, pp. 446–453. Springer, Heidelberg (2004)
Kniesel, G., Costanza, P., Austermann, M.: JMangler - A Powerful Back-End for Aspect-Oriented Programming. In: Filman, R., Elrad, T., Clarke, S., Akşit, M. (eds.) Aspect-Oriented Software Development, vol. 7. Addison-Wesley, Reading (2004)
Hanenberg, S., Hirschfeld, R., Unland, R.: Morphing aspects: incompletely woven aspects and continuous weaving. In: AOSD 2004: Proceedings of the 3rd international conference on Aspect-oriented software development, pp. 46–55. ACM Press, New York (2004)
Hannemann, J., Chitchyan, R., Rashid, A. (eds.): Workshop on Analysis of Aspect-Oriented Software (AAOS) at ECOOP 2003 (2003), http://www.st.informatik.tu-darmstadt.de:8080/ecoop/workshops/16.phtml
Bachmendo, B., Hanenberg, S., Herrmann, S., Kniesel, G. (eds.): 3rd Workshop on Aspect-Oriented Software Development (AOSD-GI) of the SIG Object-Oriented Software Development. German Informatics Society (2003)
FOAL 2002: Foundations of Aspect-Oriented Langauges (AOSD 2002) (2002)
Bergmans, L., Brichau, J., Tarr, P., Ernst, E. (eds.): SPLAT: Software engineering Properties of Languages for Aspect Technologies (2003)
Leavens, G.T., Clifton, C. (eds.): FOAL: Foundations of Aspect-Oriented Languages (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Kniesel, G. (2009). Detection and Resolution of Weaving Interactions. In: Rashid, A., Ossher, H. (eds) Transactions on Aspect-Oriented Software Development V. Lecture Notes in Computer Science, vol 5490. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02059-9_5
Download citation
DOI: https://doi.org/10.1007/978-3-642-02059-9_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-02058-2
Online ISBN: 978-3-642-02059-9
eBook Packages: Computer ScienceComputer Science (R0)