Skip to main content

Comprehension and Dependency Analysis of Aspect-Oriented Programs through Declarative Reasoning

  • Conference paper
Practical Aspects of Declarative Languages (PADL 2008)

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.

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 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
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. Eclipse website (last accessed: November 15, 2007), http://www.eclipse.org/

  2. JTransformer Framework website (last accessed: November 15, 2007), http://roots.iai.uni-bonn.de/research/jtransformer/

  3. Omondo website (last accessed: November 15, 2007), http://www.eclipsedownload.com/

  4. Poseidon UML website (last accessed: November 15, 2007), http://jspwiki.org/wiki/PoseidonUML

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  17. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Communications of the ACM 15(12), 1053–1058 (1972)

    Article  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  21. Störzer, M., Koppen, C.: CDiff: Attacking the fragile pointcut problem. In: Proceedings of the Interactive Workshop on Aspects in Software (EIWAS) (2004)

    Google Scholar 

  22. The AspectJ Team: The AspectJ programming guide (last accessed: November 15, 2007), http://www.eclipse.org/aspectj/doc/released/progguide/index.html

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

    Chapter  Google Scholar 

  24. Scitools website (last accessed: November 15, 2007), http://www.scitools.com/products/understand/cpp/product.php

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

    Google Scholar 

  26. Zhao, J.: Measuring coupling in aspect-oriented systems. In: Proceedings of the 10th International Software Metrics Symposium (Metrics) session on Late Breaking Papers (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Paul Hudak David S. Warren

Rights and permissions

Reprints 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

  • DOI: https://doi.org/10.1007/978-3-540-77442-6_4

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

Publish with us

Policies and ethics