Migrating modifies a given code base to replace the platform-specific features with their equivalents in the new environment. Examples of platform-specific features include file I/O, database and persistent storage access, logging, job scheduling, inter-process communication, screen handling, user interfaces, security framework, and session management.
Retargeting involves removing the current platform dependencies from the code and replacing them with what is necessary to function on the new platform. This step may also involve restructuring the code, such as when client-server code must be made stateless to work in a cloud environment. Delivered code natively replaces the source platform dependencies with those of the target environment (e.g., mainframe to .NET). In this case the migrated code will make use of the native features and selected components of the .NET framework. In the case of cloud migration, the target system dependencies will be specific to the target cloud platform such as Heroku or AWS.
The UniqueSoft tool uses its rules engine and the information from the Discovery to make selected changes. From the Behavior Analysis and the Architecture Analysis, the tool can make code changes based both on where the platform-specific code is and on its intended use. For example, the use of a single private-key encryption library on the original platform can be replaced by two separate encryption libraries – one for private key and one for public key – on the new platform depending on the destination of the data.