Software ages. Maintenance costs tend to increase, and modifications to an application make future adaptions more difficult. As the surrounding software components are updated and modernized, static software becomes even more outdated relative to them. As soon as a system notably resists modification and evolution, it becomes legacy software and the stakeholders, such as architects and managers, have to decide whether to preserve or redesign the system. The main research questions are: What software evolution approaches are feasible and how to evaluate their cost and risk criteria? How do these criteria affect an actual migration based on a large, real-world software package? The chosen evaluation methods are: Research software evolution and related topics to identify different evolution approaches, and create a list of software evolution criteria for them. Apply those criteria to a real-world application to find an appropriate evolution approach; break it down to milestones; implement and evaluate the success of the implementation. The results are: The evolution can be preservation or migration driven; many offsetting costs/benefits and risk/reward profiles must be considered. As for real-world instances of migrations, there exist several tools to ease migrations and enable cross-platform application development. A code analysis is a useful way to quantify the success of the implementation.