Skip to main content

Part of the book series: Lecture Notes in Computer Science ((TAOSD,volume 5490))

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.

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 74.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 99.00
Price excludes VAT (USA)
  • Compact, lightweight 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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Filman, R.E., Friedman, D.P.: Aspect-oriented programming is quantification and obliviousness. In: Workshop on Advanced Separation of Concerns (OOPSLA 2000) (2000)

    Google Scholar 

  2. 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)

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  5. 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)

    Google Scholar 

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

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

    Google Scholar 

  8. 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)

    Google Scholar 

  9. Blair, L., Monga, M.: Reasoning on AspectJ programmes. In: [71], pp. 45–49

    Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    Google Scholar 

  12. Clifton, C., Leavens, G.T.: Observers and assistants: A proposal for modular aspect-oriented reasoning. In: [72], pp. 33–44

    Google Scholar 

  13. 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)

    Chapter  Google Scholar 

  14. Kienzle, J., Yu, Y., Xiong, J.: On composition and reuse of aspects. In: [73]

    Google Scholar 

  15. Skotiniotis, T., Lieberherr, K., Lorenz, D.: Aspect instances and their interactions. In: [73]

    Google Scholar 

  16. Sihman, M., Katz, S.: Model checking applications of aspects and superimpositions. In: [74]

    Google Scholar 

  17. 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)

    Chapter  Google Scholar 

  18. Störzer, M., Krinke, J.: Interference analysis for AspectJ. In: [74]

    Google Scholar 

  19. Störzer, M.: Analysis of AspectJ programs. In: [71], pp. 39–44

    Google Scholar 

  20. 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

  21. Alexander, R.T., Bieman, J.M.: Challenges of aspect-oriented technology. In: Workshop on Software Quality, 24th Int’l Conf. Software Engineering (2002)

    Google Scholar 

  22. Clifton, C., Leavens, G.T.: Obliviousness, modular reasoning, and the behavioral subtyping analogy. In: [73]

    Google Scholar 

  23. Kienzle, J., Yu, Y., Xiong, J.: On composition and reuse of aspects. In: [74]

    Google Scholar 

  24. Krishnamurthi, S., Fisler, K., Greenberg, M.: Verifying aspect advice modularly. In: ACM SIGSOFT International Symposium on the Foundations of Software Engineering (2004)

    Google Scholar 

  25. 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)

    Google Scholar 

  26. 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)

    Chapter  Google Scholar 

  27. 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)

    Google Scholar 

  28. 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

    Article  MathSciNet  MATH  Google Scholar 

  29. 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)

    Google Scholar 

  30. JTransformer homepage (2006), http://roots.iai.uni-bonn.de/research/jtransformer/

  31. CTC project homepage (2006), http://roots.iai.uni-bonn.de/research/ctc/

  32. 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)

    Google Scholar 

  33. 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)

    Google Scholar 

  34. Kniesel, G., Rho, T., Hanenberg, S.: Reusable Pattern Implementations Need Generic Aspects (2004), http://www.disi.unige.it/person/CazzolaW/RAM-SE04.html

  35. 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)

    Google Scholar 

  36. 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)

    Chapter  Google Scholar 

  37. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: Getting started with AspectJ. Comm. ACM 44(10), 59–65 (2001)

    Article  MATH  Google Scholar 

  38. 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)

    Chapter  Google Scholar 

  39. 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)

    Google Scholar 

  40. Bergmans, L., Akşit, M.: Composing crosscutting concerns using composition filters. Comm. ACM 44(10), 51–57 (2001)

    Article  Google Scholar 

  41. 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)

    Chapter  Google Scholar 

  42. 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)

    Article  Google Scholar 

  43. Ossher, H., Tarr, P.: Multi-dimensional separation of concerns using hyperspaces. Technical Report 21452, IBM Research Report (1999)

    Google Scholar 

  44. 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)

    Chapter  Google Scholar 

  45. Wand, M., Kiczales, G., Dutchyn, C.: A semantics for advice and dynamic join points in aspect-oriented programming. In: [72], pp. 1–8

    Google Scholar 

  46. Windeln, T.: LogicAJ - Eine Erweiterung von AspectJ um logische Meta-Programmierung. Diploma thesis, CS Dept. III, University of Bonn, Germany (2003)

    Google Scholar 

  47. Bardey, U.: Abhängigkeitsanalyse für Programm-Transformationen. Diploma thesis, CS Dept. III, University of Bonn, Germany (2003)

    Google Scholar 

  48. Pawlak, R., Noguera, C., Petitprez, N.: Spoon: Program analysis and transformation in java. Research Report 5901, INRIA (2006)

    Google Scholar 

  49. Douence, R., Fradet, P., Südholt, M.: Detection and resolution of aspect interactions. Technical report RR-4435, INRIA (2002)

    Google Scholar 

  50. Condor homepage (2006), http://roots.iai.uni-bonn.de/research/condor/

  51. 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)

    Google Scholar 

  52. 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

  53. Lamping, J.: The interaction of components and aspects. In: Workshop on Aspect Oriented Programming (ECOOP 1997) (1997)

    Google Scholar 

  54. Ossher, H., Tarr, P.: Some micro-reuse challenges. In: Workshop on Advanced Separation of Concerns (ECOOP 2001) (2001)

    Google Scholar 

  55. 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

    Google Scholar 

  56. 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)

    Google Scholar 

  57. 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

    Google Scholar 

  58. 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)

    Chapter  Google Scholar 

  59. 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)

    Chapter  Google Scholar 

  60. Durr, P., Bergmans, L., Aksit, M.: Reasoning about behavoural conflicts between aspects. TOASD special issue on Aspect Dependencies and Interactions (submitted) (2006)

    Google Scholar 

  61. 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)

    Google Scholar 

  62. Nagy, I., Aksit, M., Bergmans, L.: Composition graphs, a foundation for reasoning about aspect-oriented composition. In: [74]

    Google Scholar 

  63. Nagy, I., Bergmans, L., Aksit, M.: Declarative aspect composition (2004)

    Google Scholar 

  64. Durr, P.: Detecting semantic conflicts between aspects. Master’s thesis, University of Twente (2004)

    Google Scholar 

  65. 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

  66. 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)

    Chapter  Google Scholar 

  67. 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)

    Chapter  Google Scholar 

  68. 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)

    Google Scholar 

  69. 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)

    Google Scholar 

  70. 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

  71. 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)

    Google Scholar 

  72. FOAL 2002: Foundations of Aspect-Oriented Langauges (AOSD 2002) (2002)

    Google Scholar 

  73. Bergmans, L., Brichau, J., Tarr, P., Ernst, E. (eds.): SPLAT: Software engineering Properties of Languages for Aspect Technologies (2003)

    Google Scholar 

  74. Leavens, G.T., Clifton, C. (eds.): FOAL: Foundations of Aspect-Oriented Languages (2003)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

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

Publish with us

Policies and ethics