Program Comprehension Using Aspects

Abstract

Aspect Oriented Programming (AOP) is a powerful reflective programming tool. In this paper we discuss how simple yet effective AOP constructs can be used to facilitate the process of program comprehension on three bodies of code. The first is the Java portion of a sizable third party legacy system for manipulating and displaying protein sequences entitled Friend. The second is Eclipse, an open source Java IDE. The third is Compress, a SPEC JVM98 Java benchmark. We study uses of the AspectJ AOP language to expose both dynamic and static software characteristics. Examples provided are actual code and data from our experience re-engineering the Friend software but the AOP techniques presented can be applied towards any system.

David H. Lorenz
David H. Lorenz
Dept. of Mathematics and Computer Science

Senior Faculty at Open University