The objective of application porting is to create an application on a target platform that behaves like the original version, thereby making the application available to an expanded market.
AzecAlpha can port software applications to and from any platform, including Windows to Mac, Mac to Mac (Classic to Carbon to OS X), Windows to Windows, and Windows to UNIX / Linux.
AzecAlpha has completed many complex and innovative application porting projects for clients that have wanted to extend 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 design and development.
Given the complexity of porting a software application, AzecAlpha has developed a rigorous scientific approach to this discipline. The following is a summary of key development considerations addressed during each project.
Comparison of Source and Target Platforms
AzecAlpha'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.
Functionality Mapping
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.
Efficiency Review
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.
AzecAlpha'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
AzecAlpha'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.
Coding
Once all the above issues have been addressed, AzecAlpha will port a software application to the target platform in a manner that meets or exceeds the expectations of our client.
Quality Assurance
We continuously test the ported application throughout development and before shipping to ensure that we deliver software of the highest quality.
Acceptance Testing
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.
Our clients have experienced the following benefits in securing us to port their applications to one or more platforms.
Exposure to a New Market
By porting a software application to a new platform, our clients are able to achieve increased sales by offering their product to a new market segment.
Leverage Existing Code Base
Our clients realize that leveraging an existing code base, by porting it to a new platform, offers a rapid and cost-effective solution and provides an optimal Return on Investment (ROI).
Improved Client Service
By porting a software application to one or more new platforms, our clients are able to respond to the changing needs of their customers, who may wish to move to a new operating system.
We can help. Contact us for additional information about our application porting services.