Aspect Oriented Programming (AOP) is an emerging technique offering advanced mechanisms for the modularization of crosscutting concerns. AOP constructs allow programmers to add functionalities to an existing base system, while leaving it oblivious of such additions. Thus, with AOP the core logics of an application is not tangled with the crosscutting functionalities, which in turn are not scattered throughout the application code, thanks to the modularization units, the aspects, where they are implemented. Legacy systems often contain several crosscutting concerns that could potentially benefit from an AOP implementation. In this paper, we focus on the problem of aspect identification in existing code. The main idea is that use-cases can be defined in order to separate the base logics from the crosscutting concerns to be aspectized. The relationship between the execution traces associated with the use-cases and the executed computational units (class methods) is analyzed through concept analysis. In the concept lattice, aspect candidates correspond to use-case specific concepts (i.e., concepts labeled by one or more use-cases), whose attributes (methods) satisfy the constraints of being scattered and tangled. The results obtained on some case studies are discussed in the paper.

Dynamic aspect mining

Ceccato, Mariano;Tonella, Paolo
2009-01-01

Abstract

Aspect Oriented Programming (AOP) is an emerging technique offering advanced mechanisms for the modularization of crosscutting concerns. AOP constructs allow programmers to add functionalities to an existing base system, while leaving it oblivious of such additions. Thus, with AOP the core logics of an application is not tangled with the crosscutting functionalities, which in turn are not scattered throughout the application code, thanks to the modularization units, the aspects, where they are implemented. Legacy systems often contain several crosscutting concerns that could potentially benefit from an AOP implementation. In this paper, we focus on the problem of aspect identification in existing code. The main idea is that use-cases can be defined in order to separate the base logics from the crosscutting concerns to be aspectized. The relationship between the execution traces associated with the use-cases and the executed computational units (class methods) is analyzed through concept analysis. In the concept lattice, aspect candidates correspond to use-case specific concepts (i.e., concepts labeled by one or more use-cases), whose attributes (methods) satisfy the constraints of being scattered and tangled. The results obtained on some case studies are discussed in the paper.
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11582/4949
 Attenzione

Attenzione! I dati visualizzati non sono stati sottoposti a validazione da parte dell'ateneo

Citazioni
  • ???jsp.display-item.citation.pmc??? ND
social impact