Automated translation tools are a critical aspect of our approach, but they are only part of our comprehensive language migration solution. Our methodology allows us to manage the complexity of large-scale migrations and ensure that avoidable mistakes are avoided and that progress to closure is steady and sure.
We understand the strengths and limitations of automated translation and we carefully balance manual and automated activities. For example, we may build or acquire new architecture components rather than using legacy architecture components. Our tools are able to seamlessly integrate hand-written components into the generated code stream.
Analysis – using automated tools to analyze the source codebase
Design – working with the client to define and understand the desired
Translation – converting the source code and refining the tools
Verification – verifying that the migrated system meets functional and
Deployment to Production – final translation, verification, and
Customer Pain Points
Great Migrations Methodology Benefits
Migrations take too long
Automated methodology streamlines conversion work and takes it off the critical path of your other commitments. Once the translator is tuned, it can to generate a complete, architecturally and functionally correct system in a matter of minutes. The cut-over/transition to the new platform can be done in fraction of the time needed with other approaches.
Extensive testing is required
Translation tuning is primarily verified by unit testing which is much simpler than system testing. Tuned translations mean fewer errors and fewer test cycles needed for user acceptance.
Migrations require large staff and a large PM overhead
Automated methodology streamlines conversion work so it can be done with much few resources in parallel with other work.
Coding from scratch in a new platform demands significant new skills and hand-translating code from one platform to another can be extremely difficult and tedious.
Because technical solutions are implemented by the translation tools, the agreed to solutions and standards are documented (in the tool configuration files) and they are applied systematically and consistently across the translated codebase.
Purely technical change is a hard sell, so budgets are very tight.
Our methodology is less expensive than a full manual rewrite. Cost savings from the automation mean more money may be available for adopting value-added features of the new platform, SDLC improvements, and developer training.
Great Migrations appreciates that your organization may not have accurate documentation for your applications – you have source code.
Source Code is an Asset
An organization's source code may be only specification they have for their applications – it is accurate, it is detailed, and it has been tested in use. Automated Translation allows companies to fully leverage this vast asset.
A computer program's source code has high information content: it describes in extreme detail exactly what the program does and how it does it. It is possible for a skilled programmer to hand translate applications from code, this task is extremely error prone and time consuming. Interpreting a computer program in one language, while at the same time authoring it in another adds another dimension of difficulty. Additional challenges are encountered when the programmer tries to consider external dependencies and runtime dynamics.
Advantages of our Automated Translations
Given the challenges of source code translation, we have found that is much more effective to solve these problems and implement their solutions in a software tool where they can be verified, refined, and reapplied systematically across the codebase. Specifically, platform migrations that employ our approach will have several advantages.
A unique aspect of our methodology is our VB/ASP/COM to .NET translation tool, gmBasic. gmBasic is grounded in proven principles of compiler design and has been refined through dozens of migration projects. gmBasic compiles VB6/ASP source codes into an extremely detailed semantic model. Then, this model, along with information on external libraries and rules on how to restructure the code for the new platform, is loaded into an efficient information management system that analyzes the codebase and restructures it for the target architecture. Finally, the model and more configuration metadata is used to generate a new codebase that uses target language syntax and conforms to your standards.