SpbCreative Logo

Re-engineering, Porting and Migration

Out-of-date technologies, programming languages and databases can hinder your business from advancing and your team from mastering new technologies. Porting can help you migrate to modern technologies while maintaining the functionality of your existing system. If your business works only on a specific OS, compiler or run time, then porting can help you adapt software to your platform. Porting is more economical than a Custom Software Development method of creating software that must be adapted to your requirements.

We offer

  • Porting for embedded platforms
  • Porting finished software from one programming language to another
  • Porting finished software from one platform to another
  • Customization of a finished product for a specific platform
  • Software localization
  • Data conversion from one database to another

In our re-engineering services we use a comprehensive package of automated tools, dramatically reducing cost and speeding up delivery time. Depending on your requirements, we can completely transform an entire application or simply migrate key business functions to work with newer technologies by using knowledge mining.

Our re-engineering options include:

  • User Interface Transformation
    Transition of character-based displays to event-driven GUI screens. Technology scenarios may include converting a user interface from BMS or AS/400 screens to HTML, Visual Basic, Java or C++
  • Database Transformation
    We can transform flat files or hierarchical legacy database systems to a modern relational DBMS
  • Business Logic Transformation
    Conversion of monolithic legacy code to re-usable business logic components written in modern languages (C++, Java or Visual Basic)
  • Re-hosting
    Moving a legacy system from mainframes to modern platforms such as Windows NT/2000/XP, UNIX and Java

Case study

Our client had a ten-year-old product developed on a Delphi 5 platform. The code base was about 500 Mega lines. The product was under continuous development, so new features were added and new releases were issued. Under these conditions, we were asked to port this product to C# .Net platform.

The development was split into several phases, consisting of:

  • Phase I: Upgrading IDE and code base to Delphi 2006
  • Phase II: Porting coding base to Delphi .Net. In this phase we prepared code for the managed memory model and re-wrote assembler inserts
  • Phase III: Converting code to C# .Net using Microsoft Visual Studio as target IDE. In this phase we used state-of-the-art conversion tools which minimized the number of bugs introduced. To ensure flawless integration with a constantly changing mainline code base, we performed this phase in many sub-phases. In each sub-phase we were porting a module of the product to C#, leaving the rest of the code on Delphi and then combining assemblies from different languages into one that was executable. Our client defined the scope of each sub-phase. The entire product was ported to Visual Studio C# module by module

Each phase was accompanied by extensive testing with the help of a Silk testing environment

HomeSiteMapFeedBack