How It Works

The Updraft Approach to Application Modernization

The Updraft modernization factory transforms your legacy applications to address your unique business challenges. Our modernization factory is based on our innovative Analyze, Improve, and Migrate framework.

Modernization Factory

Updraft has created a large variety of automated software tools to perform modernization tasks. These tools, individually or in various combinations, operate on legacy source code and can be customized to produce the exact solution you need.

A particular combination of these tools – adapted to your individual legacy journey – is our modernization factory. Your legacy software is the input. Our software tools act as customizable machines. And the output is the modernized code, ready to be deployed in your environment. Because our factory is 100% automated, modernization can be completed quickly, accurately, and cost-effectively.

Analyze. Improve. Migrate.

Our automated modernization factory organizes legacy modernization into three phases:

1. Analyze

Fully analyze and understand your legacy applications

2. Improve

Prepare your legacy code for migration and optimize your applications

3. Migrate

Transform your legacy code to a new language and deploy your modernized applications in the selected open or cloud environments

Analyze

During the Analyze phase, our modernization factory extracts information from your application.

“I need to rewrite or maintain an application, but don’t fully understand how it works.”

– Programmer

“I need a better idea of precisely what this application does.”

– Business analyst

What analysis strategies are applied?

Provide information that can be determined by applying analytical techniques to the code. Examples include metrics, such as code size and cyclomatic complexity, data and resource dependencies, and replication detection.

Provide information that requires the code to be symbolically interpreted to predict all possible behaviors of an application given all possible inputs. Examples include dead code analysis, code flow, data lineage, and potential access to external data or programs.

Provide information that requires heuristics and artificial intelligence or big data techniques. Examples include business rule extraction, feature analysis, and identification of abstraction or architectural layers.

Improve

During the Improve phase, our modernization factory updates the application so that it’s more easily maintained and performs better.

“My application is in COBOL running on modern hardware, but in a proprietary, emulated environment. I want to transform it to a modern language running natively on a scalable architecture.”

– IT manager

What improvements are applied?

Code quality and maintainability

Code is improved to be higher quality or more maintainable according to objective measures. Examples include reduced complexity, removal of dead code, reduced replication, conformance to coding standards, removal of GOTO statements, improving the naming of identifiers and methods, or removing artifacts associated with code generated from a 4GL.

Performance

Code is improved so that throughput is increased, latency is decreased, or memory usage is reduced. For example, algorithms can be systematically sped up, or external files used for temporary storage can be replaced with an in-memory database.

Scalability

Code is changed so that it can be deployed in a scalable architecture. Examples include decomposing a monolithic application into independent microservices, or transforming database access to use data microservices.

Migrate

During the Migrate phase, our modernization factory translates the application to the target language and updates it to be deployed in the new environment.

“I need to move applications off the mainframe and onto a modern scalable architecture.”

– Director of IT

What migration capabilities can be applied?

Target language

Changing the source language of the code. Examples include translating COBOL to Java, JCL to Groovy scripts, or COBOL 4 to COBOL 6.

Execution environment

Changing to a new target architecture. Examples include moving from an IBM mainframe with CICS to an application server such as JBoss on Linux.

Database

Transforming the underlying database. For example, changing the code so that PostgreSQL replaces DB2.

User Interface

Transforming the code to leverage a user interface framework of the target environment. For example, moving from CICS with BMS to Angular and HTML5 web applications.

Cloud environment

Transforming the code to function in a cloud environment, taking advantage of the scalability afforded through distribution, load balancing, or caching. Examples include dockerization or migration to AWS or Azure.

File handling

Changing how the code interacts with local files. Examples include moving from flat files to a database, or transforming the code to handle ASCII instead of EBCDIC.

Get Started Today

See why our automated legacy software modernization technology succeeds where others fail. Request a personalized assessment of your current systems and take your first step toward digital transformation today.