Section 16.6. CONCLUSION


16.6. CONCLUSION

JAC is a framework for aspect-oriented programming (AOP) in Java. It provides a general programming model and a number of artifacts to let programmers develop aspect-oriented applications in a regular Java syntax (i.e., without any syntactical language extensions). The main elements managed by the framework are aspect components (ACs for short). They are the pieces of code that capture a crosscutting concern. Like others AOP approaches, we modularize concerns to ease maintenance and evolution. JAC provides containers to host AC and business (also called base) components. In the current version of JAC (downloadable under LGPL from our web site [10]), these containers are remotely accessible either with RMI or with CORBA. Further developments are underway for the SOAP communication protocol.

ACs define two main elements: pointcut relations and AC methods. Pointcut relations are the methods of the base program whose semantics are meant to be extended by the AC. AC methods are the blocks of code that perform the extension. The originality of pointcut relations with JAC is that they can be defined on a per-class basis (all instances of some given classes are equally extended) or on a per-instance basis (only given instances of some classes are extended). To achieve this feature, a naming scheme is provided for each base instance managed by the framework. A language for pointcuts definition is provided that lets developers filter instances based on their name or on the name of the container hosting them. The AC methods provide code that can be run before and/or after or replace the methods designated by the pointcut.

A UML notation is described in Section 16.2. The stereotypes provided enable designers to express all the previously mentioned elements concerning AC, pointcut relations, and AC method. Section 16.2.4 investigated some more advanced concepts, where AOP is compared to the use-provide relationship and to some notions of groups of heterogeneous classes. The notation is supported by a CASE tool. It generates code that can be executed by the JAC runtime. Hence, JAC covers a broad range of steps of aspect-oriented software, from the design step with UML to its implementation with aspect components and finally to execution with a run-time environment supporting dynamic weaving and unweaving of aspects.



Aspect-Oriented Software Development
Aspect-Oriented Software Development with Use Cases
ISBN: 0321268881
EAN: 2147483647
Year: 2003
Pages: 307

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net