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 2008 Publication 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.
[2]
AspectJ Compiler. www.aspectj.org.
[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.
[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.
[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.
[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.
[7]
D. Callahan. The program summary graph and flow-sensitive interprocedural data flow analysis. In PLDI, pages 47--56, 1988.
[8]
S. Cherem, L. Princehouse, and R. Rugina. Practical memory leak detection using guarded value-flow analysis. In PLDI, pages 480--491, 2007.
[9]
M. Das, S. Lerner, and M. Seigle. ESP: Path-sensitive program verification in polynomial time. In PLDI, pages 57--68, 2002.
[10]
R. DeLine and M. Fähndrich. Typestates for objects. In ECOOP, LNCS 3086, pages 465--490, 2004.
[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.
[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.
[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.
[14]
D. Grove and C. Chambers. A framework for call graph construction algorithms. TOPLAS, 23(6):685--746, Nov. 2001.
[15]
N. Heintze. Set Based Program Analysis. PhD thesis, Carnegie Mellon University, 1992.
[16]
S. Horwitz, T. Reps, and D. Binkley. Interprocedural slicing using dependence graphs. TOPLAS, 12(1):26--60, 1990.
[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.
[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.
[19]
L. Larsen and M. J. Harrold. Slicing object-oriented software. In ICSE, pages 495--505, 1996.
[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.
[21]
T. Marlowe and B. G. Ryder. Properties of data flow frameworks: A unified model. Acta Informatica, 28:121--163, 1990.
[22]
T. Reps, M. Sagiv, and S. Horwitz. Interprocedural dataflow analysis via graph reachability. Technical Report DIKU-TR94-14, University of Copenhagen, Apr. 1994.
[23]
M. Rinard, A. Salcianu, and S. Bugrara. A classification system and analysis for aspect-oriented programs. In FSE, pages 147--158, 2004.
[24]
A. Rountev and B. H. Connell. Object naming analysis for reverse-engineered sequence diagrams. In ICSE, pages 254--263, 2005.
[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.
[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.
[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.
[28]
http://www.sable.mcgill.ca/soot.
[29]
F. Tip. A survey of program slicing techniques. Journal of Programming Languages, 3:121--189, 1995.
[30]
F. Tip and J. Palsberg. Scalable propagation-based call graph construction algorithms. In OOPSLA, pages 281--293, 2000.
[31]
J. Whaley and M. Rinard. Compositional pointer and escape analysis for Java programs. In OOPSLA, pages 187--206, 1999.
[32]
T. Xie and J. Zhao. A framework and tool supports for generating test inputs of AspectJ programs. In AOSD, pages 190--201, 2006.
[33]
G. Xu and A. Rountev. Regression test selection for AspectJ software. In ICSE, pages 65--74, 2007.
[34]
J. Zhao. Change impact analysis for aspect-oriented software evolution. In International Workshop on Principles of Software Evolution, pages 108--112, 2002.
[35]
J. Zhao. Slicing aspect-oriented software. In IEEE International Workshop on Program Comprehension, pages 251--260, 2002.
[36]
J. Zhao. Data-flow-based unit testing of aspect-oriented programs. In International Computer Software and Applications Conference, page 188, 2003.
[37]
J. Zhao and M. Rinard. System dependence graph construction for aspect-oriented programs. In MIT-LCS-TR-891, 2003.

Cited By

View all
  • (2021)A Study of Call Graph Construction for JVM-Hosted LanguagesIEEE Transactions on Software Engineering10.1109/TSE.2019.295692547:12(2644-2666)Online publication date: 1-Dec-2021
  • (2021)Finding and Use of Source Code Changes for Aspect-Oriented SoftwareEvaluation of Novel Approaches to Software Engineering10.1007/978-3-030-70006-5_19(469-493)Online publication date: 27-Feb-2021
  • (2016)Study of Unit and Data flow testing in object-oriented and aspect-oriented programming2016 International Conference on Innovation and Challenges in Cyber Security (ICICCS-INBUSH)10.1109/ICICCS.2016.7542313(245-250)Online publication date: Feb-2016
  • Show More Cited By

Index Terms

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

      Recommendations

      Comments

      Information & Contributors

      Information

      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
      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]

      Sponsors

      • AOSA: Aspect-Oriented Software Association

      In-Cooperation

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 31 March 2008

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. AspectJ
      2. dataflow analysis
      3. interprocedural analysis

      Qualifiers

      • Research-article

      Funding Sources

      Conference

      AOSD08
      Sponsor:
      • AOSA

      Acceptance Rates

      Overall Acceptance Rate 41 of 139 submissions, 29%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)1
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 19 Feb 2025

      Other Metrics

      Citations

      Cited By

      View all
      • (2021)A Study of Call Graph Construction for JVM-Hosted LanguagesIEEE Transactions on Software Engineering10.1109/TSE.2019.295692547:12(2644-2666)Online publication date: 1-Dec-2021
      • (2021)Finding and Use of Source Code Changes for Aspect-Oriented SoftwareEvaluation of Novel Approaches to Software Engineering10.1007/978-3-030-70006-5_19(469-493)Online publication date: 27-Feb-2021
      • (2016)Study of Unit and Data flow testing in object-oriented and aspect-oriented programming2016 International Conference on Innovation and Challenges in Cyber Security (ICICCS-INBUSH)10.1109/ICICCS.2016.7542313(245-250)Online publication date: Feb-2016
      • (2015)An approach and tool for measurement of state variable based data-flow test coverage for aspect-oriented programsInformation and Software Technology10.1016/j.infsof.2014.11.00859:C(233-254)Online publication date: 1-Mar-2015
      • (2014)A constraint-weaving approach to points-to analysis for AspectJFrontiers of Computer Science: Selected Publications from Chinese Universities10.1007/s11704-013-3106-28:1(52-68)Online publication date: 1-Feb-2014
      • (2013)A critical review of various testing techniques in aspect-oriented software systemsACM SIGSOFT Software Engineering Notes10.1145/2492248.249227538:4(1-9)Online publication date: 12-Jul-2013
      • (2013)Aspectual source code analysis with GASR2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM)10.1109/SCAM.2013.6648184(53-62)Online publication date: Sep-2013
      • (2012)A survey of code‐based change impact analysis techniquesSoftware Testing, Verification and Reliability10.1002/stvr.147523:8(613-646)Online publication date: 27-Apr-2012
      • (2011)A pointcut-based coverage analysis approach for aspect-oriented programsInformation Sciences: an International Journal10.1016/j.ins.2010.06.003181:13(2721-2746)Online publication date: 1-Jul-2011
      • (2011)Empirical evaluation of the fault detection effectiveness and test effort efficiency of the automated AOP testing approachesInformation and Software Technology10.1016/j.infsof.2011.05.00453:10(1062-1083)Online publication date: Oct-2011
      • Show More Cited By

      View Options

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Figures

      Tables

      Media

      Share

      Share

      Share this Publication link

      Share on social media