Date: Tuesday, July 27
Time: 8:45am - 12:15pm
Location: Salon A
Aspect Oriented Programming (AOP) is a new programming methodology that enables modularizing implementation of crosscutting concerns -- requirement, design, or implementation that span multiple modules. Such crosscutting concerns abound in practice: logging, tracing, dynamic profiling, error handling, service-level agreement, policy enforcement, pooling, caching, concurrency control, security, transaction management, business rules, and so forth. Traditional implementation of these concerns requires you to fuse their implementation with the core concern of a module. With aspect-oriented programming, you can implement each of the concerns in a separate module called aspect. The result of such modular implementation is simplified design, improved understandability, improved quality, reduced time to market, and expedited response to changes in system requirements.
AspectJ (http://eclipse.org/aspectj) is an open source and the leading implementation of AOP for the Java programming language. AspectJ extends the Java programming language to enable AOP. It also provides tools to enable compilation, build tool integration, and IDE integration. The output produced by the AspectJ compiler is compatible with the Java byte code specification making it possible to run programs written in AspectJ in any compliant Java VM.
The presentation will focus on understanding the AOP methodology, core AspectJ language construct, and practical applications of AOP/AspectJ along with several demonstrations to reinforce the ideas presented. It will also present AOP design patterns and applications of AOP in the area of refactoring as well as provide guidance on pragmatically adopting AOP/AspectJ to maximize benefits while managing risks.