Bringing Portability to the Software Process

Portability is recognized as a desirable attribute for the vast majority of software products. Yet the literature on portability techniques is sparse and largely anecdotal, and portability is typically achieved by ad hoc methods. This paper proposes a framework for incorporating portability considerations into the software process. Unlike reuse, portability can be effectively attained for individual projects, both large and small. Maximizing portability, however, is more than an implementation detail; it requires reexamination of every phase of the software lifecycle. Here we identify issues and propose guidelines for increasing and exploiting portability during each of the key activities of software development and maintenance.