Part of the book series:Lecture Notes in Computer Science ((LNPSE,volume 4902))
Included in the following conference series:
Abstract
In this paper we discuss an approach to support declarative reasoning over aspect-oriented (AO) programs, adopting AspectJ as a representative technology. The approach is based on the transformation of source code into a set of facts and rules, stored into a Prolog database. Declarative analysis allows us to extract complex information through its rich and expressive syntax. Our approach has two contributions. First, it aims to improve the comprehension of AspectJ programs. The type of knowledge provided is categorized in three main groups: i) general knowledge, ii) bad smells, and iii) quality metrics. The second contribution is the provision of dependency analysis of AspectJ programs. To that end, we identify dependencies in aspect-oriented programs, and translate them into Prolog rules. Expected beneficiaries of our approach include system maintainers who can obtain comprehension and perform dependency analysis through querying the Prolog database during the change planning stage of system evolution.
This is a preview of subscription content,log in via an institution to check access.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Eclipse website (last accessed: November 15, 2007),http://www.eclipse.org/
JTransformer Framework website (last accessed: November 15, 2007),http://roots.iai.uni-bonn.de/research/jtransformer/
Omondo website (last accessed: November 15, 2007),http://www.eclipsedownload.com/
Poseidon UML website (last accessed: November 15, 2007),http://jspwiki.org/wiki/PoseidonUML
Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhoták, J., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: abc: An extensible AspectJ compiler. In: Proceedings of the 4th International Conference on Aspect-Oriented Software Development (AOSD) (2005)
Avgustinov, P., Hajiyev, E., Ongkingco, N., de Moor, O., Sereni, D., Tibble, J., Verbaere, M.: Semantics of static pointcuts in AspectJ. In: Proceedings of the 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL) (2007)
Bennett, K.H., Rajlich, V.T.: Software maintenance and evolution: a roadmap. In: Proceedings of the International Conference on Software Engineering (ICSE) track on The Future of Software Engineering (2000)
Chen, Y.-F.R., Fowler, G.S., Koutsofios, E., Wallach, R.S.: Ciao: a graphical navigator for software and document repositories. In: Proceedings of the 11th International Conference on Software Maintenance (ICSM) (1995)
Falconer, H., Kelly, P.H.J., Ingram, D.M., Mellor, M.R., Field, T., Beckmann, O.: A declarative framework for analysis and optimization. In: Krishnamurthi, S., Odersky, M. (eds.) CC 2007. LNCS, vol. 4420, Springer, Heidelberg (2007)
Filman, R.E., Friedman, D.P.: Aspect-oriented programming is quantification and obliviousness. In: Proceedings of the OOPSLA Workshop on Advanced Separation of Concerns in Object-Oriented Systems (2000)
Hajiyev, E., Verbaere, M., de Moor, O.: CodeQuest: Scalable source code queries with Datalog. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, Springer, Heidelberg (2006)
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, Springer, Heidelberg (2001)
Kiczales, G., Lamping, J., Menhdhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, Springer, Heidelberg (1997)
Kienzle, J., Yu, Y., Xiong, J.: On composition and reuse of aspects. In: Proceedings of the AOSD Workshop on Foundations of Aspect-Oriented Languages (FOAL) (2003)
Kniesel, G., Hannemann, J., Rho, T.: A comparison of logic-based infrastructures for concern detection and extraction. In: Proceedings of the 3rd AOSD Workshop on Linking Aspect Technology and Evolution (LATE) (2007)
Monteiro, M.P., Fernandes, J.M.: Towards a catalog of aspect-oriented refactorings. In: Proceedings of the 4th International Conference on Aspect-Oriented Software Development (AOSD) (2005)
Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Communications of the ACM 15(12), 1053–1058 (1972)
Pfeiffer, J.-H., Gurd, J.R.: Visualisation-based tool support for the development of aspect-oriented programs. In: Proceedings of the 5th International Conference on Aspect-Oriented Software Development (AOSD) (2006)
Pfeiffer, J.-H., Sardos, A., Gurd, J.R.: Complex code querying and navigation for AspectJ. In: Proceedings of the OOPSLA Workshop on Eclipse Technology eXchange (ETX) (2005)
Richner, T., Ducasse, S., Wuyts, R.: Understanding object-oriented programs with declarative event analysis. In: Proceedings of the ECOOP Workshop on Experiences in Object-Oriented Re-Engineering (1998)
Störzer, M., Koppen, C.: CDiff: Attacking the fragile pointcut problem. In: Proceedings of the Interactive Workshop on Aspects in Software (EIWAS) (2004)
The AspectJ Team: The AspectJ programming guide (last accessed: November 15, 2007),http://www.eclipse.org/aspectj/doc/released/progguide/index.html
De Volder, K.: JQuery: A generic code browser with a declarative configuration language. In: Van Hentenryck, P. (ed.) PADL 2006. LNCS, vol. 3819, Springer, Heidelberg (2005)
Scitools website (last accessed: November 15, 2007),http://www.scitools.com/products/understand/cpp/product.php
Wuyts, R.: Declarative reasoning about the structure of object-oriented systems. In: Proceedings of the 26th International Conference on Technologies of Object-Oriented Languages and Systems (TOOLS USA) (1998)
Zhao, J.: Measuring coupling in aspect-oriented systems. In: Proceedings of the 10th International Software Metrics Symposium (Metrics) session on Late Breaking Papers (2004)
Author information
Authors and Affiliations
Department of Computer Science and Software Engineering, Concordia University, Montreal, Quebec, H3G 1M8, Canada
Laleh Mousavi Eshkevari, Venera Arnaoudova & Constantinos Constantinides
- Laleh Mousavi Eshkevari
You can also search for this author inPubMed Google Scholar
- Venera Arnaoudova
You can also search for this author inPubMed Google Scholar
- Constantinos Constantinides
You can also search for this author inPubMed Google Scholar
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Mousavi Eshkevari, L., Arnaoudova, V., Constantinides, C. (2007). Comprehension and Dependency Analysis of Aspect-Oriented Programs through Declarative Reasoning. In: Hudak, P., Warren, D.S. (eds) Practical Aspects of Declarative Languages. PADL 2008. Lecture Notes in Computer Science, vol 4902. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-77442-6_4
Download citation
Publisher Name:Springer, Berlin, Heidelberg
Print ISBN:978-3-540-77441-9
Online ISBN:978-3-540-77442-6
eBook Packages:Computer ScienceComputer Science (R0)
Share this paper
Anyone you share the following link with will be able to read this content:
Sorry, a shareable link is not currently available for this article.
Provided by the Springer Nature SharedIt content-sharing initiative