Applying model differences to automate performance-driven refactoring of software models