| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| <html xmlns="http://www.w3.org/1999/xhtml"> | |
| <head> | |
| <title>The AspectJ project at Eclipse.org: Publications</title> | |
| <link rel="stylesheet" href="aspectj_style.css" type="text/css" /> | |
| </head> | |
| <body> | |
| <div id="container"> | |
| <?php require("banner.html"); ?> | |
| <div id="main"> | |
| <!-- ================ Page specific content starts here ================ --> | |
| <table BORDER="0" CELLSPACING="5" CELLPADDING="2" WIDTH="100%"> | |
| <tr> | |
| <td ALIGN="LEFT" width="60%" valign="top"> | |
| <h1>aspectj publications</h1> | |
| </td> | |
| <td WIDTH="40%" align="right"> <img src="http://eclipse.org/images/Idea.jpg" width="120" height="86"></td> | |
| </tr> | |
| </table> | |
| <p> | |
| Books and articles about AspectJ are listed below by date. | |
| This list does not contain academic papers or publications we | |
| haven't heard about. If you know of something not listed, | |
| please email a description to | |
| <a href="mailto:aspectj-users@eclipse.org"> | |
| aspectj-users@eclipse.org</a>. | |
| </p> | |
| <p>Jump straight to <a href="#articles">articles</a></p> | |
| <h2>Books on AspectJ and related topics</h2> | |
| <table width="100%" cellspacing="5" cellpadding="2" border="0"> | |
| <tbody> | |
| <tr> | |
| <td width="20%"> | |
| <a href="http://www.dpunkt.de/buch/3-89864-330-1.html"> | |
| <img width="200" src="images/aopaj5.jpg" alt="Aspektorientierte Programmierung mit AspectJ 5"> | |
| </a> | |
| </td> | |
| <td align ="left"><p><b> | |
| <a href="http://www.dpunkt.de/buch/3-89864-330-1.html">Aspektorientierte Programmierung mit AspectJ 5</a> </b>, | |
| by Oliver Böhm.</p> | |
| <p> Nach der Objektorientierung ist ein neuer, bedeutender Trend in der | |
| Softwareentwicklung in Sicht: die aspektorientierte Programmierung (AOP). | |
| Schritt für Schritt vermittelt Oliver Böhm ihre Grundlagen und | |
| zeigt den praktischen Einsatz anhand der führenden AO-Programmiersprache | |
| AspectJ. | |
| </p> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td width="20%"> | |
| <a href="http://www.amazon.com/exec/obidos/ASIN/0321245873/qid=1112868888/sr=2-3/ref=pd_bbs_b_2_3/103-5274059-2049410"> | |
| <img width="200" src="images/eclipseaspectj.jpg" alt="Eclipse AspectJ"> | |
| </a> | |
| </td> | |
| <td align ="left"><p><b> | |
| <a href="http://www.amazon.com/exec/obidos/ASIN/0321245873/qid=1112868888/sr=2-3/ref=pd_bbs_b_2_3/103-5274059-2049410">Eclipse AspectJ</a> : | |
| Aspect-Oriented Programming in Eclipse with AspectJ and the AspectJ Development Tools</b>, | |
| by Adrian Colyer, Andy Clement, George Harley and Matthew Webster.</p> | |
| <p> In this book, the lead developers of AspectJ | |
| "cover every facet of AOP development with | |
| AspectJ and Eclipse, from creating new projects through extending and | |
| documenting full-fledged applications. You'll find an authoritative | |
| tutorial covering the entire AspectJ language, a complete API reference, | |
| and realistic guidance on adopting AspectJ..." | |
| </p> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td width="20%"> | |
| <a href="http://www.amazon.com/exec/obidos/tg/detail/-/1930110936/ref=pd_bxgy_img_2/103-5274059-2049410?v=glance&s=books&n=507846"> | |
| <img width="200" src="images/aspectjinaction.jpg" alt="AspectJ in Action"> | |
| </a> | |
| </td> | |
| <td align ="left"> | |
| <p><a target="_top" href="http://www.manning.com/laddad/"> | |
| "AspectJ in Action"</a> | |
| (350 pages, July 2003, Manning) | |
| by Ramnivas Laddad</p> | |
| <p>It is time to move from AOP theory and toy examples to AOP practice and real applications. | |
| With this unique book you can make that move. It teaches you AOP concepts, the AspectJ language, | |
| and how to develop industrial-strength systems. It shows you examples which you can reuse. | |
| It unleashes the true power of AOP through unique patterns of AOP design. When you are done, | |
| you will be eager-and able-to build new systems, and enhance your existing ones, with the help of AOP. | |
| </p> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td width="20%"> | |
| <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0596006543/qid=1112883594/sr=8-3/ref=pd_csp_3/103-5274059-2049410?v=glance&s=books&n=507846"> | |
| <img width="200" src="images/aspectjcookbook.gif" alt="AspectJ Cookbook"> | |
| </a> | |
| </td> | |
| <td align ="left"> | |
| <p><a target="_top" href="http://www.oreilly.com/catalog/aspectjckbk/"> | |
| "The AspectJ Cookbook"</a> | |
| by Russ Miles</p> | |
| <p>The AspectJ Cookbook shows readers why, and how, common Java development problems | |
| can be solved by using AOP techniques. With our popular problem-solution-discussion format, | |
| the book presents real world examples to demonstrate that AOP is more than just a concept; | |
| it's a development process that will benefit users in an immediate and visible manner. | |
| </p> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td width="20%"> | |
| <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0471431044/qid=1112883856/sr=1-1/ref=sr_1_1/103-5274059-2049410?v=glance&s=books"> | |
| <img width="200" src="images/masteringaspectj.jpg" alt="Mastering AspectJ"> | |
| </a> | |
| </td> | |
| <td align ="left"> | |
| <p><a target="_top" href="http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471431044.html"> | |
| "Mastering AspectJ"</a> | |
| (456 pages, March 2003, Wiley) | |
| by Joseph Gradecki and Nicholas Lesiecki | |
| </p> | |
| <p>Aspect-oriented programming (AOP) promises to increase the power of OO applications by | |
| modularizing functionality that cuts across classes (such as logging, transaction management, | |
| design patterns, and security). If your application has this type of functionality, | |
| you can benefit from using AspectJ, an AOP language that is a seamless extension to Java.</p> | |
| <p> | |
| In this code-intensive book, the authors present a detailed overview of the concepts of AOP and | |
| AspectJ, and take you step-by-step through the process of building an application. </p> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td width="20%"> | |
| <a href="http://www.amazon.co.jp/exec/obidos/ASIN/4797326387/qid=1112884110/sr=8-1/ref=sr_8_xs_ap_i1_xgl/249-9397178-5049905"> | |
| <img width="200" src="images/tatsubori.jpg" alt="Introduction to Aspect-Oriented Programming with AspectJ"> | |
| </a> | |
| </td> | |
| <td align ="left"> | |
| <a href="http://www.amazon.co.jp/exec/obidos/ASIN/4797326387/qid=1112884110/sr=8-1/ref=sr_8_xs_ap_i1_xgl/249-9397178-5049905"> | |
| Introduction to Aspect-Oriented Programming with AspectJ</a> (Japanese) | |
| </td> | |
| </tr> | |
| <tr> | |
| <td width="20%"> | |
| <a href="http://www.amazon.com/exec/obidos/ASIN/0321219767/qid=1112884234/sr=2-1/ref=pd_bbs_b_2_1/103-5274059-2049410"> | |
| <img width="200" src="images/aosd.jpg" alt="AOSD"> | |
| </a> | |
| </td> | |
| <td align ="left"> | |
| <p><a href="http://www.amazon.com/exec/obidos/ASIN/0321219767/qid=1112884234/sr=2-1/ref=pd_bbs_b_2_1/103-5274059-2049410"> | |
| Aspect-Oriented Software Development</a> edited by Robert Filman, Tzilla Elrad, Siobhan Clarke and Mehmet Aksit.</p> | |
| <p>In this book, four leaders in AOSD development bring together today's most significant advances. | |
| Drawing on contributions from the field's leading researchers, they introduce fundamental AOSD concepts, | |
| present new technologies for AOSD engineering and programming, and detail early application experiences | |
| with AOSD methods. | |
| </p> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td width="20%"> | |
| <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0321268881/qid=1112885840/sr=1-1/ref=sr_1_1/103-5274059-2049410?v=glance&s=books"> | |
| <img width="200" src="images/aosdusecases.jpg" alt="AOSD"> | |
| </a> | |
| </td> | |
| <td align ="left"> | |
| <p><a href="http://www.amazon.com/exec/obidos/tg/detail/-/0321268881/qid=1112885840/sr=1-1/ref=sr_1_1/103-5274059-2049410?v=glance&s=books"> | |
| Aspect-Oriented Software Development with Use Cases</a></p> | |
| <p>In this highly anticipated new book, Ivar Jacobson and Pan-Wei Ng demonstrate how to apply use cases | |
| a mature and systematic approach to focusing on stakeholder concernsand | |
| aspect-orientation in building robust and extensible systems. Throughout the book, the authors employ a single, | |
| real-world example of a hotel management information system to make the described theories and | |
| practices concrete and understandable. | |
| </p> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td width="20%"> | |
| <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0321246748/qid=1112885475/sr=1-2/ref=sr_1_2/103-5274059-2049410?v=glance&s=books"> | |
| <img width="200" src="images/aoad.jpg" alt="AOSD"> | |
| </a> | |
| </td> | |
| <td align ="left"> | |
| <p><a href="http://www.amazon.com/exec/obidos/tg/detail/-/0321246748/qid=1112885475/sr=1-2/ref=sr_1_2/103-5274059-2049410?v=glance&s=books">Aspect-Oriented Analysis and Design</a></p> | |
| <p>In this new book, two AOSD experts apply theory to the practical realm of real-world development. | |
| They explain the different kinds of aspects, help the reader identify them, and provide guidance on | |
| successful design and implementation. The result is an applicable and easy-to-digest methodology for | |
| simplifying and optimizing the development of software systems.</p> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td width="20%"> | |
| <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0672324105/qid=1112885592/sr=1-4/ref=sr_1_4/103-5274059-2049410?v=glance&s=books"> | |
| <img width="200" src="images/kiselev.jpg" alt="AOSD"> | |
| </a> | |
| </td> | |
| <td align ="left"> | |
| <p> | |
| <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0672324105/qid=1112885592/sr=1-4/ref=sr_1_4/103-5274059-2049410?v=glance&s=books"> | |
| Aspect-Oriented Programming with AspectJ</a> (covers AspectJ 1.0x)</p> | |
| <p>In a November 2001 Java Pro magazine article, noted Java pundit Daniel Savarese states, | |
| "The days of Object-Oriented Programming may be numbered, One day we may all be using Aspect-Oriented Programming ." | |
| While this may be hyperbole, the AOP bring certain needed improvements to the OOP. | |
| AspectJ is a Java-based tool that allows developers to apply standard Java syntax to AOP principles, | |
| much as C++ allowed C programmers to use C syntax in an object-oriented manner. | |
| There are AspectJ add-ons available for Borland's JBuilder, Sun's Forte for Java and for the EMACS text editor. | |
| Aspect-Oriented Programming with AspectJ introduces AOP and the AspectJ tool. The book also shows how, | |
| by using existing Java programming knowledge, the developer can use AOP in meaningful development work. | |
| </p> | |
| </td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| <a name="articles"></a> | |
| <h2>Articles</h2> | |
| <dl> | |
| <dt><a href="http://www.builderau.com.au/architect/0,39024564,39183763,00.htm"> | |
| "A new aspect to programming"</a> by Simon Sharwood. | |
| </dt> | |
| <dd> | |
| A review of the benefits of AOP and the current state of the practice, with contributions | |
| from IBM, BEA, and Microsoft amongst others. "The AOP genie is well and truly out of the | |
| bottle." | |
| </dd> | |
| <dt><a target="_top" href="http://www.ibm.com/developerworks/java/library/j-aopwork1/"> | |
| "AOP@Work: AOP tools comparison"</a> by Mik Kersten | |
| </dt> | |
| <dd>In this <a href="http://www.ibm.com/developerworks/java">developerWorks</a> | |
| article, Mik compares AspectJ, AspectWerkz, | |
| JBoss AOP and Spring AOP for power and usability, and touches | |
| on the implications of the merger of AspectWerkz and AspectJ. | |
| </dd> | |
| <dt><a target="_top" href="http://www-106.ibm.com/developerworks/library/j-ajdt/"> | |
| "Develop aspect-oriented Java applications with Eclipse and AJDT"</a> | |
| (Sep. 2004) by Matt Chapman and Helen Hawkins | |
| </dt> | |
| <dd> | |
| In this article, AJDT contributors and IBM aspect-oriented software development team members | |
| Matt Chapman and Helen Hawkins introduce you to AJDT. You'll learn how to install the tools; | |
| how to create, run, and debug AspectJ applications; and how to visualize and navigate the crosscutting | |
| structures inherent to aspect-oriented programming. | |
| </dd> | |
| <dt><a target="_top" href="http://www-106.ibm.com/developerworks/library/j-ceaop/"> | |
| "Contract enforcement with AOP"</a> | |
| by Filippo Diotalevi | |
| </dt> | |
| <dd> Apply Design by Contract to Java software development with AspectJ | |
| (Level: introductory) | |
| </dd> | |
| <dt><a target="_top" href="http://www.theserverside.com/resources/article.jsp?l=AspectOrientedRefactoringPart1"> | |
| "Aspect-Oriented Refactoring"</a> | |
| by Ramnivas Laddad | |
| </dt> | |
| <dd> Aspect-oriented refactoring (AO refactoring) synergistically combines | |
| refactoring and AOP to refactor crosscutting elements. | |
| </dd> | |
| <dt><a target="_top" href="http://www.theserverside.com/events/videos/GregorKiczalesText/interview.jsp"> | |
| "Aspect Oriented Programming"</a> | |
| (July 2003 ServerSide interview of Gregor Kiczales) | |
| by Dion Almaer | |
| </dt> | |
| <dd> "AOP technology and practice is now moving | |
| from the invention phase to the innovation phase. | |
| [...I]t is vital that the inventors and the innovators work to | |
| try and build bridges to each other." | |
| </dd> | |
| <dt><a target="_top" href="http://www.fawcette.com/javapro/2003_03/magazine/columns/javatecture/default_pf.asp"> | |
| "Aspects, Concerns, and Java"</a> | |
| (March 2003) | |
| by James W. Cooper | |
| </dt> | |
| <dd> | |
| </dd> | |
| <dt><a target="_top" href="http://www.xprogramming.com/xpmag/virtualMockObjects.htm"> | |
| "Virtual Mock Objects using | |
| AspectJ with JUnit"</a> | |
| (October, 2002) | |
| </dt> | |
| <dd>by Simon Monk and Stephen Hall | |
| </dd> | |
| <dt><a target="_top" href="http://developers.sun.com/tools/javatools/articles/aspectJ.html"> | |
| "Aspect-Oriented Programming with Sun(tm) ONE Studio"</a> (October 2002, updated July 2003) | |
| by Vaughn Spurlin | |
| </dt> | |
| <dd>"Aspect-oriented programming does involve deep | |
| concepts in programming, but the basics are easy enough to yield immediate | |
| benefit with relatively little effort. This fits well with both a fast paced | |
| extreme programming style and a conservative style that requires proof of | |
| benefits at each step before committing to the next step. The full value of | |
| completely adopting AOP may be as profound as the transition from structured | |
| programming to object-oriented programming, but with little or no cost for a | |
| gradual and gentle transition." | |
| </dd> | |
| <dt><a target="_top" href="http://www.ddj.com/articles/2002/0208/"> | |
| "Aspect-Oriented Programming and AspectJ"</a> in the August 2002 Dr. Dobbs | |
| Journal, by William Grosso | |
| </dt> | |
| <dd>"Aspect-oriented programming extends the | |
| object-oriented paradigm by letting you write more maintainable code using | |
| aspects. Additional resources include | |
| <a target="_top" href="http://www.ddj.com/ftp/2002/2002_08/aop.txt">aop.txt</a> (listings) | |
| and <a target="_top" href="http://www.ddj.com/ftp/2002/2002_08/aop.zip">aop.zip</a> | |
| (source code). | |
| </dd> | |
| <dt><a target="_top" href="http://sdmagazine.com/articles/2002/0205/">"Get | |
| Test-Inoculated!"</a> in the May 2002 issue of Software Development, by Wes | |
| Isberg and the AspectJ Team | |
| </dt> | |
| <dd> | |
| (Originally titled "Test-Inoculated: Programmers Love Not Writing Tests") | |
| This introduces AspectJ using code snippets that | |
| verify compile- and run-time invariants, capture and replay input, | |
| and set up stubs and drivers for integration testing. | |
| (<a href="dl/inoculated-src.zip">corresponding | |
| sources are available</a>) | |
| </dd> | |
| <dt><a target="_top" href="http://www-106.ibm.com/developerworks/java/library/j-aspectj2/?open&l=007,t=gr"> | |
| "Test flexibly with AspectJ and mock objects"</a> in the May 2002 Java | |
| Technology Zone of IBM's Developer Works, by Nicholas Lesiecki | |
| </dt> | |
| <dd> | |
| "To keep the cost of test development low, unit | |
| tests must run in isolation. Mock object testing isolates each unit by | |
| providing mocked implementations of code on which the tested class depends. | |
| But object-oriented techniques cannot successfully replace collaborating | |
| code in situations where dependencies are retrieved from a globally | |
| accessible source. AspectJ's ability to crosscut the structure of the tested | |
| code allows you to cleanly replace code in these types of situations." | |
| </dd> | |
| <dt><a target="_top" href="http://www.javaworld.com/javaworld/jw-04-2002/jw-0412-aspect3.html"> | |
| "I want my AOP!, Part 3"</a> in the April 2002 issue of Java World, by | |
| Ramnivas Laddad | |
| </dt> | |
| <dd> | |
| "AOP and AspectJ solve real problems, and early | |
| adopters are increasingly trying AOP concepts with AspectJ. Like any other | |
| new programming paradigm, it will take time before both technologies reach | |
| their full potential. As more developers use AspectJ, the experience gained | |
| will guide the language's evolution. Simultaneously, design patterns and | |
| anti-patterns will appear. AOP's adaptation as a mainstream programming | |
| methodology will be a fun thing to watch and, better still, participate in." | |
| </dd> | |
| <dt><a target="_top" href="http://www.javaworld.com/javaworld/jw-03-2002/jw-0301-aspect2.html"> | |
| "I want my AOP!, Part 2"</a> in the March 2002 issue of Java World, by | |
| Ramnivas Laddad | |
| </dt> | |
| <dd>"AspectJ provides a powerful and useful AOP | |
| implementation for Java. AspectJ offers modularizing crosscutting concerns | |
| by adding new joinpoint, pointcut, and advice concepts. Since AspectJ | |
| extends Java, Java programmers will find it an easy language to learn." | |
| </dd> | |
| <dt><a target="_top" href="http://www.stepwise.com/Articles/AspectJ/index.html"> | |
| "Aspect-Oriented Programming with WebObjects"</a> in the March 2002 issue of | |
| StepWise.com, by Christian Pekeler | |
| </dt> | |
| <dd>"AspectJ is a very stable compiler, and ready to | |
| be used in production. It works flawlessly together with WebObjects. | |
| Integration with Project Builder can certainly be improved, though." | |
| </dd> | |
| <dt><a target="_top" href="http://www-106.ibm.com/developerworks/java/library/j-aspectj/index.html?dwzone=java"> | |
| "Improve Modularity with Aspect-Oriented Programming"</a> in the January | |
| 2002 Java Technology Zone of IBM's Developer Works, by Nicholas Lesiecki | |
| </dt> | |
| <dd>"Aspect-oriented programming (AOP) is a new | |
| programming technique that allows programmers to modularize <i>crosscutting | |
| concerns</i> (behavior that cuts across the typical divisions of | |
| responsibility, such as logging). AOP introduces <i>aspects,</i> which | |
| encapsulate behaviors that affect multiple classes into reusable modules. | |
| With the recent release of AspectJ by Xerox PARC, Java developers can now | |
| take advantage of the modularization AOP can provide. This article | |
| introduces AspectJ and illustrates the design benefits that result from its | |
| use." | |
| </dd> | |
| <dt> <a target="_top" href="http://www.javaworld.com/javaworld/jw-01-2002/jw-0118-aspect.html"> | |
| "I want my AOP!, Part 1"</a> in the January 2002 issue of Java World, by | |
| Ramnivas Laddad | |
| </dt> | |
| <dd>"Most software systems consist of several concerns | |
| that crosscut multiple modules. Object-oriented techniques for implementing | |
| such concerns result in systems that are invasive to implement, tough to | |
| understand, and difficult to evolve. The new aspect-oriented programming | |
| (AOP) methodology facilitates modularization of crosscutting concerns. Using | |
| AOP, you can create implementations that are easier to design, understand, | |
| and maintain. Further, AOP promises higher productivity, improved quality, | |
| and better ability to implement newer features. This article, the first in a | |
| three-part series, introduces the AOP concept and the problems it attempts | |
| to solve." | |
| </dd> | |
| <dt><a target="_top" href="http://www.devx.com/premier/mgznarch/javapro/2001/11nov01/ps0111/ps0111.asp"> | |
| "Aspect-Oriented Programming in Java"</a>, in the November 2001 issue of | |
| JavaPro, by Daniel F. Savarese | |
| </dt> | |
| <dd>"AspectJ contains many very interesting language | |
| features and you may start looking for excuses to use them in your programs | |
| once you realize everything they make possible. AspectJ's authors recommend | |
| that you get started using aspects for writing, testing, and profiling code | |
| before moving on to make it an integral part of your production code base. | |
| AOP has many years to go before it becomes a mainstream programming | |
| methodology, but I have a feeling that aspects are here to stay, and that at | |
| least some AOP features will eventually make their way into Java and other | |
| programming languages." | |
| </dd> | |
| <dt><a target="_top" href="http://portal.acm.org/toc.cfm?id=383845&type=issue&coll=portal&dl=ACM&idx=J79&part=magazine&WantType=Magazines&title=CACM"> | |
| Special Issue on Aspect-Oriented Programming</a>, October 2001 | |
| Communications of the ACM | |
| </dt> | |
| <dd>Several articles in this issue refer to AspectJ, | |
| including "Getting Started with AspectJ" by the AspectJ Team. | |
| </dd> | |
| <dt><a target="_top" href="http://www.javareport.com/html/from_pages/article.asp?id=4712&mon=9&yr=2001"> | |
| "Real-world AOP Tool Simplifies OO Development"</a> in the September 2001 | |
| issue of Java Report, by Rich Price | |
| </dt> | |
| <dd>"We have tested AspectJ extensively and feel | |
| confident enough in it that we use it in production. We have never had a bug | |
| caused by the compiler-generated code. The tools are still rough around the | |
| edges, but we have seen steady improvement in functionality and quality over | |
| the past year. Support is excellent. Despite some minor annoyances and | |
| limitations, I can't imagine not using AspectJ." | |
| </dd> | |
| <dt><a target="_top" href="http://www.sdmagazine.com/documents/s=1123/sdm0109e/0109e.htm">"The | |
| First Aspect-Oriented Compiler"</a> in the September 2001 issue of Software | |
| Development, by Larry O'Brien | |
| </dt> | |
| <dd>"It's not every day, or every year, that you come | |
| across something that makes you rethink your entire approach to | |
| programming. Mark my words, aspects are going to cause an epochal shift in | |
| programming right up there with the object shift of a decade ago. . . there | |
| is no question that within a few years, aspects will be as much a part of | |
| the programming lexicon as objects are today. . . AspectJ is the best tool | |
| to help Java programmers investigate an exciting programming concept whose | |
| time on the main stage of software development has come. Do yourself a favor | |
| - download it today." | |
| </dd> | |
| <dt><a target="_top" href="http://www.sdmagazine.com/documents/s=843/sdm0107i/0107i.htm"> | |
| "Through the Looking Glass"</a> in the July 2001 issue of Software | |
| Development, by Grady Booch | |
| </dt> | |
| <dd>"The first time I really grasped the wonderful | |
| power of object-oriented abstractions, I thought I'd seen the ultimate model | |
| on which all kinds of complex systems could be grown. . . However, I was | |
| wrong: There's something deeper, something that's truly beyond objects. | |
| Admittedly, this isn't a concept that's easy to explain, because I'm still | |
| so steeped in an object-oriented view of the world. However, just as a | |
| sailor can sense a changing sea, I note subtle signs that point to a marked | |
| transformation, a disruptive technology, on the horizon." | |
| </dd> | |
| <dt><a target="_top" href="http://www.technologyreview.com/magazine/jan01/TR10_kiczales.asp"> | |
| "The Technology Review Ten: Untangling Code"</a> in the January/February | |
| 2001 issue of the Technology Review, by Claire Tristram | |
| </dt> | |
| <dd>"Pity software engineers. With the touch of a | |
| button, their programs let us make global fixes in a long text, say, or a | |
| spreadsheet, yet programmers often need to correct their own work one | |
| tedious line at a time. That irony isn't lost on Gregor Kiczales, principal | |
| scientist at Xerox's Palo Alto Research Center (PARC) and professor at the | |
| University of British Columbia in VancouverÑand he has a fix in mind. | |
| Kiczales champions what he calls "aspect-oriented programming," a technique | |
| that will allow software writers to make the same kinds of shortcuts that | |
| those of us in other professions have been making for years. . ." | |
| </dd> | |
| <dt><a target="_top" href="http://www.computer.org/software/so2000/s6toc.htm">"Can | |
| Aspect-Oriented Programming Lead to More Reliable Software?"</a> in the | |
| November/December 2000 issue of IEEE Software, by John Viega and Jeffrey | |
| Voas | |
| </dt> | |
| <dd>"Aspect-oriented programming is a novel topic in | |
| the software engineering and languages communities. AOP appears to have the | |
| potential to significantly improve the reliability of programs, particularly | |
| by modularizing error-handling policies and allowing for easier maintenance | |
| and better reuse. In this article we introduce AspectJ, the first | |
| aspect-oriented programming language, and demonstrate how you can use it to | |
| construct more reliable software." | |
| </dd> | |
| <dt><a target="_top" href="http://www.voelter.de/data/articles/aop/aop.html">"Aspectj-Oriented | |
| Programming in Java"</a> in the January 2000 issue of the | |
| <a target="_top" href="http://www.javareport.com">Java Report</a>, by Markus Voelter | |
| </dt> | |
| <dd>"Abstract: AOP defines a new program construct, | |
| called an aspect, which is used to capture corsscutting aspects of a | |
| software system in separate program entities. This article is divided into | |
| three parts: first, an explanation of the concepts of AOP; second, an | |
| introduction to AspectJª, an implementation of the AOP concepts in Java; | |
| finally, a comparison of the AOP approach to metalevel programming." | |
| </dd> | |
| </dl> | |
| <!-- ================ End of page specific content ===================== --> | |
| </div> | |
| </div> | |
| </body> | |
| </html> |