Abstract
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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Akşit, M. (ed.): Proc. 2nd Int’ Conf. on Aspect-Oriented Software Development (AOSD-2003). ACM Press, New York (2001)
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)
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)
Brichau, J., De Meuter, W., De Volder, K.: Jumping aspects. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850. Springer, Heidelberg (2000)
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)
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)
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)
De Win, B., Joosen, W., Piessens, F.: Developing secure applications through aspect-oriented programming, pp. 633–650. Addison-Wesley, Boston (2005)
D’Hondt, M., Jonckers, V.: Hybrid aspects for weaving object-oriented functionality and rule-based knowledge. In: Lieberherr [23], pp. 132–140
Douence, R., Fradet, P., Südholt, M.: Composition, reuse and interaction analysis of stateful aspects. In: Lieberherr [23], pp. 141–150
Gybels, K., Brichau, J.: Arranging language features for pattern-based crosscuts. In: Akşit (ed.) [1], pp. 60–69
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)
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)
Hannemann, J.: The Aspect Mining Tool web site, http://www.cs.ubc.ca/labs/spl/projects/amt.html
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)
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)
Janzen, D., De Volder, K.: Navigating and querying code without getting lost. In: Akşit (ed.) [1], pp. 178–187
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)
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)
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)
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)
Laddad, R.: Aspect-oriented refactoring (December 2003)
Lieberherr, K. (ed.): Proc. 3rd Int’ Conf. on Aspect-Oriented Software Development (AOSD-2004). ACM Press, New York (2004)
Lieberherr, K.J.: Adaptive Object-Oriented Software: the Demeter Method with Propagation Patterns. PWS Publishing Company, Boston (1996)
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)
Monteiro, M.P.: Catalogue of refactorings for aspectj. Technical Report UM-DI-GECSD-200401, Universidade Do Minho (2004)
Muggleton, S., Feng, C.: Efficient induction in logic programs. In: Muggleton, S. (ed.) Inductive Logic Programming, pp. 281–298. Academic Press, London (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)
Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Comm. ACM 15(12), 1053–1058 (1972)
Quinlan, J.R.: Learning logical definitions from relations. Machine Learning 5(3), 239–266 (1990)
Quinlan, R.: Qfoil: the reference foil implementation (2005), Home page at: http://www.rulequest.com/Personal/
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Braem, M., Gybels, K., Kellens, A., Vanderperren, W. (2006). Automated Pattern-Based Pointcut Generation. In: Löwe, W., Südholt, M. (eds) Software Composition. SC 2006. Lecture Notes in Computer Science, vol 4089. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11821946_5
Download citation
DOI: https://doi.org/10.1007/11821946_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-37657-6
Online ISBN: 978-3-540-37659-0
eBook Packages: Computer ScienceComputer Science (R0)