Software portability

Software portability is a design objective for source code to be easily made to run on different platforms.When software with the same functionality is produced for several computing platforms, portability is the key issue for development cost reduction.Such web applications must, for security reasons, have limited control over the host computer, especially regarding reading and writing files.Some functions can be available on a target system, but exhibit slightly different behavior such as utime() fails under Windows with EACCES, when it is called for a directory).Implementation defined things like byte order and the size of an int can also raise the porting effort.
Software portability can be exemplified with multiple devices running the same video game.
application portabilityportingportabilitysource codeplatformsabstractionsystem interfacescomputing platformsBuildingexecutableoperating systemsprocessorsinstruction setsinstalleddevice driversdrivesdirectoriesportable softwaremass storageUSB sticksconfiguration filesregistryWindowsmicroprocessorsWeb applicationsJavaScriptlinkedopen-sourceMake toolLinux distributionsmodifies the compilation process to match the systemUNIX/32V(Bourne) shelllogicalarithmeticbyte orderwrite once, compile anywhereC (programming language)Cross-platform softwareData portabilityHardware-dependent softwareInteroperabilityLanguage interoperabilityPortability testingSource-to-source compilerSoftware qualityFlexibilityReusabilityScalabilityTestabilityUnderstandabilityLoose couplingOrthogonalityUsabilityReliabilityAdaptabilityCorrectnessAccuracyEfficiencyRobustnessSecuritySafetyISO/IEC 9126List of system quality attributesSoftware quality managementSoftware quality controlSoftware quality assurance