Tool vs. Manual Porting

Many companies are migrating their application from one technology to another technology for various reasons. It is good as a developer; it provides more job security and opportunity for us. For porting generally there are two approaches: Manual and Tool based porting. Lets take an example of porting COM application into Java platform. There are quite a few vendors offering toolkit/engine to run the COM code inside J2EE application server. But most of the developer will be more comfortable to rewrite the code based on the new platform. Lets analysis Pros and Cons of both these approaches. For the discussion I took COM to Java as an example.

Tool based Porting

Leave the source code as it is and identify the calls on the ported environment. These calls then are converted into the equivalent native calls. This conversion is handled by a set of libraries provided by the tool vendor.

[Note: Since the code base remains same, this approach can be chosen to run the application in multiple platform, may not be optimal solution for complete technology porting.]

Strengths

  • Can port the application faster.
  • Low cost compare to rewriting the complete application.

Weakness

  • Should rely on the porting tool vendor heavily.
  • Would be difficult to debug as the code remain in different technology.
  • Code maintenance would be tougher.
  • Future enhancement is very difficult as operating and development platforms are different.
  • Need to spend lot of time on testing, the time may not be worth for long term stability.
  • It is not easy to upgrade Operating System and application server.

Manual Porting

Manually locate and replace platform-dependent code with appropriate Java code. Platform-dependent code usually includes operating-system calls, language-library calls, and other functions, such as transaction-processing calls.

Strengths

  • Can get good code base, will be useful in long term.
  • As it gives good code base, it is easy to debug and enhance the application as needed.
  • Can freely choose the Operating System and application server
  • Easy to upgrade Operating System and application server.
  • Maintenance will be much easier with good code base.

Weakness

  • It takes little longer time to port; time to market might be an issue.
  • As it needs developers’ involvement in porting, may cost more.

Conclusion

It is purely based on the your business requirement and political differences in your management staffs on the approaches.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: