Transformation Templates Automate Source Code Migration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Source code migration is a time-consuming and expensive process, often leading to errors due to its tedious and cumbersome nature, especially in large code bases that require significant engineer and programmer time to transition between versions.

Innovation Solution

A library of transformation templates is built during a training phase and applied during an inference phase to automate source code migration, utilizing machine learning techniques to identify and generalize transformations, represented as pairs of code snippets or graphs, and selecting the most applicable templates based on criteria such as preservation of programming language keywords and successful application.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual source code migration is performed by engineers and programmers, then the migration can be completed with human judgment and adaptability, but the process becomes time-consuming, expensive, and error-prone

Engineering Contradiction:
Improvemigration accuracyVSAvoidmigration time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary action by training machine learning models on historical migration data before actual migration occurs. The model learns from past migrations and prepares transformation templates in advance, so that during actual migration, the work can be performed automatically without manual intervention for each transformation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates copies of successful migration patterns from historical data. By analyzing past migrations and capturing transformation templates, the system replicates proven migration approaches automatically, avoiding the need to manually perform the same migrations again and reducing both time and errors.

Inventive Principle:
Principle #26Copying

2Adaptability or versatility

If manual source code migration is performed, then complex transformations can be handled with human expertise, but the process becomes tedious and cumbersome leading to mistakes

Engineering Contradiction:
Improvetransformation capabilityVSAvoidmigration ease
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The system enables self-service by allowing the machine learning model to automatically perform migration transformations without requiring manual human operation. The model independently analyzes source code, applies learned transformation templates, and generates migrated code, making the process easier while maintaining adaptability through its learning capability.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system replaces the mechanical manual process of code migration with an automated machine learning system. Instead of engineers manually analyzing and transforming code, the ML model performs these operations automatically, substituting human mechanical effort with automated intelligent processing that is both easier to operate and more adaptable.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Productivity

If transformation templates are generalized to apply to multiple code patterns, then automation coverage increases, but the templates may become too broad and lose precision

Engineering Contradiction:
Improveautomation coverageVSAvoidtransformation precision
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The system uses parameter changes by adjusting the level of generalization in transformation templates based on learned patterns. The ML model dynamically determines how broad or specific each template should be by analyzing historical migration data, optimizing the balance between coverage and precision for different code patterns rather than using fixed generalization levels.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11886850B2Transformation templates to automate aspects of computer programming
Publication Date: 2024.01.30 GOOGLE LLC
  • US11886850B2 patent drawing
  • US11886850B2 patent drawing
  • US11886850B2 patent drawing

AI summary

Implementations are described herein for building and/or applying a library of transformation templates to automate migration of source code. In various implementations, pre-migration and post-migration versions of source code that exist prior to and after migration of the source code may be analyzed. Based on the analysis, one or more transformations made to the pre-migration version of the source code to yield the post-migration version of the source code may be identified. A library of transformation templates that are applicable subsequently to automate migration of new source code may be built. In some implementations, for one or more of the transformations, a plurality of candidate transformation templates may be generated with different permutations of tokens being replaced with placeholders. One of the plurality of candidate transformation templates may be selected for inclusion in the library based on one or more criteria.