1. The sofeware should be written in a language for which compiler exist nearly almost machine such as JAVA language.
2. If the language using in sofeware does not exist to this machine. The sofeware should be using device driver to prevent direct access to machine's hardware. For example, output to monitor and printer should uses command printToMonitor and printToPrinter, respectively. The previous two command will call to libraries which call monitor device driver and printer device driver. If this product has to port to other machine. Then, only monitor device driver and printer device driver are only to be rewritten.
3. For standard language, the product is likely to be portable. However, listing of nonstandard featured supported by complier are required.
4. Planning for numerical incompatibilities.
5. Prevent using system call for operating system incompatibilities.
6. Manunal should be provided comment for future porting to other machine.