Re-Engineering

Over the last ten to fifteen years many mission critical systems have been classified as 'legacy;, from monolithic performance mainframe applications to desktop applications that have grown to become mission critical. Technology changes have meant that they are difficult or impossible to understand and maintain, especially as skills become rarer and the people who originally manufactured them retire. For many reasons the alternative to redeveloping the system from the start can be fraught with risk and be much more costly.

Re-engineering allows you to re-capture the essence of the legacy system and as many physical artifacts as possible while improving and modernizing the overall systems architecture, database and code, and non-functional attributes such as performance. By re-engineering you will save time and costs on further maintenance of your legacy system and re-position your application for further upgrades and extensions.

Re-engineering is thought of as a two part process.

The first part is to reverse engineer as much as possible of the system to re-capture as much knowledge of the system as possible, especially it's architecture, database structure and even if it is possible to re-engineer some or all code automatically. Many tools exist today that can help us with this step and many aspects of the system can be captured in various forms especially the unified modeling language which is technology agnostic.

Following this a forward engineering process would take place with the goal to restructure, redesign, and redevelop the system into a more modern technology. This process must try and optimize the use of the existing software assets and resources.

Using this approach can rescue as much of 'the good stuff' as possible and re-manufacture a new system that will be extensible and utilize the original investment for many years to come.

Why Work with Caro?

Caro has resources that have significant experience in both legacy application technology and practices and in today's architecture requirements and development practices. We have performed significant re-engineering projects for large companies previously. We believe in a process oriented approach that will step through the re-engineering efforts making you fully aware of all facets of the project from feasibility to production implementation.