Using Aspect-Oriented Programming for Debugging, Instrumenting and Architecture-Enforcing Karl Lieberherr Northeastern University, Boston, Massachusetts Abstract: The 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 better work with existing Java programs using AspectJ. Simple examples will be given in the context of banking. 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.