Support Statement: AI and gmStudio in software translation

Q: Why should we use gmStudio instead of just using AI?

A: We believe the optimal solution is to use both. Allow us to elaborate…

There is no question that Artificial Intelligence platforms are bringing important and exciting changes to many fields: art, music, science, business, and computer programming.  Technical users of AI are already routinely and productively using AI as a living technical reference for research and to expedite their development work.  Even this WIKI can be accessed and summarized by chat GPT. The application of AI to the field of large-scale software transformation is particularly important to GM, and this article presents our thoughts on the topic.

Comparing Modernization Tooling: gmStudio + AI versus using AI alone

In our article comparing the tool-assisted rewrite to a more traditional manual-only approach, we describe how teams doing manual upgrades can benefit from also using gmStudio. Likewise, gmStudio can also benefit upgrade teams using AI. Note that gmStudio does not intend to compete with manual development, or AI-assisted development: on the contrary, gmStudio intends complement these activities allowing teams to deliver much more value with less risk and less effort. Some key points on this topic are presented below.

 Point

gmStudio
+ AI

manual-only
+ AI

 Point

gmStudio
+ AI

manual-only
+ AI

Requires a properly trained LLM based on the detailed information from the legacy code and the required reengineering rules for optimal results

no

yes

Teams may leverage gmStudio to prepare inputs to the AI and integrate outputs generated by the AI

yes

no

Teams may leverage AI to assist with analysis, redesign, and verification

yes

yes

Teams should have development skills in both the source and the target platforms

yes

yes

Provides a flexible, deterministic, precise, and repeatable means of software transformation

yes

unlikely

Typically require powerful hardware or SaaS

no

yes

Can transform a collection of interrelated components as a coherent system

yes

unlikely

May be driven by user-defined transformation rules

yes

unlikely

Offers an extensible library of pre-built transformational rules

yes

unlikely

Can process most large systems in less than 1 minute [1]

yes

unlikely

Automates identifying and removing dead code

yes

unlikely

Automates consolidating redundant code

yes

unlikely

Automates customized COM API replacements

yes

unlikely

Automates customized language transformations

yes

unlikely

Automates integrating hand-written code

yes

unlikely

Integrates easily with other DevOps tools

yes

unlikely

[1] gmStudio will typically process up to 30K VB6 or ASP LOC per second.

Integrating gmStudio and AI

The role of AI in tool-assisted software modernization

AI has great potential to assist with the most difficult aspects of software modernization and other large-scale software maintenance projects:

  • Analysis to identify opportunities to improve legacy code

  • Analysis to identify and evaluate options for redesigning specific code

  • Analysis to facilitate developing and executing functional testing procedures

There is no question that AI holds great promise in the area of tool-assisted software reengineering, and teams all over the world researching this important topic. However, the problems are in the details. As I write this in Spring 2024, the application AI for large scale software reengineering still has a long way to go before it reaches its full potential.  Here are some thoughts on how integrating gmStudio and AI may benefit large scale modernization work.

Preparing the Legacy System Model

Any significant legacy software system will contain at least 100K lines of code across dozens or hundreds of files. In fact, many of the enterprise systems we see are at least 5-10x this size and sometimes much larger. These system define and use tens of thousands of distinct symbols coming from multiple sources:

  • legacy and target computer languages keywords and file conventions

  • various internal services and data structures from the application domain, and

  • various external services and data structures from the legacy and target platform APIs.

These symbols describe the functionality of the legacy code in a detailed and deterministic way. We assume teams using AI will need to create an LLM and context with these symbols and then use AI to precisely read, interpret, and re-express the legacy functionality on the target platform. This is theoretically possible, but it takes significant expertise and meticulous processes to setup and complete effectively.

The AI model must be “taught” the symbols and the rules to be able to generate meaningful responses about those symbols. The various symbols will require metalanguage parameters that establish their semantics. There will be metadata and rules for the legacy platform, the target platform, and the for the accurate transformation of legacy code into target code. There will also be additional effort to assemble all of the AI generated output into a form that can be productively used built and maintained on the target platform.

In the case of VB6/ASP modernization, we suspect that the ambiguities and anachronisms of old VB6/ASP systems will impair the effectiveness the AI. gmStudio can be used to help prepare the LLM or to generate a .NET version of the legacy system. This information can then be input to the AI for help with analysing, redesigning, and refactoring the .NET code as a second step.

Generating Specialized Inputs and Outputs

Another critical input to AI-assisted software transformation is the user-defined specifications and coding standards for the system once it is rewritten for NET. There are many possible variations of how to write, and rewrite, software systems. The details of the desired coding standards must be accessible to the AI so that it can reliably and repeatedly produce results that follow standards and preserve functionality.

And there is also the task of generating supporting content: csproj files, resx files, config files, AssemblyInfo files, solution files, etc. These artifacts are not fully described by the legacy code; where will they come from? gmStudio is purpose-built to generate these types of files automatically according to user requirements and this will be helpful to teams using AI.

gmStudio.AI

gmStudio and the Tool-Assisted Rewrite methodology are purpose-built to provide an agile approach to system modernization that dramatically accelerates progress and reduces risk without sacrificing quality or control. The integration of gmStudio with AI provides additional opportunities for even faster delivery and improved technical and functional quality.

GM is actively exploring the application of AI, and we intend to integrate AI into our tools and methods along these lines.

Please Contact Us to discuss how we can help you bring these two powerful technologies together for the most state of the art modernization project possible.