Legacy modernization projects are notorious for exposing an IT organization to excessive risk. They often run over budget and behind schedule. A common technique to mitigate this risk is to break the project into manageable pieces. We have created a set of five use cases that describe a typical client problem and describe a set of analysis and transformation tasks that can address that problem.
We have organized these use case descriptions into a common framework so you can quickly recognize the types of problems your client needs addressed and plan how to address them. The five use cases are Documentation, Translation, Rules Extraction, Transformation and Validation. They can either be done separately or in some combination.
Here are the questions we answer for each use case:
The tasks in each project are quite different depending on what the client is trying to accomplish. Here are important questions that one should ask:
Does the client currently have adequate documentation? Does the client know exactly what the target environment will be? Have they selected a target language? What type of UI framework with they use? What kind of database framework or middleware will they target?
Will they use a COTS product? Will they use a rules engine? Do they want to duplicate the functionality of the old system or are they going to change much of the functionality? Do they intend to rewrite the code by hand? Are there regression test cases available? Will they be using an automated test framework to validate the system?
Depending on the answers to these questions, each project will look quite different.
D*Code is a modular and integrated tool that can be combined into a wide variety of combinations. If you understand what the client is trying to accomplish, we can tailor the tool to deliver exactly that result. The major tool elements that are combined include Visualization, Discovery (tailored to the specific task), Rules Extraction (tailored to the goal), Translation, Transformation (customized), Test Case Generation and Test Case Execution. Although the names of these tool elements are similar to the Use Cases, each Use Case includes one or more of these tool elements.
D*Code employs many "Big Data" techniques in the analysis of the existing system. Depending on what tasks need to be done, the type of analysis is quite different. D*Code enables the tool user to customize this analysis to deliver exactly the information needed to address the task at hand.
Transformation and Translation are accomplished through a sophisticated Artificial Intelligence engine that applies a set of rules-based transformation to the code. This expert system helps guide the tool operator to generate new code that not only is syntactically correct, but also uses natural code constructs in the target language. In addition, the code is optimized for the target platform that is specified in the "TO BE" system description.
In general, D*Code enables projects to be done faster, at lower cost and with many fewer defects. The specific benefits are determined by the goals of the project. What most systems integrators focus on initially are the cost savings. Lower costs give the systems integrator an opportunity to bid more aggressively and win more business or alternatively retain more profit.