Abstract

Aspect mining is the search of candidate aspects in existing systems and isolates them from the system into separately described aspects. The cross-cutting concerns are candidate aspects. The aspect-mining techniques that have been proposed in literature perform static or dynamic analysis of source code to identify the candidate aspect. The data-mining techniques such as clustering and association rule mining have also been applied on execution traces or in combination with source code metrics. History-based aspect mining is based on mining methods calls that have been inserted during the evolution of software. It assumes that cross-cutting concerns do not exist from beginning but are introduced over time. However, the cross-cutting concerns may exist in the system from the beginning. We have been investigating an approach to mine frequent patterns from the version histories of legacy system to recommend candidate aspects. A novel approach, Software Evolution based Aspect Mining (SEAM) software evolution-based aspect mining for mining candidate aspects from version history files is proposed in the paper. In the proposed approach, while mining aspects from legacy code, the source files that have been changed frequently and set of source code files that have been changed together frequently during the evolution of system are mined. Mined frequent change patterns are then visualised for structural relationship. On the basis of the structural relationship between the files, candidate aspects are recommended for the pattern. Two types of candidate aspects are reported – simple candidate aspects and complex candidate aspects. In this paper, algorithms are proposed for mining simple and complex candidate aspects. Overall, the paper presents a novel approach to accurately identify aspects based on co-changing files existing in version history. The identification of aspects not only gives the opportunity to rewrite the code but also has potential to enhance maintainability and reliability of system.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call