Distributed Systems Development: Can We Enhance Evolution by Using AspectJ?

  • Cormac Driver
  • Siobhán Clarke
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2817)


Problems relating to modularity result in the under-performance of the object-oriented software development paradigm in a number of areas. Aspect-oriented software development (AOSD) is a relatively new technology that extends modularisation capabilities in computer software. In particular, crosscutting concerns can be modularised. A crosscutting concern arises in a software system when the implementation of a system requirement impacts on more than one implementation module. Such a property hinders the ease with which the software can evolve. With AOSD techniques, the ability to modularise crosscutting concerns results in software that exhibits greater evolvability, as it enhances changeability, pluggability and comprehensibility. This paper reports on the impact on system evolvability arising from the re-implementation of an existing object-oriented system using AOSD techniques. In particular, AspectJ is used, which is an aspect-oriented extension to JavaTM. We found that the use of AOSD techniques and AspectJTM can greatly enhance the modularisation of certain concerns, leading to enhanced evolvability properties. However, for other types of concern the effects on evolvability were less positive. The difference between the two types of concerns related to the extent to which they could actually be modularised using AspectJ.


Exception Handling Implementation Module Connection Variable Database Connection Transaction Class 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Englewood Cliffs (1976)zbMATHGoogle Scholar
  2. 2.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  3. 3.
    Meyer, B.: Object-Oriented Software Construction. Prentice-Hall, Englewood Cliffs (1997)zbMATHGoogle Scholar
  4. 4.
    Clarke, S., Harrison, W., Ossher, H., Tarr, P.: Subject-Oriented Design: Towards Improved Alignment of Requirements, Design and Code. In: OOPSLA (1999)Google Scholar
  5. 5.
    The aspect-oriented software development (December 2, 2002),
  6. 6.
    The Struts page on the Apache Jakarta project (December 2, 2002),
  7. 7.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Elements of Reusable Object-Oriented Software. Addison Wesley, Reading (1995)Google Scholar
  8. 8.
    Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.: An Overview of AspectJ. In: ECOOP 2001(2001)Google Scholar
  9. 9.
    Bodkin, R.: Aspect-Oriented Programming with AspectJ. Slides from a talk given at SDWest (2002)Google Scholar
  10. 10.
    Hilsdale, E., Hugunin, J.: Introduction to Aspect-Oriented Programming with AspectJ. Tutorial 3, AOSD 2002 (2002)Google Scholar
  11. 11.
    Jeffries, R., Anderson, A., Hendrickson, C., Beck, K.: Extreme Programming Installed. Addison-Wesley, Reading (2000)Google Scholar
  12. 12.
    The AspectJ Team. The AspectJ Programming Guide. Available from the official AspectJ website,
  13. 13.
    Elrad, T., Filman, R., Bader, A.: Aspect-Oriented Programming. Communications of the ACM 44(10), 31 (2001)Google Scholar
  14. 14.
    Kienzle, J., Guerraoui, R.: AOP: Does it Make Sense? The Case of Concurrency and Failures. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, p. 37. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  15. 15.
    Kirsten, M., Murphy, G.: Atlas: A Case Study in Building a Web-Based Learning Environment using Aspect-Oriented Programming. In: OOPSLA 1999 (1999)Google Scholar
  16. 16.
    Lippert, M., Lopes, C.: A Study on Exception Detection and Handling Using Aspect-Oriented Programming. In: ICSE 2000 (2000)Google Scholar
  17. 17.
    Walker, R., Baniassad, E., Murphy, G.: An Initial Assessment of Aspect-Oriented Programming. In: ICSE 1999 (1999)Google Scholar
  18. 18.
    Soares, S., Laureano, E., Borba, P.: Implementing Distribution and Persistence Aspects with AspectJ. In: OOPSLA (2002)Google Scholar
  19. 19.
    Memmert, J.: AOP and Evidence of Improvements. Thread on the aosd-discuss mailing list (February 20, 2002)Google Scholar
  20. 20.
    Alexander, R., Bieman, J.: Challenges of Aspect-Oriented Technology. In: ICSE (2002)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Cormac Driver
    • 1
  • Siobhán Clarke
    • 1
  1. 1.Distributed Systems Group, Computer Science DepartmentTrinity College DublinIreland

Personalised recommendations