Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

A classification system and analysis for aspect-oriented programs

Published: 31 October 2004 Publication History

Abstract

We present a new classification system for aspect-oriented programs. This system characterizes the interactions between aspects and methods and identifies classes of interactions that enable modular reasoning about the crosscut program. We argue that this system can help developers structure their understanding of aspect-oriented programs and promotes their ability to reason productively about the consequences of crosscutting a program with a given aspect.
We have designed and implemented a program analysis system that automatically classifies interactions between aspects and methods and have applied this analysis to a set of benchmark programs. We found that our analysis is able to 1) identify interactions with desirable properties (such as lack of interference), 2) identify potentially problematic interactions (such as interference caused by the aspect and the method both writing the same field), and 3) direct the developer's attention to the causes of such interactions.

References

[1]
C. S. Ananian. MIT FLEX compiler infrastructure for Java. Available from http://www.flex-compiler.lcs.mit.edu.
[2]
D. Batory and S. O'Malley. The design and implementation of hierarchical software systems with reusable components. ACM Transactions on Software Engineering and Methodology, 1(4), Oct. 1992.
[3]
L. Bergmans and M. Aksit. Composing crosscutting concerns using composition filters. Communications of the ACM, Oct. 2001.
[4]
B. Blanchet. Escape analysis for object oriented languages. Application to Java. In Proceedings of the 14th Annual Conference on Object-Oriented Programming Systems, Languages and Applications, Denver, CO, Nov. 1999.
[5]
J. Bogda and U. Hoelzle. Removing unnecessary synchronization in java. In Proceedings of the 14th Annual Conference on Object-Oriented Programming Systems, Languages and Applications, Denver, CO, Nov. 1999.
[6]
D. Chase, M. Wegman, and F. Zadek. Analysis of pointers and structures. In Proceedings of the SIGPLAN '90 Conference on Program Language Design and Implementation, pages 296--310, White Plains, NY, June 1990. ACM, New York.
[7]
J. Choi, M. Gupta, M. Serrano, V. Sreedhar, and S. Midkiff. Escape analysis for Java. In Proceedings of the 14th Annual Conference on Object-Oriented Programming Systems, Languages and Applications, Denver, CO, Nov. 1999.
[8]
C. Clifton and G. Leavens. Observers and assistants: A proposal for modular aspect-oriented reasoning. Technical Report TR 02-04, Department of Computer Science, Iowa State University, Mar. 2002.
[9]
P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proc. 4th POPL, 1977.
[10]
K. Fisler and S. Krishnamurthi. Modular verification of collaboration-based software designs. In Proceedings of the Joint European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, Vienna, Austria, Sept. 2001.
[11]
G. Kiczales et al. AspectJ compiler. Available from http://eclipse.org/aspectj.
[12]
M. Kersten and G. Murphy. Atlas: a case study in building a web-based learning environment using aspect-oriented programming. In Proceedings of the 1999 Conference on Object-Oriented Programming Systems, Languages and Applications, Denver, CO, Nov. 1999.
[13]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. Getting started with AspectJ. Communications of the ACM, 15(12), Oct. 2001.
[14]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. An overview of AspectJ. In Proceedings of the 2001 European Conference on Object-Oriented Programming, Budapest, Hungary, June 2001.
[15]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. Loingtier, and J. Irwin. Aspect-oriented programming. In Proceedings of the 1997 European Conference on Object-Oriented Programming, Jyvaskyla, Finland, June 1997.
[16]
I. Kiselev. Aspect-Oriented Programming with AspectJ. Sams Publishing, 2002.
[17]
R. Laddad. ApectJ in Action. Manning Publications Company, Greenwich, CT, 2003.
[18]
H. Li, S. Krishnamurthi, and K. Fisler. Verifying Cross-Cutting Features as Open Systems. Manning Publications Company, Greenwich, CT, 2003.
[19]
K. Lieberherr, D. Lorenz, and M. Mezini. Programming with aspectual components. Technical Report NU-CCS-99-01, College of Computer Science, Northeastern University, Mar. 1999.
[20]
D. Moon. Object-oriented programming with flavors. In Proceedings of the 1986 Conference on Object-Oriented Programming Systems, Languages and Applications, Portland, OR, Nov. 1986.
[21]
H. Ossher and P. Tarr. Multi-dimensional separation of concerns in hyperspace. Technical Report RC 21452(96717)16APR99, IBM T.J. Watson Research Center, 1999.
[22]
H. Ossher and P. Tarr. Using multidimensional separation of concerns to (re)shape evolving software. Communications of the ACM, Oct. 2001.
[23]
Sable compiler group at McGill. Soot: a Java optimization framework. Available from http://www.sable.mcgill.ca/soot.
[24]
A. Salcianu. Pointer analysis and its applications to Java programs. Master's thesis, MIT Laboratory for Computer Science, 2001.
[25]
A. Salcianu and M. Rinard. A combined pointer and purity analysis for Java programs. Technical Report MIT-CSAIL-TR-949, MIT CSAIL, 2004.
[26]
G. Snelting and F. Tip. Semantics-based composition of class hierarchies. In Proceedings of the 2002 European Conference on Object-Oriented Programming, 2002.
[27]
M. Stoerzer and J. Krinke. Interference analysis for AspectJ. In Workshop on Foundations of Aspect-Oriented Languages, 2003.
[28]
P. L. Tarr, H. Ossher, W. H. Harrison, and S. M. S. Jr. N degrees of separation: Multi-dimensional separation of concerns. In International Conference on Software Engineering, 1999.
[29]
J. Whaley and M. Rinard. Compositional pointer and escape analysis for Java programs. In Proceedings of the 14th Annual Conference on Object-Oriented Programming Systems, Languages and Applications, Denver, CO, Nov. 1999.

Cited By

View all
  • (2015)Panini: a concurrent programming model for solving pervasive and oblivious interferenceProceedings of the 14th International Conference on Modularity10.1145/2724525.2724568(93-108)Online publication date: 16-Mar-2015
  • (2013)A graphical tool for observing state and behavioral changes at join pointsProceedings of the 12th annual international conference companion on Aspect-oriented software development10.1145/2457392.2457405(29-30)Online publication date: 24-Mar-2013
  • (2012)MriJournal of Functional Programming10.1017/S095679681200035422:6(797-852)Online publication date: 1-Nov-2012
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGSOFT Software Engineering Notes
ACM SIGSOFT Software Engineering Notes  Volume 29, Issue 6
November 2004
275 pages
ISSN:0163-5948
DOI:10.1145/1041685
Issue’s Table of Contents
  • cover image ACM Conferences
    SIGSOFT '04/FSE-12: Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
    October 2004
    282 pages
    ISBN:1581138555
    DOI:10.1145/1029894
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 October 2004
Published in SIGSOFT Volume 29, Issue 6

Check for updates

Author Tags

  1. aspect oriented programming
  2. program analysis

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)0
Reflects downloads up to 25 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2015)Panini: a concurrent programming model for solving pervasive and oblivious interferenceProceedings of the 14th International Conference on Modularity10.1145/2724525.2724568(93-108)Online publication date: 16-Mar-2015
  • (2013)A graphical tool for observing state and behavioral changes at join pointsProceedings of the 12th annual international conference companion on Aspect-oriented software development10.1145/2457392.2457405(29-30)Online publication date: 24-Mar-2013
  • (2012)MriJournal of Functional Programming10.1017/S095679681200035422:6(797-852)Online publication date: 1-Nov-2012
  • (2012)Verification of aspectual composition in feature-modelingProceedings of the 10th international conference on Software Engineering and Formal Methods10.1007/978-3-642-33826-7_8(109-125)Online publication date: 1-Oct-2012
  • (2012)A Classification of Interactive Patterns between Underlying Programs and AspectsInformation Engineering and Applications10.1007/978-1-4471-2386-6_21(158-166)Online publication date: 2012
  • (2011)Dataflow Analysis for Properties of Aspect SystemsHardware and Software: Verification and Testing10.1007/978-3-642-19237-1_11(87-101)Online publication date: 2011
  • (2010)VidockProceedings of the 22nd IFIP WG 6.1 international conference on Testing software and systems10.5555/1928028.1928046(250-265)Online publication date: 8-Nov-2010
  • (2010)EffectiveAdviceProceedings of the 9th International Conference on Aspect-Oriented Software Development10.1145/1739230.1739244(109-120)Online publication date: 15-Mar-2010
  • (2010)Aspect-oriented design and implementation of adaptable access control for Electronic Medical RecordsInternational Journal of Medical Informatics10.1016/j.ijmedinf.2009.12.00779:3(181-203)Online publication date: Mar-2010
  • (2010)Vidock: A Tool for Impact Analysis of Aspect Weaving on Test CasesTesting Software and Systems10.1007/978-3-642-16573-3_18(250-265)Online publication date: 2010
  • 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

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media