1. A method for generating a set of tasks for performing a migration of a software solution comprising: receiving, by at least one computer system, a current physical topology of a deployed software solution, wherein the deployed software solution comprises a plurality of software components and data associated with the plurality of software components integrated into a single entity; receiving, by the at least one computer system, at least one solution change to the deployed software solution to meet at least one business requirement; selecting, by the at least one computer system, a plurality of migration strategies for migrating the deployed software solution, wherein each of the plurality of migration strategies comprises at least one product level strategy applicable for a particular software component of the plurality of software components and at least one solution level strategy applicable for the plurality of software components, wherein the product level strategy overrides the solution level strategy for the particular software component, wherein each of the plurality of migration strategies has a separate downtime effect for the deployed software solution during migration and a separate hardware requirement; generating, by the at least one computer system, a first plurality of migration tasks for performing the at least one solution change to the deployed software solution of the current physical topology, wherein the plurality of migration tasks apply a first migration strategy with a first downtime effect and a first hardware requirement from among the plurality of migration strategies; generating, by the at least one computer system, a recommendation of a first future physical topology for the received software solution, wherein the recommended first future physical topology is updated according to the first plurality of migration tasks, wherein one task of the plurality of migration tasks is associated with a machine; outputting, by the at least one computer system, the first plurality of migration tasks and recommended first future physical topology, the outputting further illustrating a simulated plan for migrating the software solution according to the at least one migration strategy and meeting the at least one business requirement; generating, by the at least one computer system, a second plurality of migration tasks for performing the at least one solution change to the deployed software solution specified in the current physical topology, wherein the plurality of migration tasks apply a second migration strategy from among the plurality of migration strategies, the second migration strategy applied with a second downtime effect and a second hardware requirement from among the plurality of migration strategies; generating, by the at least one computer system, a recommendation of a second future physical topology for the received software solution, wherein the recommended second future physical topology is updated according to the second plurality of migration tasks; analyzing, by the at least one computer system, the first plurality of migration tasks, the recommended first future physical topology, the second plurality of migration tasks, and the recommended second future physical topology to identify at least one time difference between the first downtime effect and second downtime effect and to identify at least one hardware difference between the first hardware requirement and the second hardware requirement; comparing, by the at least one computer system, a business cost between the first migration strategy and the second migration strategy, while taking into account the at least one time difference and the at least one hardware difference, thereby generating at least one business cost difference; outputting, by the at least one computer system, the at least one business cost difference between the first migration strategy and the second migration strategy; evaluating, by the at least one computer system, the business cost difference for the deployed software solution; selecting, by the at least one computer system, based on the evaluated business cost difference, one of the first migration strategy and the second migration strategy, as a suitable migration strategy; and executing, by the at least one computer system, a selection of migration tasks associated with the selected suitable migration strategy for the deployed software solution, the selection of migration tasks comprising one of the first plurality of migration tasks and the second plurality of migration tasks.