A role-based crosscutting concerns mining approach to evolve Java systems towards AOP