DEVELOPING PORTABLE SOFTWARE

Jim Mooney
Dept. of Computer Science and Electrical Engineering
West Virginia University

Copyright 1995 -1998 -- All Rights Reserved

 

1. INTRODUCTION

What is the Problem?

Why port software?

Example scenarios

Who should care?

Portability concerns for end users, vendors, developers and programmers, system designers, etc.

Costs and benefits

Development costs; maintenance cost savings; performance, reliability, functionality

Portability activities

Porting existing software; portable design and redesign; improving the infrastructure (platforms, standards, tools)

Historical notes

Portability Concepts

Definition
Characterizing the target
Transportation and adaptation
What can we Port?

Programs, data, documentation, tools, experience

Levels of Portability

Source, binary, intermediate, higher level

Related Concepts

Reusability, interoperability

Non-technical constraints

Legal, commercial, and political issues

Do we always want identical behavior?

Development Strategies

Thinking portable

Avoiding system-specific assumptions and methods

Isolating dependencies

Separating elements that require adaptation

Following programming disciplines

Avoiding system-dependent constructs

Controlling interfaces

Standardizing and bridging the gap

Overview of the text