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.
Link to the paper.