Unplugging Components using Aspects

Sergei Kojarski, David H. Lorenz

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review


Normally, Aspect-Oriented Programming (AOP) is used for plugging and not for unplugging. Aspects (concerns) are weaved into a system, thus providing a modularized way to add crosscutting features to a base program. For example, given a base program without logging and given a logging aspect, the AOP weaver produces from the untangled code an executable with the desired crosscutting logging behaviors. The benefit is that the logging code is modularized, e.g., you can easily activate or deactivate logging. However, what if a legacy system written without AOP technology already contains logging functionality hard-coded in the base program? How do you deactivate logging then? In this paper, we explore the use of AOP for writing aspects that transform exiting hard-coded calls into plugs that can be used to retarget the client to use other subcomponents. Applying AOP for unplugging has potential usage in connection with components. You are given a monolithic system. You apply AOP to non-intrusively decouple the system's components. You may then replace some of the legacy components with alternative third-party components.
Original languageEnglish
Title of host publicationProceedings of the ECOOP 2003 8th International Workshop on Component-Oriented Programming (WCOP'03)
EditorsJan Bosch, Clemens Szyperski, Wolfgang Weck
Place of PublicationDarmstadt, Germany
StatePublished - 1 Jul 2003


Dive into the research topics of 'Unplugging Components using Aspects'. Together they form a unique fingerprint.

Cite this