Advertisement

Detection and Resolution of Weaving Interactions

  • Günter Kniesel
Part of the Lecture Notes in Computer Science book series (LNCS, 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.

Keywords

Program Element Base Program Successful Substitution Semantic Interference Topological Sorting 
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.
    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. 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. 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. 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. 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. 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. 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. 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. 9.
    Blair, L., Monga, M.: Reasoning on AspectJ programmes. In: [71], pp. 45–49Google Scholar
  10. 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. 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. 12.
    Clifton, C., Leavens, G.T.: Observers and assistants: A proposal for modular aspect-oriented reasoning. In: [72], pp. 33–44Google Scholar
  13. 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)CrossRefGoogle Scholar
  14. 14.
    Kienzle, J., Yu, Y., Xiong, J.: On composition and reuse of aspects. In: [73]Google Scholar
  15. 15.
    Skotiniotis, T., Lieberherr, K., Lorenz, D.: Aspect instances and their interactions. In: [73]Google Scholar
  16. 16.
    Sihman, M., Katz, S.: Model checking applications of aspects and superimpositions. In: [74]Google Scholar
  17. 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)CrossRefGoogle Scholar
  18. 18.
    Störzer, M., Krinke, J.: Interference analysis for AspectJ. In: [74]Google Scholar
  19. 19.
    Störzer, M.: Analysis of AspectJ programs. In: [71], pp. 39–44Google Scholar
  20. 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. 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. 22.
    Clifton, C., Leavens, G.T.: Obliviousness, modular reasoning, and the behavioral subtyping analogy. In: [73]Google Scholar
  23. 23.
    Kienzle, J., Yu, Y., Xiong, J.: On composition and reuse of aspects. In: [74]Google Scholar
  24. 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. 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. 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)CrossRefGoogle Scholar
  27. 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. 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 MathSciNetCrossRefzbMATHGoogle Scholar
  29. 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. 30.
  31. 31.
    CTC project homepage (2006), http://roots.iai.uni-bonn.de/research/ctc/
  32. 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. 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. 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. 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. 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)CrossRefGoogle Scholar
  37. 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)CrossRefzbMATHGoogle Scholar
  38. 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)CrossRefGoogle Scholar
  39. 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. 40.
    Bergmans, L., Akşit, M.: Composing crosscutting concerns using composition filters. Comm. ACM 44(10), 51–57 (2001)CrossRefGoogle Scholar
  41. 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)CrossRefGoogle Scholar
  42. 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)CrossRefGoogle Scholar
  43. 43.
    Ossher, H., Tarr, P.: Multi-dimensional separation of concerns using hyperspaces. Technical Report 21452, IBM Research Report (1999)Google Scholar
  44. 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)CrossRefGoogle Scholar
  45. 45.
    Wand, M., Kiczales, G., Dutchyn, C.: A semantics for advice and dynamic join points in aspect-oriented programming. In: [72], pp. 1–8Google Scholar
  46. 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. 47.
    Bardey, U.: Abhängigkeitsanalyse für Programm-Transformationen. Diploma thesis, CS Dept. III, University of Bonn, Germany (2003)Google Scholar
  48. 48.
    Pawlak, R., Noguera, C., Petitprez, N.: Spoon: Program analysis and transformation in java. Research Report 5901, INRIA (2006)Google Scholar
  49. 49.
    Douence, R., Fradet, P., Südholt, M.: Detection and resolution of aspect interactions. Technical report RR-4435, INRIA (2002)Google Scholar
  50. 50.
  51. 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. 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. 53.
    Lamping, J.: The interaction of components and aspects. In: Workshop on Aspect Oriented Programming (ECOOP 1997) (1997)Google Scholar
  54. 54.
    Ossher, H., Tarr, P.: Some micro-reuse challenges. In: Workshop on Advanced Separation of Concerns (ECOOP 2001) (2001)Google Scholar
  55. 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-8535Google Scholar
  56. 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. 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-8535Google Scholar
  58. 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)CrossRefGoogle Scholar
  59. 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)CrossRefGoogle Scholar
  60. 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. 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. 62.
    Nagy, I., Aksit, M., Bergmans, L.: Composition graphs, a foundation for reasoning about aspect-oriented composition. In: [74]Google Scholar
  63. 63.
    Nagy, I., Bergmans, L., Aksit, M.: Declarative aspect composition (2004)Google Scholar
  64. 64.
    Durr, P.: Detecting semantic conflicts between aspects. Master’s thesis, University of Twente (2004)Google Scholar
  65. 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. 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)CrossRefGoogle Scholar
  67. 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)CrossRefGoogle Scholar
  68. 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. 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. 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. 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. 72.
    FOAL 2002: Foundations of Aspect-Oriented Langauges (AOSD 2002) (2002)Google Scholar
  73. 73.
    Bergmans, L., Brichau, J., Tarr, P., Ernst, E. (eds.): SPLAT: Software engineering Properties of Languages for Aspect Technologies (2003)Google Scholar
  74. 74.
    Leavens, G.T., Clifton, C. (eds.): FOAL: Foundations of Aspect-Oriented Languages (2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Günter Kniesel
    • 1
  1. 1.Universität Bonn, Institut für Informatik IIIBonnGermany

Personalised recommendations