Reverse Engineering

Reverse Engineering is the process that helps you to add flexibility to your existing designs by creating formal models from code.

Past reliable designs can be given a new lease of life by developing models from them which facilitate their use in a next product generation. An existing software base has a known reliability and continuing its use in a new product generation will help make significant cost savings through reduced design, development and test effort.

We use Rhapsody® to automate reverse engineering from existing code into UML models for the languages that it supports (C, C++ and Java). Customer's existing IP can thus be retained and further developed using state-of-the-art technologies. Previously used algorithms and code have the great advantage over newly created code that they have been exposed to use in a variety of practical situations, and have therefore probably been more thoroughly tested than is feasible for new development. Additionally, the reverse engineering process may help to uncover problems that had lain dormant in an existing system.

The reverse engineered models may form the elements of design patterns that encapsulate your company's Intellectual Property. Code that has been converted into a model form may be able to be reapplied through a wide range of new products. By reusing your own algorithms developed through many years of effort, you can get the next generation device to market even faster, improving return on investment and ensuring reliability.