Aspects

CHEP'04 in Interlaken

Aspect-Oriented Programming (AOP) is a new paradigm promissing to allow further modularisation of large software frameworks, like those developed in HEP. Such frameworks often manifest several orthogonal axes of contracts (Crosscutting Concerns - CC) leading to complex multidepenencies. Currently used programing languages and development methodologies don't allow to easily identify and encapsulate such CC. AOP offers ways to solve CC problems by identifying places where they appear (Joint Points) and specifying actions to be applied at those places (Advices). While Aspects can be added in principle to any programming paradigm, they are mostly used in Object-Oriented environemnts. Thanks to wide acceptance and rich object model, most Aspect-Oriented toolkits have been developped for Java language. Probably the most used AOP language is AspectJ.

The presentation will demonstrate using AspectJ language to solve several common HEP Crosscutting Concerns from simple cases (like logging or debugging) to complex ones (like object persistency, data analysis or graphics).

J.Hrivnac, Sep'04