Understanding Migration Strategies by Decoupling Application Roles and Technology Generations