Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Skip header Section
Aspect-Oriented Programming with AspectJAugust 2002
Publisher:
  • Sams
  • Imprint of Simon and Schuster 201 W. 103 St. Indianapolis, IN
  • United States
ISBN:978-0-672-32410-9
Published:01 August 2002
Pages:
274
Skip Bibliometrics Section
Reflects downloads up to 09 Nov 2024Bibliometrics
Skip Abstract Section
Abstract

From the Publisher:

In Aspect-Oriented Programming with AspectJ, expect to learn the basics of AOP, why it is useful, and how it relates to object-oriented programming. AspectJ is an aspect-oriented extension to the Java programming language. Developed by Palo Alto Research Center Incorporated with partial support by DARPA (Defense Advanced Research projects Agency) this open-source project makes aspect-oriented programming technology available to a wide audience and creates a set of tools to support the technology's everyday use. AspectJ enables you to modularize crosscutting application concerns, making the development process more robust and less expensive. The AspectJ project provides an open-source compiler, structure browser, and API documentation tool with IDE support for JBuilder, Forte, and Emacs.

Cited By

  1. Chebout M, Mokhati F and Badri M (2015). Assessing the Effect of Aspect Refactoring on Multi-Agent Applications, International Journal of Agent Technologies and Systems, 7:3, (45-66), Online publication date: 1-Jul-2015.
  2. ACM
    Chaudhary R and Chatterjee R (2013). Essence of reusability in aspect-oriented systems, ACM SIGSOFT Software Engineering Notes, 38:3, (1-5), Online publication date: 23-May-2013.
  3. ACM
    Sullivan K, Griswold W, Rajan H, Song Y, Cai Y, Shonle M and Tewari N (2010). Modular aspect-oriented design with XPIs, ACM Transactions on Software Engineering and Methodology, 20:2, (1-42), Online publication date: 1-Aug-2010.
  4. Henriksson J and Aßmann U Component models for semantic web languages Semantic techniques for the web, (233-275)
  5. Hulaas J and Binder W (2008). Program transformations for light-weight CPU accounting and control in the Java virtual machine, Higher-Order and Symbolic Computation, 21:1-2, (119-146), Online publication date: 1-Jun-2008.
  6. ACM
    Herzeel C, Gybels K, Costanza P and D'Hondt T Modularizing crosscuts in an e-commerce application in Lisp using HALO Proceedings of the 2007 International Lisp Conference, (1-14)
  7. ACM
    Merdes M and Dorsch D Experiences with the development of a reverse engineering tool for UML sequence diagrams Proceedings of the 4th international symposium on Principles and practice of programming in Java, (125-134)
  8. ACM
    Merdes M, Malaka R, Suliman D, Paech B, Brenner D and Atkinson C Ubiquitous RATs Proceedings of the 6th international workshop on Software engineering and middleware, (55-62)
  9. Avgustinov P, Bodden E, Hajiyev E, Hendren L, Lhoták O, de Moor O, Ongkingco N, Sereni D, Sittampalam G, Tibble J and Verbaere M Aspects for trace monitoring Proceedings of the First combined international conference on Formal Approaches to Software Testing and Runtime Verification, (20-39)
  10. Binkley D, Ceccato M, Harman M, Ricca F and Tonella P (2006). Tool-Supported Refactoring of Existing Object-Oriented Code into Aspects, IEEE Transactions on Software Engineering, 32:9, (698-717), Online publication date: 1-Sep-2006.
  11. ACM
    Allan C, Avgustinov P, Christensen A, Hendren L, Kuzins S, Lhoták O, de Moor O, Sereni D, Sittampalam G and Tibble J Adding trace matching with free variables to AspectJ Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (345-364)
  12. ACM
    Allan C, Avgustinov P, Christensen A, Hendren L, Kuzins S, Lhoták O, de Moor O, Sereni D, Sittampalam G and Tibble J (2019). Adding trace matching with free variables to AspectJ, ACM SIGPLAN Notices, 40:10, (345-364), Online publication date: 12-Oct-2005.
  13. Tonella P and Ceccato M (2005). Refactoring the Aspectizable Interfaces, IEEE Transactions on Software Engineering, 31:10, (819-832), Online publication date: 1-Oct-2005.
  14. ACM
    Kiczales G and Mezini M Aspect-oriented programming and modular reasoning Proceedings of the 27th international conference on Software engineering, (49-58)
  15. ACM
    Rinard M, Salcianu A and Bugrara S A classification system and analysis for aspect-oriented programs Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering, (147-158)
  16. ACM
    Rinard M, Salcianu A and Bugrara S (2004). A classification system and analysis for aspect-oriented programs, ACM SIGSOFT Software Engineering Notes, 29:6, (147-158), Online publication date: 1-Nov-2004.
  17. ACM
    Hilsdale E and Hugunin J Advice weaving in AspectJ Proceedings of the 3rd international conference on Aspect-oriented software development, (26-35)
  18. Binder W and Hulaas J Extending standard java runtime systems for resource management Proceedings of the 4th international conference on Software Engineering and Middleware, (154-169)
  19. Cointe P Towards generative programming Proceedings of the 2004 international conference on Unconventional Programming Paradigms, (315-325)
  20. Cointe P, Albin-Amiot H and Denier S From (meta) objects to aspects Proceedings of the Third international conference on Formal Methods for Components and Objects, (70-94)
  21. ACM
    Dufour B, Goard C, Hendren L, de Moor O, Sittampalam G and Verbrugge C Measuring the dynamic behaviour of AspectJ programs Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (150-169)
  22. ACM
    Dufour B, Goard C, Hendren L, de Moor O, Sittampalam G and Verbrugge C (2004). Measuring the dynamic behaviour of AspectJ programs, ACM SIGPLAN Notices, 39:10, (150-169), Online publication date: 1-Oct-2004.
  23. ACM
    Rashid A and Chitchyan R Persistence as an aspect Proceedings of the 2nd international conference on Aspect-oriented software development, (120-129)
Contributors

Reviews

Satadip Dutta

The principles of aspect-oriented programming (AOP) have come a long way since its inception in the early 1990s. AOP is a novel paradigm for separating crosscutting concerns in object-oriented code into modularized units called aspects. This book provides a good introduction to AOP using AspectJ, a language extension to enable AOP for Java. The book is divided into four parts: an introduction to programming with AspectJ, an explanation of how AspectJ can be used in a real application, AspectJ language details, and a conclusion that focuses on best practices and traps to watch out for. The first part of the book outlines the need for AOP, and provides a high-level introduction to the basics of AspectJ. The next section starts with a description of an application called AspectNews, which allows users to publish content. The book quickly moves into explaining how aspects can be used to solve common design considerations, like security and exception handling. The book provides concrete examples of how to enable logging, tracing, profiling, buffering, pooling, and caching using AOP. The author points out aspects that can be used during development and deployment. This segregation provides an insight into how to build other aspects, and where they might be applicable, for example, aspects that address manageability concerns. The next part of the book focuses on AspectJ language details. The author explains, in detail, the concepts of aspects, pointcuts, advices, and static crosscutting. Along with best practices, and caution points for using AspectJ, the book also contains appendices to describe the AspectJ application programming interface (API), and the AspectJ tools for compilation and document generation. The book provides a very good introduction to the basics of AOP, as well as concrete examples of where it can be used in an application. The text is about 250 pages long, and includes ample sample code to facilitate a hands-on learning experience. The author has a lucid writing style, and is well organized. The book does not contain, however, discussions of dynamic crosscutting and weaving concepts (compile-time, bytecode, and load-time). Some use cases to construct test cases using AOP would help illustrate other scenarios where AOP could be applied. Despite these minor drawbacks, the author's conversational style definitely puts the reader at ease, and helps readers think about how they could apply the principles of AOP. The book would be useful to those who are thinking about how to use AOP in their applications; I would strongly recommend this book. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Recommendations