Skip to main content

A Fine-Grained, Customizable Debugger for Aspect-Oriented Programming

  • Chapter
  • 455 Accesses

Part of the book series: Lecture Notes in Computer Science ((TAOSD,volume 7800))

Abstract

To increase modularity, many aspect-oriented programming languages provide a mechanism based on implicit invocation: An aspect can influence runtime behavior of other modules without the need that these modules refer to the aspect. Recent studies show that a significant part of reported bugs in aspect-oriented programs are caused exactly by this implicitness. These bugs are difficult to detect, because aspect-oriented source code elements and their locations are transformed or even lost after compilation. We investigate four dedicated fault models and identify 11 tasks that a debugger should be able to perform for detecting aspect-orientation-specific faults. We show that existing debuggers are not powerful enough to support all identified tasks, because the aspect-oriented abstractions are lost after compilation.

This paper describes the design and implementation of a debugger for aspect-oriented languages using a dedicated intermediate representation preserving the abstraction level of aspect-oriented source code. This is based on a model of the more general formalism of advanced dispatching. Based on this model, we implement a user interface with functionalities supporting the identified tasks, such as visualizing pointcut evaluation and program composition. Due to the generality of our intermediate representation, our debugger can be used for a wide range of programming languages. To account for the syntactic differences among these languages, we allow language designers to customize the textual representations on the user interface.

This is a preview of subscription content, log in via an institution.

Buying options

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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. JBoss AOP (2008), http://www.jboss.org/jbossaop

  2. Alexander, R.T., Bieman, J.M., Andrews, A.A.: Towards the Systematic Testing of Aspect-Oriented Programs. Technical report (2004)

    Google Scholar 

  3. Apter, Y., Lorenz, D.H., Mishali, O.: A Debug Interface for Debugging Multiple Domain Specific Aspect Languages. In: Proceedings of the 11th Annual International Conference on Aspect-Oriented Software Development, AOSD 2012, pp. 47–58. ACM, New York (2012)

    Chapter  Google Scholar 

  4. Aracic, I., Gasiunas, V., Mezini, M., Ostermann, K.: An Overview of CaesarJ. In: Rashid, A., Akşit, M. (eds.) Transactions on AOSD I. LNCS, vol. 3880, pp. 135–173. Springer, Heidelberg (2006)

    Google Scholar 

  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 AOSD, pp. 87–98. ACM, New York (2005)

    Google Scholar 

  6. Baekken, J.S.: A Fault Model for Pointcuts and Advice in AspectJ Programs. Master’s thesis, School of Electronical Engineering and Computer Science, Washington State University (2006)

    Google Scholar 

  7. Bockisch, C., Haupt, M., Mezini, M., Mitschke, R.: Envelope-Based Weaving for Faster Aspect Compilers. In: NODe/GSEM. LNI, vol. 69, pp. 3–18. GI (2005)

    Google Scholar 

  8. Bockisch, C., Malakuti, S., Akşit, M., Katz, S.: Making Aspects Natural: Events and Composition. In: Proceedings of the 10th AOSD, pp. 285–300. ACM, New York (2011)

    Google Scholar 

  9. Bockisch, C., Sewe, A., Mezini, M., Akşit, M.: An Overview of ALIA4J: An Execution Model for Advanced-Dispatching Languages. In: Bishop, J., Vallecillo, A. (eds.) TOOLS 2011. LNCS, vol. 6705, pp. 131–146. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  10. Bockisch, C., Sewe, A., Yin, H., Mezini, M., Aksit, M.: An In-Depth Look at ALIA4J. Journal of Object Technology 11(1), 1–28 (2012)

    Article  Google Scholar 

  11. Bruls, M., Huizing, K., van Wijk, J.: Squarified Treemaps. In: Proceedings of the Joint Eurographics and IEEE TCVG Symposium on Visualization, pp. 33–42. Press (1999)

    Google Scholar 

  12. Bryant, R.E.: Graph-Based Algorithms for Boolean Function Manipulation. IEEE Trans. Comput. 35, 677–691 (1986)

    Article  MATH  Google Scholar 

  13. Clifton, C., Millstein, T., Leavens, G.T., Chambers, C.: MultiJava: Design Rationale, Compiler Implementation, and Applications. ACM Transactions on Programming Languages and Systems 28(3) (2006)

    Google Scholar 

  14. Coelho, W., Murphy, G.C.: Presenting Crosscutting Structure with Active Models. In: Proceedings of the 5th AOSD, pp. 158–168. ACM, New York (2006)

    Chapter  Google Scholar 

  15. De Borger, W., Lagaisse, B., Joosen, W.: A Generic and Reflective Debugging Architecture to Support Runtime Visibility and Traceability of Aspects. In: Proceedings of the 8th AOSD, pp. 173–184. ACM, New York (2009)

    Chapter  Google Scholar 

  16. Eaddy, M., Aho, A., Hu, W., McDonald, P., Burger, J.: Debugging Aspect-Enabled Programs. In: Lumpe, M., Vanderperren, W. (eds.) SC 2007. LNCS, vol. 4829, pp. 200–215. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  17. Fabry, J., Kellens, A., Ducasse, S.: AspectMaps: A Scalable Visualization of Join Point Shadows. In: ICPC, pp. 121–130 (2011)

    Google Scholar 

  18. Ferrari, F., Burrows, R., Lemos, O., Garcia, A., Figueiredo, E., Cacho, N., Lopes, F., Temudo, N., Silva, L., Soares, S., Rashid, A., Masiero, P., Batista, T., Maldonado, J.: An Exploratory Study of Fault-Proneness in Evolving Aspect-Oriented Programs. In: Proceedings of the 32nd ICSE, vol. 1, pp. 65–74. ACM, New York (2010)

    Google Scholar 

  19. Ferrari, F.C., Maldonado, J.C., Rashid, A.: Mutation Testing for Aspect-Oriented Programs. In: Proceedings of the 2008 ICST, pp. 52–61. IEEE Computer Society, Washington, DC (2008)

    Google Scholar 

  20. Heer, J., Card, S.K., Landay, J.A.: prefuse: a toolkit for interactive information visualization. In: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, CHI 2005, pp. 421–430. ACM, New York (2005)

    Google Scholar 

  21. Herrmann, S., Hundt, C., Mosconi, M., Pfeiffer, C., Wloka, J.: Das Object Teams Development Tooling. Softwaretechnik-Trends 26(4), 42–43 (2006)

    Google Scholar 

  22. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An Overview of AspectJ. In: Lindskov Knudsen, J. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  23. Ceccato, F.M., Tonella, P.: Is AOP code easier to test than OOP code? In: Workshop on Testing Aspect-Oriented Programs (2005)

    Google Scholar 

  24. Millstein, T., Frost, C., Ryder, J., Warth, A.: Expressive and Modular Predicate Dispatch for Java. ACM Trans. Program. Lang. Syst. 31(2), 7:1–7:54 (2009)

    Article  Google Scholar 

  25. Pfeiffer, J., Gurd, J.R.: Visualisation-Based Tool Support for the Development of Aspect-Oriented Programs. In: Proceedings of the 5th AOSD, pp. 146–157. ACM, New York (2006)

    Chapter  Google Scholar 

  26. Pothier, G., Tanter, E.: Extending Omniscient Debugging to Support Aspect-Oriented Programming. In: Proceedings of SAC, pp. 266–270. ACM, New York (2008)

    Google Scholar 

  27. Schafer, T., Mezini, M.: Towards More Flexibility in Software Visualization Tools. In: Proceedings of the 3rd IEEE International Workshop on Visualizing Software for Understanding and Analysis, VISSOFT 2005, p. 20. IEEE Computer Society, Washington, DC (2005)

    Google Scholar 

  28. Sewe, A., Bockisch, C., Mezini, M.: Redundancy-Free Residual Dispatch: Using Ordered Binary Decision Diagrams for Efficient Dispatch. In: Proceedings of the 7th Workshop on FOAL, pp. 1–7. ACM, New York (2008)

    Google Scholar 

  29. Suvée, D., Vanderperren, W., Jonckers, V.: JAsCo: An Aspect-Oriented Approach Tailored for Component Based Software Development. In: Proceedings of the 2nd AOSD, pp. 21–29. ACM, New York (2003)

    Google Scholar 

  30. Wulf, V., Pipek, V., Won, M.: Component-based tailorability: Enabling highly flexible software applications. Int. J. Hum.-Comput. Stud. 66(1), 1–22 (2008)

    Article  Google Scholar 

  31. Yin, H., Bockisch, C., Aksit, M.: A Fine-Grained Debugger for Aspect-Oriented Programming. In: Proceedings of the 11th Annual International Conference on Aspect-Oriented Software Development, AOSD 2012, pp. 59–70. ACM, New York (2012)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Yin, H., Bockisch, C., Akşit, M. (2013). A Fine-Grained, Customizable Debugger for Aspect-Oriented Programming. In: Leavens, G.T., Chiba, S., Tanter, É. (eds) Transactions on Aspect-Oriented Software Development X. Lecture Notes in Computer Science, vol 7800. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-36964-3_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-36964-3_1

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-36963-6

  • Online ISBN: 978-3-642-36964-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics