Code refactoring using slice-based cohesion metrics and aspect-oriented programming. (2018)