Software platforms evolve and change over time, and your core software applications need to evolve as well. MagRabbit has completed complex and innovative application porting projects for clients that wanted to extend the use of their software to one or more additional platforms.
We have the ability to conduct porting from any source platform to any target platform. The following general steps are typically involved in the design and development of these projects:
Planning a Platform Migration
MagRabbit has developed a rigorous scientific approach to porting complex software platforms. The following is a summary of key considerations addressed during each project.
Comparison of Source and Target Platforms
MagRabbit's design team will first research the source platform version and determine any user-model idiosyncrasies that will cause concern during the software port. In situations where an obvious solution is not provided, the possible solutions are presented to the client with explanations and comparisons.
In conducting research on any application porting project, our team will carefully distinguish between the Core and Platform Functionality of an application as follows:
Core Functionality - That portion of the application code that is platform independent, and therefore should not be modified during porting. This code typically includes patented or common algorithms and other basic functionalities that define the essence of how an application behaves.
Platform Functionality - That portion of the application code that defines specific characteristics regarding a platform, and is therefore modified during porting. This code typically applies to the presentation of information through the user interface of an application (i.e. computer screen and devices like printers, mice, scanners, etc.).
Although these two definitions are independent, most platform specific code bases have inadvertently combined the two types in classes and routines for speed or ease of use. During this research phase, these areas are identified since they will need work to either (a) port them to the new platform as a whole, or (b) separate them into their core and platform dependent parts and port only the platform code.
The larger the amount of Core Functionality in an application, the more efficient it is to port the application to another platform. As a result, our team will work to maximize the amount of code that can be incorporated into Core Functionality to ensure rapid and cost-effective results.
MagRabbit's design team will also determine the most efficient means for porting from one platform to another. In this respect, sometimes it is faster and more cost-efficient to port an application to an intermediate platform before porting to a target platform, rather than porting directly to a target platform.
Porting and Compatibility Methodology
MagRabbit's design team will choose between the following two possible porting methodologies, usually depending on whether or not backwards compatibility is required by the client.
Shared Core Functionality - Under this scenario, Core Functionality is shared between the source and target applications, and only the Platform Functionality is different. This methodology provides for optimal backwards compatibility and reduces development when adding new features to both platforms. That is, the software product can continue to evolve on both platforms at a reduced cost to our client.
Separate Source Copy - Under this scenario, the application created for the target platform is made using a copy of the source application. As a result, the source and target platform applications are completely separate. This methodology is generally applied when backwards compatibility is not required, or the client wishes to reduce the up-front development cost of the port. That is, the software product can continue to evolve on both platforms, but the maintenance cost is higher than if the core functionality was shared across platforms.
One of the very important factor of the project is knowledge transfer to the porting development team such that they have the total picture of the application to do it right the first time.
MagRabbit team will install the source code of the application and conduct reversed engineering to make sure we know all the details of each functions and can provide an accurate estimate of the project cost and completion schedule.
Once all the above issues have been addressed, MagRabbit will port a software application to the target platform in a manner that meets or exceeds the expectations of our client.
We continuously test the ported application throughout development and before shipping to ensure that we deliver software of the highest quality. We develop automation test cases as well as manual testing cases to ring out all the bugs to fix prior to deployment.
Once we have completed our internal testing of the software port, we ship the product to our client and they complete Acceptance Testing, prior to signing off on the product.
Have a project? Let's get connected.
Drop us a line, and tell us about your product and business.