skip to main content
10.1145/1353482.1353488acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

AJANA: a general framework for source-code-level interprocedural dataflow analysis of AspectJ software

Published:31 March 2008Publication History

ABSTRACT

Aspect-oriented software presents new challenges for the designers of static analyses. Our work aims to establish systematic foundations for dataflow analysis of AspectJ software. We propose a control- and data-flow program representation for AspectJ programs, as basis for subsequent interprocedural dataflow analyses. The representation is built at the source code level and captures the semantic intricacies of various pointcut designators, multiple applicable advices per joint point, dynamic advices, and general flow of data to, from, and between advices. We also propose two dataflow analyses for AspectJ software: (1) a novel object effect analysis based on a flow- and context-sensitive must-alias analysis, and (2) a dependence analysis used for constructing the system dependence graph for slicing, refactoring, change impact analysis, etc. Both analyses are representative of a general category of dataflow analyses referred to as interprocedural distributed environment (IDE) problems. The two analyses are built on top of the proposed representation, and take into account the complex flow of control and data due to aspect-oriented features. We present a study of the proposed techniques on 37 program versions, using our Ajana analysis framework which is based on the abc AspectJ compiler. The results show that the representation can be built efficiently, that it is superior to an approach based on the woven bytecode, and that it enables analyses that are both faster and more precise. These findings strongly indicate that the proposed approach is a promising candidate for a foundation upon which various inter-procedural analyses for AspectJ can be designed and built.

References

  1. AspectBench Compiler. abc.comlab.ox.ac.uk.Google ScholarGoogle Scholar
  2. AspectJ Compiler. www.aspectj.org.Google ScholarGoogle Scholar
  3. P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, J. Lhoták, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. Building the abc AspectJ compiler with Polyglot and Soot. Technical Report abc-2004-4, abc Group, Dec. 2004.Google ScholarGoogle Scholar
  4. P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, J. Lhoták, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. abc: An extensible AspectJ compiler. In AOSD, pages 87--98, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, J. Lhoták, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. Optimising AspectJ. In PLDI, pages 117--128, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. P. Avgustinov, E. Hajiyev, N. Ongkingco, O. de Moor, D. Sereni, J. Tibble, and M. Verbaere. Semantics of static pointcuts in AspectJ. In POPL, pages 11--23, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. Callahan. The program summary graph and flow-sensitive interprocedural data flow analysis. In PLDI, pages 47--56, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. S. Cherem, L. Princehouse, and R. Rugina. Practical memory leak detection using guarded value-flow analysis. In PLDI, pages 480--491, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. M. Das, S. Lerner, and M. Seigle. ESP: Path-sensitive program verification in polynomial time. In PLDI, pages 57--68, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. R. DeLine and M. Fähndrich. Typestates for objects. In ECOOP, LNCS 3086, pages 465--490, 2004.Google ScholarGoogle Scholar
  11. N. Dor, S. Adams, M. Das, and Z. Yang. Software validation via scalable path-sensitive value flow analysis. In ISSTA, pages 12--22, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. B. Dufour, C. Goard, L. Hendren, O. de Moor, G. Sittampalam, and C. Verbrugge. Measuring the dynamic behaviour of AspectJ programs. In OOPSLA, pages 150--169, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. Fink, E. Yahav, N. Dor, G. Ramalingam, and E. Geay. Effective typestate verification in the presence of aliasing. In ISSTA, pages 133--144, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. D. Grove and C. Chambers. A framework for call graph construction algorithms. TOPLAS, 23(6):685--746, Nov. 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. N. Heintze. Set Based Program Analysis. PhD thesis, Carnegie Mellon University, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. S. Horwitz, T. Reps, and D. Binkley. Interprocedural slicing using dependence graphs. TOPLAS, 12(1):26--60, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. T. Ishio, S. Kusumoto, and K. Inoue. Debugging support for aspect-oriented program based on program slicing and call graph. In ICSM, pages 178--187, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. An overview of AspectJ. In ECOOP, LNCS 2072, pages 327--353, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. L. Larsen and M. J. Harrold. Slicing object-oriented software. In ICSE, pages 495--505, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. R. Manevich, M. Sridharan, S. Adams, M. Das, and Z. Yang. PSE: Explaining program failures via postmortem static analysis. In FSE, pages 63--72, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. T. Marlowe and B. G. Ryder. Properties of data flow frameworks: A unified model. Acta Informatica, 28:121--163, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. T. Reps, M. Sagiv, and S. Horwitz. Interprocedural dataflow analysis via graph reachability. Technical Report DIKU-TR94-14, University of Copenhagen, Apr. 1994.Google ScholarGoogle Scholar
  23. M. Rinard, A. Salcianu, and S. Bugrara. A classification system and analysis for aspect-oriented programs. In FSE, pages 147--158, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. A. Rountev and B. H. Connell. Object naming analysis for reverse-engineered sequence diagrams. In ICSE, pages 254--263, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. M. Sagiv, T. Reps, and S. Horwitz. Precise interprocedural dataflow analysis with applications to constant propagation. Theoretical Computer Science, 167(1--2):131--170, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. M. Sharir and A. Pnueli. Two approaches to interprocedural data flow analysis. In S. Muchnick and N. Jones, editors, Program Flow Analysis: Theory and Applications, pages 189--234. Prentice Hall, 1981.Google ScholarGoogle Scholar
  27. S. Sinha, M. J. Harrold, and G. Rothermel. System-dependence-graph-based slicing of programs with arbitrary interprocedural control flow. In ICSE, pages 432--441, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. http://www.sable.mcgill.ca/soot.Google ScholarGoogle Scholar
  29. F. Tip. A survey of program slicing techniques. Journal of Programming Languages, 3:121--189, 1995.Google ScholarGoogle Scholar
  30. F. Tip and J. Palsberg. Scalable propagation-based call graph construction algorithms. In OOPSLA, pages 281--293, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. J. Whaley and M. Rinard. Compositional pointer and escape analysis for Java programs. In OOPSLA, pages 187--206, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. T. Xie and J. Zhao. A framework and tool supports for generating test inputs of AspectJ programs. In AOSD, pages 190--201, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. G. Xu and A. Rountev. Regression test selection for AspectJ software. In ICSE, pages 65--74, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. J. Zhao. Change impact analysis for aspect-oriented software evolution. In International Workshop on Principles of Software Evolution, pages 108--112, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. J. Zhao. Slicing aspect-oriented software. In IEEE International Workshop on Program Comprehension, pages 251--260, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. J. Zhao. Data-flow-based unit testing of aspect-oriented programs. In International Computer Software and Applications Conference, page 188, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. J. Zhao and M. Rinard. System dependence graph construction for aspect-oriented programs. In MIT-LCS-TR-891, 2003.Google ScholarGoogle Scholar

Index Terms

  1. AJANA: a general framework for source-code-level interprocedural dataflow analysis of AspectJ software

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Other conferences
        AOSD '08: Proceedings of the 7th international conference on Aspect-oriented software development
        March 2008
        212 pages
        ISBN:9781605580449
        DOI:10.1145/1353482
        • Conference Chair:
        • Theo D'Hondt

        Copyright © 2008 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 31 March 2008

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate41of139submissions,29%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader