The Five Phases of the Porting Process
The process of porting source code is comprised of five phases, some of which overlap: Analysis, Automated Code Replacement, Computer-Assisted Code Replacement, Implementation of Unsupported Features, and Addition of Platform Specific Features. Automated tools can help process the first three phases; while additional tools can assist with the last two.
Phase 1: Analysis
Analysis of the code to identify and report all environment specific issues and amount of porting effort required. This includes a breakdown of all API calls, type definitions, symbols, and messages. This also includes their frequency of occurrence and difficulty of porting. The analysis provides a detailed look at your source and what specific features of the environment are being used.
Phase 2: Automated Code Replacement
This phase includes automated code replacement of those items that have a one-to-one mapping from the source to target environment. Also included in this phase is the conversion of resource files.
Phase 3: Computer-Assisted Code Replacement
This phase includes interactive code replacement with input from an application developer for those source items that have an equivalent feature in the target environment, yet require a decision as to either the original intent of the source or which of several choices to use in the target environment.
Phase 4: Implementation of Unsupported Features
There will ultimately be some features of the source environment that are not directly supported in the target environment. In some cases it may be possible to simulate it, and in other cases it will not be possible. The developer will have to provide input in order to make the changes.
Phase 5: Addition of Platform Specific Features
Tighter integration of the application with the target environment might be desirable from a marketing or even coding standpoint. This adds features that might make it more difficult to port to other platforms, but can add significant benefit to the end user.
Reprint Courtesy of International Business Machines Corporation, © International Business Machines Corporation