Talk at ETH Zurich Department of Computer Science Tuesday, April 30 IFW A34 13.15-14.15 Using Aspect-Oriented Programming for Debugging, Instrumenting and Architecture-Enforcing Karl Lieberherr Northeastern University, Boston, Massachusetts Abstract: Many concerns that programmers need to deal with cannot be localized using the modularity mechanisms of established programming languages. Aspect-Oriented Programming (AOP) adds new modularity mechanisms that allow for localization of crosscutting concerns. This talk explains the concepts of Aspect-Oriented Programming and applies them to working with Java programs using the programming language AspectJ. The focus is not on writing new functionality in AspectJ but on how to develop better Java programs using AspectJ. For this purpose, AspectJ can be used today in commercial projects because the production code will not contain code written in a relatively new language. AspectJ is only used for speeding software development by providing simple facilities for inspecting, debugging and instrumenting objects and to enforce software architecture.