Public reporting burden for this collection of information is estimated to average 1 hour per response, including the time for reviewing instructions, searching existing data sources, gathering and maintaining the data needed, and completing and reviewing this collection of information. Send comments regarding this burden estimate or any other aspect of this collection of information, including suggestions for reducing this burden to Washington Headquarters Services, Directorate for Information Operations and Reports, 1215 Jefferson Davis Highway, Suite 1204, Arlington, VA 22202-4302, and to the Office of Management and Budget, Paperwork Reduction Project (0704-0188), Washington, DC 20503
AGENCY USE ONLY (Leave blank)2. REPORT DATE
JULY 2003
REPORT TYPE AND DATES COVEREDFinal Aug 97 -Apr 03
TITLE AND SUBTITLEASPECT ORIENTED PROGRAMMING
AUTHOR(S)Gregor Kiczales, James Hugunin, Erik Hilsdale, Mik Kersten, Jeff Palm, Crista Lopes, Bill Griswold, and Wes Isberg
FUNDING NUMBERSC -F30602-97-C-0246 PE -62301E PR -F374 TA -01 WU -02
PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES)Palo Alto Research Center 3333 Coyote Hill Road Palo Alto California 94304-1314
PERFORMING ORGANIZATION REPORT NUMBERN/A
SPONSORING / MONITORING AGENCY NAME(S) AND ADDRESS(ES)Defense
12b. DISTRIBUTION CODE
ABSTRACT (Maximum 200 Words)Over the lifetime of the project we developed a general-purpose aspect-oriented programming (AOP) extension to Java, called AspectJ, cultivated a user community for AspectJ, and showed that the technology was useful for a wide range of software development problems. AspectJ is now the de facto standard AOP language, not just for Java, but in some sense for languages beyond Java. This significant milestone came about through major scientific, engineering, and community building accomplishments throughout the life of the project. Figure 4 Primitive pointcut designators and the rules for what join points they match. ... 9 Figure 5 A portion of the screen when using the AJDE extension to JBuilder 3.5. ........ 20 Figure 6 A portion of the screen when using the AspectJ-aware extension to emacs. .... 21 Figure 7 UML for Figure Editor
NUMBER OF PAGES
Summary of Project ResultsThis is the final report for the Aspect-Oriented Programming project funded under contract #F30602-97-C-0246 (AO# J138). This report along with the material on the attached CD-ROM concludes our obligations under that contract.Over the lifetime of the project we developed a general-purpose aspect-oriented programming (AOP) extension to Java, called AspectJ, cultivated a user community for AspectJ, and showed that the technology was useful for a wide range of software development problems. AspectJ is now the de facto standard AOP language, not just for Java, but in some sense for languages beyond Java. This significant milestone came about through major scientific, engineering, and community building accomplishments throughout the life of the project.
Specific accomplishments include:• Development of a clear set of core design elements for general p...