Automated Pattern-Based Pointcut Generation

  • Mathieu Braem
  • Kris Gybels
  • Andy Kellens
  • Wim Vanderperren
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4089)


One of the main problems in Aspect-Oriented Software Development is the so-called fragile pointcut problem. Uncovering and specifying a good robust pointcut is not an easy task. In this paper we propose to use Inductive Logic Programming, and more specifically the FOIL algorithm, to automatically identify intensional (or “pattern-based”) pointcuts. We present the tool chain we implemented to induce a pointcut given a set of identified joinpoints. Using several realistic medium-scale experiments, we show that our approach is able to automatically induce robust pointcuts for a set of joinpoints.


Inductive Logic Inductive Logic Programming Horn Clause Point Class Instance Variable 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Akşit, M. (ed.): Proc. 2nd Int’ Conf. on Aspect-Oriented Software Development (AOSD-2003). ACM Press, New York (2001)Google Scholar
  2. 2.
    Binkley, D., Ceccato, M., Harman, M., Ricca, F., Tonella, P.: Automated refactoring of object oriented code into aspects. In: 21st IEEE International Conference on Software Maintenance (ICSM) (2005)Google Scholar
  3. 3.
    Breu, S., Krinke, J.: Aspect mining using event traces. In: 19th International Conference on Automated Software Engineering, California, pp. 310–315. IEEE Computer Society Press, Los Alamitos (2004)CrossRefGoogle Scholar
  4. 4.
    Brichau, J., De Meuter, W., De Volder, K.: Jumping aspects. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850. Springer, Heidelberg (2000)Google Scholar
  5. 5.
    Bruntink, M., van Deursen, A., van Engelen, R., Tourwé, T.: An evaluation of clone detection techniques for identifying crosscutting concerns. In: Proceedings of the IEEE International Conference on Software Maintenance (ICSM). IEEE Computer Society Press, Los Alamitos (2004)Google Scholar
  6. 6.
    Ceccato, M., Marin, M., Mens, K., Moonen, L., Tonello, P., Tourwé, T.: A qualitative comparison of three aspect mining techniques. In: Proceedings of the 13th International Workshop on Program Comprehension (IWPC 2005), pp. 13–22. IEEE Computer Society Press, Los Alamitos (2005)CrossRefGoogle Scholar
  7. 7.
    Chiba, S., Nishizawa, M.: An Easy-to-Use Toolkit for Efficient Java Bytecode Translators. In: Pfenning, F., Smaragdakis, Y. (eds.) GPCE 2003. LNCS, vol. 2830, pp. 364–376. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  8. 8.
    De Win, B., Joosen, W., Piessens, F.: Developing secure applications through aspect-oriented programming, pp. 633–650. Addison-Wesley, Boston (2005)Google Scholar
  9. 9.
    D’Hondt, M., Jonckers, V.: Hybrid aspects for weaving object-oriented functionality and rule-based knowledge. In: Lieberherr [23], pp. 132–140Google Scholar
  10. 10.
    Douence, R., Fradet, P., Südholt, M.: Composition, reuse and interaction analysis of stateful aspects. In: Lieberherr [23], pp. 141–150Google Scholar
  11. 11.
    Gybels, K., Brichau, J.: Arranging language features for pattern-based crosscuts. In: Akşit (ed.) [1], pp. 60–69Google Scholar
  12. 12.
    Gybels, K., Kellens, A.: An experiment in using inductive logic programming to uncover pointcuts. In: First European Interactive Workshop on Aspects in Software (September 2004)Google Scholar
  13. 13.
    Hanenberg, S., Oberschulte, C., Unland, R.: Refactoring of aspect-oriented software. In: 4th Annual International Conference on Object-Oriented and Internet-based Technologies, Concepts, and Applications for a Networked World (2003)Google Scholar
  14. 14.
    Hannemann, J.: The Aspect Mining Tool web site,
  15. 15.
    Hannemann, J., Murphy, G., Kiczales, G.: Role-based refactoring of crosscutting concerns. In: Tarr, P. (ed.) Proc. 4rd Int’ Conf. on Aspect-Oriented Software Development AOSD-2005, March, pp. 135–146. ACM Press, New York (2005)CrossRefGoogle Scholar
  16. 16.
    Harrison, W., Ossher, H., Sutton Jr, S.M., Tarr, P.: Concern modeling in the concern manipulation environment. IBM Research Report RC23344, IBM Thomas J. Watson Research Center, Yorktown Heights, NY (September 2004)Google Scholar
  17. 17.
    Janzen, D., De Volder, K.: Navigating and querying code without getting lost. In: Akşit (ed.) [1], pp. 178–187Google Scholar
  18. 18.
    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
  19. 19.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  20. 20.
    Kiczales, G., Mezini, M.: Separation of concerns with procedures, annotations, advice and pointcuts. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 195–213. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  21. 21.
    Koppen, C., Störzer, M.: PCDiff: Attacking the fragile pointcut problem. In: Gybels, K., Hanenberg, S., Herrmann, S., Wloka, J. (eds.) European Interactive Workshop on Aspects in Software (EIWAS) (September 2004)Google Scholar
  22. 22.
    Laddad, R.: Aspect-oriented refactoring (December 2003)Google Scholar
  23. 23.
    Lieberherr, K. (ed.): Proc. 3rd Int’ Conf. on Aspect-Oriented Software Development (AOSD-2004). ACM Press, New York (2004)Google Scholar
  24. 24.
    Lieberherr, K.J.: Adaptive Object-Oriented Software: the Demeter Method with Propagation Patterns. PWS Publishing Company, Boston (1996)Google Scholar
  25. 25.
    Lieberherr, K.J., Palm, J., Sundaram, R.: Expressiveness and complexity of crosscut languages. In: Leavens, G.T., Clifton, C., Lämmel, R. (eds.) Foundations of Aspect-Oriented Languages (March 2005)Google Scholar
  26. 26.
    Monteiro, M.P.: Catalogue of refactorings for aspectj. Technical Report UM-DI-GECSD-200401, Universidade Do Minho (2004)Google Scholar
  27. 27.
    Muggleton, S., Feng, C.: Efficient induction in logic programs. In: Muggleton, S. (ed.) Inductive Logic Programming, pp. 281–298. Academic Press, London (1992)Google Scholar
  28. 28.
    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
  29. 29.
    Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Comm. ACM 15(12), 1053–1058 (1972)CrossRefGoogle Scholar
  30. 30.
    Quinlan, J.R.: Learning logical definitions from relations. Machine Learning 5(3), 239–266 (1990)Google Scholar
  31. 31.
    Quinlan, R.: Qfoil: the reference foil implementation (2005), Home page at:
  32. 32.
    Robillard, M.P., Murphy, G.C.: Automatically inferring concern code from program investigation activities. In: Proceedings of Automated Software Engineering (ASE) 2003, pp. 225–235. IEEE Computer Society Press, Los Alamitos (2003)CrossRefGoogle Scholar
  33. 33.
    Vanderperren, W., Suvée, D., Jonckers, V.: Combining AOSD and CBSD in PacoSuite through invasive composition adapters and JAsCo. In: Net.ObjectDays 2003, pp. 36–50 (September 2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Mathieu Braem
    • 1
  • Kris Gybels
    • 1
  • Andy Kellens
    • 1
  • Wim Vanderperren
    • 1
  1. 1.Vrije Universiteit BrusselBrusselsBelgium

Personalised recommendations